<?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>Tech Blog - Jonathan Holloway</title>
	<atom:link href="http://blog.oogly.co.uk/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.oogly.co.uk</link>
	<description>www.oogly.co.uk</description>
	<lastBuildDate>Fri, 25 Jun 2010 06:21:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Maven System Path &#8211; Including local JAR files in a Maven project</title>
		<link>http://blog.oogly.co.uk/java/maven-system-path-using-jars-without-installing-in-maven</link>
		<comments>http://blog.oogly.co.uk/java/maven-system-path-using-jars-without-installing-in-maven#comments</comments>
		<pubDate>Tue, 04 May 2010 06:05:07 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=300</guid>
		<description><![CDATA[Sometimes it&#8217;s a real pain to add JAR&#8217;s to Maven, especially when the project doesn&#8217;t use Maven as the build system or provide scripts for this purpose. This is even more painful when we have to deal with the dependencies that a particular framework needs. One solution to avoid this (at least temporarily) is to [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes it&#8217;s a real pain to add JAR&#8217;s to Maven, especially when the project doesn&#8217;t use Maven as the build system or provide scripts for this purpose.  This is even more painful when we have to deal with the dependencies that a particular framework needs.</p>
<p>One solution to avoid this (at least temporarily) is to use Maven&#8217;s <strong>system </strong>scope and <strong>systemPath</strong> feature:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="XML"><div class="devcodeoverflow">
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.apache.zookeeper<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>zookeeper<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>3.3.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;scope<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>system<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/scope<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;systemPath<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>${basedir}/lib/zookeeper-3.3.0.jar<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/systemPath<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
</div></pre><!--END_DEVFMTCODE--></p>
<p>This will reference a dependency from the local filesystem, which means you do not have to install the JAR into the repository in order to use it.  This is particularly useful when you&#8217;re doing some prototyping or research into a new technology.</p>
<p>By the way Zookeeper does provide support for Maven, see <a href="https://issues.apache.org/jira/browse/ZOOKEEPER-224">https://issues.apache.org/jira/browse/ZOOKEEPER-224</a></p>
<p>For more information see: <a href="http://maven.apache.org/general.html#tools-jar-dependency">http://maven.apache.org/general.html#tools-jar-dependency</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/java/maven-system-path-using-jars-without-installing-in-maven/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing And Running Fabric On Windows</title>
		<link>http://blog.oogly.co.uk/builddeploy/installing-and-running-fabric-on-windows</link>
		<comments>http://blog.oogly.co.uk/builddeploy/installing-and-running-fabric-on-windows#comments</comments>
		<pubDate>Thu, 17 Dec 2009 04:18:26 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Build and Deployment]]></category>
		<category><![CDATA[fabric]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[pycrypto]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[pywin32]]></category>
		<category><![CDATA[win32api]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=271</guid>
		<description><![CDATA[I recently had to setup Fabric (http://docs.fabfile.org/0.9.0/) for doing deployment from my Windows machine at home. Setting it up under Linux is very very easy but for some reasons there are a number of issues you have to overcome when installing on Windows. I followed this page to start: http://docs.fabfile.org/0.9.0/installation.html First up a standard Python [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to setup Fabric (<a href="http://docs.fabfile.org/0.9.0/">http://docs.fabfile.org/0.9.0/</a>) for doing deployment from my Windows machine at home.<br />
Setting it up under Linux is very very easy but for some reasons there are a number of<br />
issues you have to overcome when installing on Windows.  I followed this page to start:</p>
<p><a href="http://docs.fabfile.org/0.9.0/installation.html">http://docs.fabfile.org/0.9.0/installation.html</a></p>
<p>First up a standard Python install (I used 2.6.2) and setup tools 0.6c11:</p>
<p><a href="http://pypi.python.org/pypi/setuptools">http://pypi.python.org/pypi/setuptools</a></p>
<p>and create a simple fabric script (fabfile.py)</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Python"><div class="devcodeoverflow"><span style="color: #ff7700;font-weight:bold;">from</span> fabric.<span style="color: black;">api</span> <span style="color: #ff7700;font-weight:bold;">import</span> local, env, put
env.<span style="color: black;">hosts</span> = <span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;elephant@babar.net:40&quot;</span><span style="color: black;">&#93;</span>
env.<span style="color: black;">show</span> = <span style="color: black;">&#91;</span><span style="color: #483d8b;">'debug'</span><span style="color: black;">&#93;</span>
<span style="color: #ff7700;font-weight:bold;">def</span> deploy<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Deploying...&quot;</span><span style="color: #66cc66;">;</span>
	put<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;fabtest.txt&quot;</span>, <span style="color: #483d8b;">&quot;/tmp/fabtest.txt&quot;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;All Done...&quot;</span><span style="color: #66cc66;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>From there:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">easy_install fabric</div></pre><!--END_DEVFMTCODE--></p>
<p>will result in:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PowerShell"><div class="devcodeoverflow">...
Installed f:\python26\lib\site<span style="color: pink;">-</span>packages\fabric<span style="color: pink;">-</span>0.9.0<span style="color: pink;">-</span>py2.6.egg
Processing dependencies <span style="color: #0000FF;">for</span> fabric
Searching <span style="color: #0000FF;">for</span> pycrypto<span style="color: pink;">&gt;=</span>1.9
Reading http:<span style="color: pink;">//</span>pypi.python.org<span style="color: pink;">/</span>simple<span style="color: pink;">/</span>pycrypto<span style="color: pink;">/</span>
Reading http:<span style="color: pink;">//</span>pycrypto.sourceforge.net
Reading http:<span style="color: pink;">//</span>www.amk.ca<span style="color: pink;">/</span>python<span style="color: pink;">/</span>code<span style="color: pink;">/</span>crypto
Best match: pycrypto 2.0.1
Downloading http:<span style="color: pink;">//</span>www.amk.ca<span style="color: pink;">/</span>files<span style="color: pink;">/</span>python<span style="color: pink;">/</span>crypto<span style="color: pink;">/</span>pycrypto<span style="color: pink;">-</span>2.0.1.tar.gz
Processing pycrypto<span style="color: pink;">-</span>2.0.1.tar.gz
Running pycrypto<span style="color: pink;">-</span>2.0.1\setup.py <span style="color: pink;">-</span>q bdist_egg <span style="color: pink;">--</span>dist<span style="color: pink;">-</span><span style="color: #008080; font-weight: bold;">dir</span> f:\docume~<span style="color: #804000;">1</span>\admini~<span style="color: #804000;">1</span>\loc
als~<span style="color: #804000;">1</span>\temp\easy_install<span style="color: pink;">-</span>clrpu1\pycrypto<span style="color: pink;">-</span>2.0.1\egg<span style="color: pink;">-</span>dist<span style="color: pink;">-</span>tmp<span style="color: pink;">-</span>1wszmf
error: Setup script exited with error: Unable to find vcvarsall.bat</div></pre><!--END_DEVFMTCODE--></p>
<p>You can solve this in a number of ways, the easiest of which is to install the binary for pycrypto manually from here:</p>
<p><a href="http://www.voidspace.org.uk/downloads/pycrypto-2.0.1.win32-py2.6.exe">http://www.voidspace.org.uk/downloads/pycrypto-2.0.1.win32-py2.6.exe</a></p>
<p>Next, try running fabric using: fab -f fabfile.py deploy.  This results in:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PowerShell"><div class="devcodeoverflow">Traceback <span style="color: #000000;">&#40;</span>most recent call last<span style="color: #000000;">&#41;</span>:
  File <span style="color: #800000;">&quot;F:\Python26\Scripts\fab-script.py&quot;</span><span style="color: pink;">,</span> line 8<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> <span style="color: pink;">&lt;</span>module<span style="color: pink;">&gt;</span>
    load_entry_point<span style="color: #000000;">&#40;</span><span style="color: #800000;">'fabric==0.9.0'</span><span style="color: pink;">,</span> <span style="color: #800000;">'console_scripts'</span><span style="color: pink;">,</span> <span style="color: #800000;">'fab'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
  File <span style="color: #800000;">&quot;f:\python26\lib\site-packages\setuptools-0.6c9-py2.6.egg\pkg_resources.p</span>
<span style="color: #800000;">y&quot;</span><span style="color: pink;">,</span> line 277<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> load_entry_point
  File <span style="color: #800000;">&quot;f:\python26\lib\site-packages\setuptools-0.6c9-py2.6.egg\pkg_resources.p</span>
<span style="color: #800000;">y&quot;</span><span style="color: pink;">,</span> line 2180<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> load_entry_point
  File <span style="color: #800000;">&quot;f:\python26\lib\site-packages\setuptools-0.6c9-py2.6.egg\pkg_resources.p</span>
<span style="color: #800000;">y&quot;</span><span style="color: pink;">,</span> line 1913<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> load
  File <span style="color: #800000;">&quot;build\bdist.win32\egg\fabric\main.py&quot;</span><span style="color: pink;">,</span> line 17<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> <span style="color: pink;">&lt;</span>module<span style="color: pink;">&gt;</span>
  File <span style="color: #800000;">&quot;build\bdist.win32\egg\fabric\api.py&quot;</span><span style="color: pink;">,</span> line 9<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> <span style="color: pink;">&lt;</span>module<span style="color: pink;">&gt;</span>
  File <span style="color: #800000;">&quot;build\bdist.win32\egg\fabric\context_managers.py&quot;</span><span style="color: pink;">,</span> line 12<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> <span style="color: pink;">&lt;</span>module<span style="color: pink;">&gt;</span>
  File <span style="color: #800000;">&quot;build\bdist.win32\egg\fabric\state.py&quot;</span><span style="color: pink;">,</span> line 125<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> <span style="color: pink;">&lt;</span>module<span style="color: pink;">&gt;</span>
  File <span style="color: #800000;">&quot;build\bdist.win32\egg\fabric\state.py&quot;</span><span style="color: pink;">,</span> line 74<span style="color: pink;">,</span> <span style="color: #0000FF;">in</span> _get_system_username
&nbsp;
ImportError: No module named win32api</div></pre><!--END_DEVFMTCODE--></p>
<p>Install the pywin32 extensions from here:</p>
<p><a href="http://sourceforge.net/projects/pywin32/files/">http://sourceforge.net/projects/pywin32/files/</a></p>
<p>and finally run fabric again (fab -f fabfile.py deploy), the script should run fine this time&#8230;</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PowerShell"><div class="devcodeoverflow">All Done...
Done.
Disconnecting from babar.net:40... done.</div></pre><!--END_DEVFMTCODE--></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/builddeploy/installing-and-running-fabric-on-windows/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MySQLdb &#8211; EnvironmentError: mysql_config not found</title>
		<link>http://blog.oogly.co.uk/java/mysqldb-environmenterror-mysql_config-not-found</link>
		<comments>http://blog.oogly.co.uk/java/mysqldb-environmenterror-mysql_config-not-found#comments</comments>
		<pubDate>Tue, 21 Jul 2009 06:00:36 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[libmysqlclient]]></category>
		<category><![CDATA[mysql debian]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=236</guid>
		<description><![CDATA[Had a bit of a snag installing MySQLdb tonight, which is required when installing Django.  I ran into the following error when trying to install the MySQLdb egg under Debian Lenny. EnvironmentError: mysql_config not found When trying to install MySQL-python It was fixed by installing the libmysqlclient15-dev package and the installing the egg again: sudo [...]]]></description>
			<content:encoded><![CDATA[<p>Had a bit of a snag installing MySQLdb tonight, which is required when installing Django.  I ran into the following error when trying to install the MySQLdb egg under Debian Lenny.</p>
<p><code>EnvironmentError: mysql_config not found<br />
When trying to install MySQL-python</code><br />
It was fixed by installing the <strong>libmysqlclient15-dev package</strong> and the installing the egg again:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libmysqlclient15-dev
easy_install MySQL_python-1.2.3c1-py2.5-linux-i686.egg
</div></pre><!--END_DEVFMTCODE--></p>
<p>Package details here:</p>
<p><a href="http://packages.debian.org/search?searchon=contents&amp;keywords=mysql_config&amp;mode=path&amp;suite=stable&amp;arch=any">http://packages.debian.org/search?searchon=contents&amp;keywords=mysql_config&amp;mode=path&amp;suite=stable&amp;arch=any</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/java/mysqldb-environmenterror-mysql_config-not-found/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Oogly &#8211; &#8220;A Brand of Interest&#8221;</title>
		<link>http://blog.oogly.co.uk/design/oogly-a-brand-of-interest</link>
		<comments>http://blog.oogly.co.uk/design/oogly-a-brand-of-interest#comments</comments>
		<pubDate>Tue, 07 Apr 2009 17:05:15 +0000</pubDate>
		<dc:creator>Caroline</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Logo Design]]></category>
		<category><![CDATA[Oogly]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=224</guid>
		<description><![CDATA[It is always exciting to have your work noticed, and respected, by other designers&#8230;so today Oogly are happy to say we are featured on David Pache&#8217;s article &#8220;100 Brands of Interest&#8220;. As David comments, &#8220;It can be the easiest thing to create a logo for a client but when it comes to assessing what style [...]]]></description>
			<content:encoded><![CDATA[<p>It is always exciting to have your work noticed, and respected, by other designers&#8230;so today <a href="ww.oogly.co.uk">Oogly</a> are happy to say we are featured on David Pache&#8217;s article &#8220;<b>100 Brands of Interest</b>&#8220;.</p>
<p><img src="http://oogly.co.uk/ooglyImages/oogly_tree.gif"/></p>
<p>As David comments, &#8220;It can be the easiest thing to create a logo for a client but when it comes to assessing what style of identity can best represent yourself or your business, this is a different matter altogether. It is tempting to use your own brand as a showcase of all your best techniques and ideas but this must be balanced with modesty and professionalism to gain the correct tone for your business image.&#8221; </p>
<p>Check out the full article (including our logo) here: <a href="http://www.dache.ch/dache/comments/100_Brands_of_Interest_II/">http://www.dache.ch/dache/comments/100_Brands_of_Interest_II/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/design/oogly-a-brand-of-interest/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pastebin &#8211; CakePHP + SyntaxHighlighter + Eclipse Plugin</title>
		<link>http://blog.oogly.co.uk/java/pastebin-cakephp-syntaxhighlighter-eclipse-plugin</link>
		<comments>http://blog.oogly.co.uk/java/pastebin-cakephp-syntaxhighlighter-eclipse-plugin#comments</comments>
		<pubDate>Tue, 10 Mar 2009 05:40:57 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[eclipse feature]]></category>
		<category><![CDATA[paste bin]]></category>
		<category><![CDATA[pastebin]]></category>
		<category><![CDATA[pbin]]></category>
		<category><![CDATA[syntaxhighlighter]]></category>
		<category><![CDATA[update site]]></category>

		<guid isPermaLink="false">http://tech.oogly.co.uk/?p=41</guid>
		<description><![CDATA[I’ve revamped the pastebin website (http://pbin.oogly.co.uk) &#8211; which is based on CakePHP (a model view controller PHP framework) and SyntaxHighlighter (http://alexgorbatchev.com/wiki/SyntaxHighlighter).  I also created an Eclipse plugin to interface with the website. A pastebin allows you to share a patch/code selection/text selection with other people without having to resort to email/instant messenger.  You can either [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve revamped the pastebin website<strong><a href="http://pbin.oogly.co.uk"> (http://pbin.oogly.co.uk</a></strong>) &#8211; which is based on <a href="http://cakephp.org/"><strong>CakePHP</strong> </a>(a model view controller PHP framework) and SyntaxHighlighter (<a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter"><strong>http://alexgorbatchev.com/wiki/SyntaxHighlighter</strong></a>).  I also created an Eclipse plugin to interface with the website.</p>
<p><img class="alignnone size-full wp-image-221" title="pbin-sel5" src="http://blog.oogly.co.uk/wp-content/uploads/2009/03/pbin-sel5.png" alt="pbin-sel5" width="614" height="426" /></p>
<p>A pastebin allows you to share a patch/code selection/text selection with other people without having to resort to email/instant messenger.  You can either interact with pastebin via the URL or above or install the Eclipse plugin.  If you&#8217;ve installed the Eclispe plugin you then right click on the code/text you want to share and select <strong>Pastebin-&gt;Create Pastebin </strong>from the menu.  More instructions and screenshots are available on the website.</p>
<p>The Eclipse architecture is a little strange to start with, the support it provides via the extensions framework is easy enough to understand, although I&#8217;m a little confused now that they&#8217;ve announced declarative services and their bizarre use of OSGi.  The plugin uses the <strong>org.eclipse.ui.popupmenus</strong> extension.  Dependency wise, I used the Eclipse UI and runtime along with the JFace Textfield components to provide the URL for the created pastebin.  The main plugin itself is made up of an Activator class along with a NewPastebinAction class which implements <strong>IObjectActionDelegate</strong> which provides a run(<strong>IAction</strong> action) method.  This obtains the current selection and checks to see whether it is a TextSelection (editor content selection) or a <strong>StructuredSelection</strong> (a package explorer/navigator file selection).</p>
<p>The selection is then wrapped in a simple domain object and passed to a web client facade that uses the <strong>Apache HttpClient </strong>(<a href="http://hc.apache.org/httpclient-3.x/">http://hc.apache.org/httpclient-3.x/</a>) framework to provide connectivity with the pastebin website.</p>
<p>Finally, it uses a custom <strong>OkInputDialog</strong> to present the pastebin URL back to the user.</p>
<p>It’s not perfect at present (I need to unpick the dependency on the JDT plugin for the StructuredSelection), but it serves as a first attempt at creating a Eclipse plugin and understanding the internals of the Eclipse API.   Also, it unfortunately does not autodetect the file type and convert it into the internal pastebin format.</p>
<p>Packaging the plugin was very straightforward.  It involved using the File-&gt;Export function provided by Eclipse to package it into an appropriate JAR file.  Alternatively, you can publish an update site, I did this by creating a new feature project (and adding the plugin to it) then exporting the <a href="http://pbin.oogly.co.uk/update">the update site</a> using Eclipse.</p>
<p>I&#8217;m going to take the pastebin as a starting point for more collaborative features.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/java/pastebin-cakephp-syntaxhighlighter-eclipse-plugin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Contact Forms</title>
		<link>http://blog.oogly.co.uk/wordpress/contact-form</link>
		<comments>http://blog.oogly.co.uk/wordpress/contact-form#comments</comments>
		<pubDate>Wed, 18 Feb 2009 08:44:37 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[contact form 7]]></category>
		<category><![CDATA[improved-include-page]]></category>
		<category><![CDATA[include page]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[quiz]]></category>
		<category><![CDATA[subscribe]]></category>
		<category><![CDATA[survey]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=200</guid>
		<description><![CDATA[Generating a contact form for a website can be a rather tedious job. To make things easier there are a number of WordPress plugins available, one in particular which is rather good is Contact Form 7. This allows you to create a form and generate a number of tags for display on that form, e.g. [...]]]></description>
			<content:encoded><![CDATA[<p>Generating a contact form for a website can be a rather tedious job.  To make things easier there are a number of WordPress plugins available, one in particular which is rather good is <a href="http://wordpress.org/extend/plugins/contact-form-7/">Contact Form 7</a>.  This allows you to create a form and generate a number of tags for display on that form, e.g. email address, name, comments&#8230;</p>
<p><img class="alignnone size-full wp-image-204" title="contactform71" src="http://blog.oogly.co.uk/wp-content/uploads/2009/02/contactform71.png" alt="contactform71" width="600" height="399" /></p>
<p>You can then include this on your WordPress site via a new post or page using the following syntax:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><span style="color: #009900;">&#91;</span>contact<span style="color: #339933;">-</span>form <span style="color: #cc66cc;">1</span> <span style="color: #0000ff;">&quot;ContactForm&quot;</span><span style="color: #009900;">&#93;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>It supports CAPTCHA, simple quizzes, various different components for generating surveys, contact forms etc&#8230;  It also supports localization of messages so that you can customize the error messages and text displayed.</p>
<p>One issue I did find with it however was that I wanted to embed the contact form in a template.  At first this doesn&#8217;t seem to be possible unless you use another plugin.  I used <a href="http://wordpress.org/extend/plugins/improved-include-page/installation/">Improved include page</a> which allows you to include a wordpress page in a template.  By creating a new page with a contact form embedded it&#8217;s very easy to include this page in your template:</p>
<p>And you have a contact form which can be embedded in the footer of your page or wherever you choose to put it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/wordpress/contact-form/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Terminator Terminal</title>
		<link>http://blog.oogly.co.uk/sysadmin/terminator-terminal</link>
		<comments>http://blog.oogly.co.uk/sysadmin/terminator-terminal#comments</comments>
		<pubDate>Tue, 10 Feb 2009 16:03:57 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[terminator]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=181</guid>
		<description><![CDATA[I&#8217;ve been using a terminal called Terminator for the last few months instead of the terminal that&#8217;s bundled with Ubuntu.  The main reason for this was to take advantage of easy split window creation to enable multiple terminals on the same screen.  This is provided along with tabbed windows, but there also a number of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using a terminal called <a title="Terminator" href="https://launchpad.net/terminator/+download">Terminator</a> for the last few months instead of the terminal that&#8217;s bundled with Ubuntu.  The main reason for this was to take advantage of easy split window creation to enable multiple terminals on the same screen.  This is provided along with tabbed windows, but there also a number of other notable features.  I struggled to find a set of shortcut keys for Terminator initially, so there are a few below along with some explanation of the feature:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+e</div></pre><!--END_DEVFMTCODE--> &#8211; Split terminal horizontally<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+o </div></pre><!--END_DEVFMTCODE-->- Split terminal vertically<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+T</div></pre><!--END_DEVFMTCODE--> &#8211; Open a new tab<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+Tab</div></pre><!--END_DEVFMTCODE--> &#8211; Switch terminals<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+<span style="color: #c20cb9; font-weight: bold;">w</span></div></pre><!--END_DEVFMTCODE--> &#8211; Close currently selected terminal window<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+q</div></pre><!--END_DEVFMTCODE--> &#8211; Close all terminals<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+z</div></pre><!--END_DEVFMTCODE--> &#8211; Maximize currently selected terminal window<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+Left Arrow</div></pre><!--END_DEVFMTCODE--> &#8211; Move split (dragbar) to the left<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+Right Arrow</div></pre><!--END_DEVFMTCODE--> &#8211; Move split (dragbar) to the right<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+Up Arrow</div></pre><!--END_DEVFMTCODE--> &#8211; Move split (dragbar) up<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+Down Arrow</div></pre><!--END_DEVFMTCODE--> &#8211; Move split (dragbar) down<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT++</div></pre><!--END_DEVFMTCODE--> &#8211; Increase text size in the terminal<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+-</div></pre><!--END_DEVFMTCODE--> &#8211; Decrease text size in the terminal<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+SHIFT+<span style="color: #000000;">0</span></div></pre><!--END_DEVFMTCODE--> &#8211; Restore text size in the terminal<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">CTRL+Right Click</div></pre><!--END_DEVFMTCODE--> &#8211; moves a window, release the CTRL key to finalise the window position.<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">F11</div></pre><!--END_DEVFMTCODE--> &#8211; Fullscreen view</p>
<p>You can also get these using <man command> to look at all possible options for terminator.  Overall it&#8217;s a good replacement for the bog standard terminal with some added features.  </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/sysadmin/terminator-terminal/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postfix and Aliases</title>
		<link>http://blog.oogly.co.uk/sysadmin/postfix-and-aliases</link>
		<comments>http://blog.oogly.co.uk/sysadmin/postfix-and-aliases#comments</comments>
		<pubDate>Tue, 03 Feb 2009 04:00:01 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[aliases]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[newaliases]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=188</guid>
		<description><![CDATA[Just a quite post on a simple Postfix installation and some steps that tripped me up a little recently. I installed a basic version of Postfix on Debian and didn&#8217;t want to go through the hassles of configuring a MySQL database for managing users etc&#8230; I decided to just use the simple aliases file to [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quite post on a simple Postfix installation and some steps that tripped me up a little recently.</p>
<p>I installed a basic version of Postfix on Debian and didn&#8217;t want to go through the hassles of configuring a MySQL database for managing users etc&#8230;  I decided to just use the simple aliases file to manage users.  To do this I needed to specify the following in my main.cf file:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">
myhostname = example.co.uk
mydomain = example.co.uk
myorigin = example.co.uk
alias_maps = <span style="color: #7a0874; font-weight: bold;">hash</span>:<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>aliases
alias_database = <span style="color: #7a0874; font-weight: bold;">hash</span>:<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>aliases
mydestination = <span style="color: #007800;">$myhostname</span>, <span style="color: #007800;">$mydomain</span>, localhost.<span style="color: #007800;">$mydomain</span>, mail.example.co.uk
</div></pre><!--END_DEVFMTCODE--></p>
<p>and this in my /etc/aliases file:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">
postmaster: root
root: example<span style="color: #000000; font-weight: bold;">@</span>gmail.com
example: example<span style="color: #000000; font-weight: bold;">@</span>gmail.com
</div></pre><!--END_DEVFMTCODE--></p>
<p>I also ran into two more issues with the aliases file:</p>
<p><strong>1. Dictionary issue with /etc/aliases</strong><br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">postfix<span style="color: #000000; font-weight: bold;">/</span>smtpd<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">19065</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: fatal: open dictionary: expecting <span style="color: #ff0000;">&quot;type:name&quot;</span> form instead of...</div></pre><!--END_DEVFMTCODE--></p>
<p>The issue here was that Postfix couldn&#8217;t read the aliases file.  It just needed to convert the /etc/aliases file into the /etc/aliases.db file.  The question was how, the answer, like this:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><span style="color: #c20cb9; font-weight: bold;">sudo</span> newaliases; <span style="color: #c20cb9; font-weight: bold;">sudo</span> postfix reload </div></pre><!--END_DEVFMTCODE--><br />
<strong><br />
2. Aliases database out of sync</strong><br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">database <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>aliases.db is older than <span style="color: #7a0874; font-weight: bold;">source</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>aliases</div></pre><!--END_DEVFMTCODE--><br />
The aliases database was not up to date with the aliases file.  To fix this I ran the commands above.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/sysadmin/postfix-and-aliases/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Tools &#8211; Woo Hoo!</title>
		<link>http://blog.oogly.co.uk/community/twitter-tools-woo-hoo</link>
		<comments>http://blog.oogly.co.uk/community/twitter-tools-woo-hoo#comments</comments>
		<pubDate>Sat, 24 Jan 2009 03:55:59 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitter-tools]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=171</guid>
		<description><![CDATA[So this is an initial post from WordPress using the twitter-tools plugin which allows you to integrate WordPress and Twitter (and vice versa)&#8230; http://wordpress.org/extend/plugins/twitter-tools/ so this new post should result in a new tweet being created in Twitter : )]]></description>
			<content:encoded><![CDATA[<p>So this is an initial post from WordPress using the twitter-tools plugin which allows you to integrate WordPress and Twitter (and vice versa)&#8230;</p>
<p>http://wordpress.org/extend/plugins/twitter-tools/</p>
<p>so this new post should result in a new tweet being created in Twitter : )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/community/twitter-tools-woo-hoo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lynx and Persistent Cookies</title>
		<link>http://blog.oogly.co.uk/sysadmin/lynx-and-persistent-cookies</link>
		<comments>http://blog.oogly.co.uk/sysadmin/lynx-and-persistent-cookies#comments</comments>
		<pubDate>Wed, 21 Jan 2009 03:33:06 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lynx]]></category>
		<category><![CDATA[persistent]]></category>

		<guid isPermaLink="false">http://blog.oogly.co.uk/?p=165</guid>
		<description><![CDATA[Just a quick write up here on persistent cookies and lynx. I was having an issue where lynx was prompting me to accept cookies from Google, Gmail etc&#8230; all of the time. I solved this by enabling persistent cookies for lynx 1.8.5. To do this, you can put the following in lynx.cfg file which resides [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick write up here on persistent cookies and lynx.  I was having an issue where lynx was prompting me to accept cookies from Google, Gmail etc&#8230; all of the time.  I solved this by enabling persistent cookies for lynx 1.8.5.  </p>
<p>To do this, you can put the following in lynx.cfg file which resides in your user home directory:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">
SET_COOKIES:TRUE
ACCEPT_ALL_COOKIES:TRUE
PERSISTENT_COOKIES:TRUE
COOKIE_FILE:~<span style="color: #000000; font-weight: bold;">/</span>.lynx_cookies
COOKIE_SAVE_FILE:~<span style="color: #000000; font-weight: bold;">/</span>.lynx_cookies
</div></pre><!--END_DEVFMTCODE--></p>
<p>This will store cookies in the .lynx_cookies file.  It will also accept all cookies (you may want to omit this and enable cookies for specific domains which is also possible).  For more information on the lynx configuration file and the various options see the link below:</p>
<p>One more note, this doesn&#8217;t have to go in the lynx.cfg file, you can also put it in a .lynxrc file, but you then may have to alias lynx to read from that file, possibly in .bashrc or .bash_profile, up to you:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #c20cb9; font-weight: bold;">lynx</span>=<span style="color: #ff0000;">&quot;lynx -cfg=<span style="color: #007800;">$HOME</span>/.lynxrc&quot;</span>
</div></pre><!--END_DEVFMTCODE--></p>
<p>And that&#8217;s about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oogly.co.uk/sysadmin/lynx-and-persistent-cookies/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
