<?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>Jonathan Holloway</title>
	<atom:link href="http://www.jonathanholloway.co.uk/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jonathanholloway.co.uk</link>
	<description>www.jonathanholloway.co.uk</description>
	<lastBuildDate>Sat, 21 Jan 2012 13:00:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Jenkins CI Server &#8211; Resetting a build number and cleaning a build</title>
		<link>http://www.jonathanholloway.co.uk/java/jenkins-ci-server-resetting-a-build-number-and-cleaning-a-build</link>
		<comments>http://www.jonathanholloway.co.uk/java/jenkins-ci-server-resetting-a-build-number-and-cleaning-a-build#comments</comments>
		<pubDate>Fri, 21 Oct 2011 23:54:47 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jonathanholloway.co.uk/?p=536</guid>
		<description><![CDATA[I&#8217;ve used a script to reset the build number during the migration to a new continuous integration server &#8211; namely Jenkins from Hudson. The following script will remove all the workspace builds from Jenkins that exist, reset the build number for all projects specified in the .hudson/jobs directory. Use it with care. I take no ...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used a script to reset the build number during the migration to a new continuous integration server &#8211; namely Jenkins from Hudson.</p>
<p>The following script will remove all the workspace builds from Jenkins that exist, reset the build number for all projects specified<br />
in the .hudson/jobs directory.</p>
<p>Use it with care.  I take no responsibility for misuse of this or bugs etc&#8230;</p>
<p>On another note, there is a plugin available for Jenkins that allows you to change the build number, see: <a href="http://wiki.hudson-ci.org/display/HUDSON/Next+Build+Number+Plugin">http://wiki.hudson-ci.org/display/HUDSON/Next+Build+Number+Plugin</a></p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Hudson build cleaner</span>
<span style="color: #666666; font-style: italic;"># Cleans out all builds for projects that exist in the directory</span>
<span style="color: #666666; font-style: italic;"># Resets the build number to 1</span>
<span style="color: #666666; font-style: italic;"># Backup all projects before running this</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> cleanbuild <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;cleaning $1&quot;</span>
  <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$1</span>
  <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span>
  <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-Rf</span> builds<span style="color: #000000; font-weight: bold;">/*</span>
  <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-Rf</span> lastSuccesful
  <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-Rf</span> lastStable<span style="color: #000000; font-weight: bold;">/</span>
  <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-Rf</span> workspace<span style="color: #000000; font-weight: bold;">/*</span>
  <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-Rf</span> modules<span style="color: #000000; font-weight: bold;">/*</span>
  <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> lastSuccessful lastStable
  <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> nextBuildNumber
  <span style="color: #c20cb9; font-weight: bold;">touch</span> nextBuildNumber
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> nextBuildNumber
  <span style="color: #7a0874; font-weight: bold;">cd</span> -
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> project <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #660033;">-L</span> <span style="color: #660033;">-maxdepth</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-type</span> d <span style="color: #660033;">-name</span> <span style="color: #ff0000;">'*'</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-name</span> <span style="color: #ff0000;">'.*'</span> <span style="color: #660033;">-printf</span> <span style="color: #ff0000;">'%f\n'</span> <span style="color: #000000; font-weight: bold;">|</span> column<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #000000; font-weight: bold;">do</span>
  cleanbuild <span style="color: #007800;">$project</span>
<span style="color: #000000; font-weight: bold;">done</span>
</div></pre><!--END_DEVFMTCODE--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanholloway.co.uk/java/jenkins-ci-server-resetting-a-build-number-and-cleaning-a-build/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing and configuring ps3mediaserver</title>
		<link>http://www.jonathanholloway.co.uk/java/ps3mediaserver-pms-conf</link>
		<comments>http://www.jonathanholloway.co.uk/java/ps3mediaserver-pms-conf#comments</comments>
		<pubDate>Sat, 24 Sep 2011 23:50:09 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jonathanholloway.co.uk/?p=503</guid>
		<description><![CDATA[I was installing ps3mediaserver on Ubuntu 10.04 server tonight. It&#8217;s a Java based DNLA UPNP server that transcodes/streams on the fly &#8211; very handy for weird mkv file formats that the Playstation 3 doesn&#8217;t support natively. However, it didn&#8217;t prove to be the most straightforward of installs. Just a few tips here based on what ...]]></description>
			<content:encoded><![CDATA[<p>I was installing ps3mediaserver on Ubuntu 10.04 server tonight.  It&#8217;s a Java based DNLA UPNP server that transcodes/streams on the fly &#8211; very handy for weird mkv file formats that the Playstation 3 doesn&#8217;t support natively. </p>
<p>However, it didn&#8217;t prove to be the most straightforward of installs.  Just a few tips here based on what I did:</p>
<p>I checked out the source code from the trunk of the Subversion repository.  The reason I did this was because the binary that was installed didn&#8217;t include a PMS.conf, not sure whether I could have manually created it.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><span style="color: #c20cb9; font-weight: bold;">svn checkout</span> http:<span style="color: #000000; font-weight: bold;">//</span>ps3mediaserver.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>trunk<span style="color: #000000; font-weight: bold;">/</span> ps3mediaserver-read-only</div></pre><!--END_DEVFMTCODE--></p>
<p>then proceeded to build it with ant form the Apache website.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">ant</div></pre><!--END_DEVFMTCODE--></p>
<p>After that it was a case of configuring it.  It appears that it installs the PMS.conf file in:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">$<span style="color: #000000; font-weight: bold;">/</span>.config<span style="color: #000000; font-weight: bold;">/</span>PMS<span style="color: #000000; font-weight: bold;">/</span>PMS.conf</div></pre><!--END_DEVFMTCODE--></p>
<p>so you need to go there to configure it.</p>
<p>I had to change the network interface that it bound on and the port used.</p>
<p>That proved to be a pain as none of the configuration options are documented.  I ended up digging out the PmsConfiguration.java file from the source, link here:</p>
<p><a href="http://code.google.com/p/ps3mediaserver/source/browse/trunk/ps3mediaserver/net/pms/configuration/PmsConfiguration.java" title="PMSconfiguration.java source">http://code.google.com/p/ps3mediaserver/source/browse/trunk/ps3mediaserver/net/pms/configuration/PmsConfiguration.java</a></p>
<p>That contains all the names of the keys you need so for my purposes I needed the following in PMS.conf:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">network_interface = eth0</div></pre><!--END_DEVFMTCODE--></p>
<p>Starting this up with:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">pms.sh <span style="color: #000000; font-weight: bold;">&amp;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>and scanning via the Playstation 3 Video -> Detect MediaServers brings up my PS3MediaServer.</p>
<p>There&#8217;s also a help forum here:</p>
<p><a href="http://www.ps3mediaserver.org/forum">http://www.ps3mediaserver.org/forum</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanholloway.co.uk/java/ps3mediaserver-pms-conf/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating a WordPress Site to a new URL</title>
		<link>http://www.jonathanholloway.co.uk/java/migrating-a-wordpress-site-to-a-new-url</link>
		<comments>http://www.jonathanholloway.co.uk/java/migrating-a-wordpress-site-to-a-new-url#comments</comments>
		<pubDate>Sun, 12 Jun 2011 22:00:26 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jonathanholloway.co.uk/?p=500</guid>
		<description><![CDATA[Migrating a WordPress site to a different domain can be a bit of a pain. The standard way to do this is detailed in this tutorial on the wordpress website. If you&#8217;re using phpmyadmin to update the database directly the only two changes you have to make are to the site_url and home option-name&#8216;s in ...]]></description>
			<content:encoded><![CDATA[<p>Migrating a WordPress site to a different domain can be a bit of a pain.  The standard way to do this is detailed in <a href="http://codex.wordpress.org/Changing_The_Site_URL">this tutorial</a> on the wordpress website.</p>
<p>If you&#8217;re using phpmyadmin to update the database directly the only two changes you have to make are to the <strong>site_url</strong> and <strong>home</strong> <em>option-name</em>&#8216;s in wp_options.  Make sure you change the <em>option_value</em> for each of these to the new address.</p>
<p>One of the problems you may come across is that your old posts may reference the old domain in same way.  If you want to update these then it&#8217;s laborious and manual task of editing them in the database &#8211; which can be error prone, unless done carefully.  You can run a SQL update to update the domain in the post_content column of the wp_posts table as follows:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="SQL"><div class="devcodeoverflow"><span style="color: #993333; font-weight: bold;">UPDATE</span> wp_posts <span style="color: #993333; font-weight: bold;">SET</span> post_content <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span>post_content<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'olddomain.com'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'newdomain.com'</span><span style="color: #66cc66;">&#41;</span>;</div></pre><!--END_DEVFMTCODE--></p>
<p>I used this method to update the guid column to reference my new domain instead of my old domain.</p>
<p><strong>Make sure you backup your database before running this.</strong>  It&#8217;s a pretty easy process to do the backup of a MySQL database.  </p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">mysqldump <span style="color: #660033;">-u</span> username <span style="color: #660033;">-p</span> <span style="color: #660033;">-v</span> old.db <span style="color: #000000; font-weight: bold;">&gt;</span> old.sql</div></pre><!--END_DEVFMTCODE--></p>
<p>If you&#8217;re also renaming your database in relation to your domain name move you can use the following:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow">mysqldump <span style="color: #660033;">-u</span> username <span style="color: #660033;">-p</span> <span style="color: #660033;">-v</span> old.db <span style="color: #000000; font-weight: bold;">&gt;</span> old.sql
mysqladmin <span style="color: #660033;">-u</span> username <span style="color: #660033;">-p</span> create newdb
mysql <span style="color: #660033;">-u</span> username <span style="color: #660033;">-p</span> newdb <span style="color: #000000; font-weight: bold;">&lt;</span> old.sql</div></pre><!--END_DEVFMTCODE--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanholloway.co.uk/java/migrating-a-wordpress-site-to-a-new-url/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hadoop setup in ten seconds flat</title>
		<link>http://www.jonathanholloway.co.uk/java/hadoop-setup-in-ten-seconds-flat</link>
		<comments>http://www.jonathanholloway.co.uk/java/hadoop-setup-in-ten-seconds-flat#comments</comments>
		<pubDate>Fri, 03 Jun 2011 19:19:14 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jonathanholloway.co.uk/?p=395</guid>
		<description><![CDATA[I needed to get Apache hadoop setup quickly on my local machine recently, I needed to hunt around for the correct ports which I found here: http://www.cloudera.com/blog/2009/08/hadoop-default-ports-quick-reference/ Installation involved downloading the hadoop distribution and creating the right configurations (core-site.xml, hdfs-site.xml and mapred-site.xml). It also involved formatting the namenode and starting everything up. It&#8217;s a pain ...]]></description>
			<content:encoded><![CDATA[<p>I needed to get Apache hadoop setup quickly on my local machine recently, I needed to hunt around for the correct ports which I found here:</p>
<p><a href="http://www.cloudera.com/blog/2009/08/hadoop-default-ports-quick-reference/">http://www.cloudera.com/blog/2009/08/hadoop-default-ports-quick-reference/</a></p>
<p>Installation involved downloading the hadoop distribution and creating the right configurations (core-site.xml, hdfs-site.xml and mapred-site.xml).  It also involved formatting the namenode and starting everything up.  It&#8217;s a pain to do manually so I wrote a <a href="/wp-content/hadoopsetup.sh">script</a> to do the whole lot to save time.  A few caveats:</p>
<ul>
<li>You need to set the JAVA_HOME location on your machine at the top of the script</li>
<li>Specify the distro name (hadoop-0.20.2) to match the apache download link</li>
<li>Configure passwordless SSH for your local machine</li>
</ul>
<p>You can configure passwordless SSH as follows:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span> <span style="color: #660033;">-t</span> dsa <span style="color: #660033;">-P</span> <span style="color: #ff0000;">''</span> <span style="color: #660033;">-f</span> ~<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_dsa_for_hadoop
<span style="color: #c20cb9; font-weight: bold;">cat</span> ~<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_dsa_for_hadoop.pub <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>authorized_keys
</div></pre><!--END_DEVFMTCODE--></p>
<p>Hopefully that&#8217;ll save you a bunch of time! : )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanholloway.co.uk/java/hadoop-setup-in-ten-seconds-flat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Permalinks Not Working Month and Name under Apache 2</title>
		<link>http://www.jonathanholloway.co.uk/java/wordpress-permalinks-not-working-month-and-name-apache-2</link>
		<comments>http://www.jonathanholloway.co.uk/java/wordpress-permalinks-not-working-month-and-name-apache-2#comments</comments>
		<pubDate>Mon, 25 Oct 2010 04:12:37 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jonathanholloway.co.uk/?p=381</guid>
		<description><![CDATA[When changing form the default permalink setting under WordPress you may encounter an error if mod_rewrite is not setup on Apache correctly. This results in a 404 page not found because Apache does not know how to route your requests properly. I found this when running WordPress with Apache2. In order to fix this you ...]]></description>
			<content:encoded><![CDATA[<p>When changing form the default permalink setting under WordPress you may encounter an error if mod_rewrite is not setup on Apache correctly.  This results in a 404 page not found because Apache does not know how to route your requests properly.</p>
<p>I found this when running WordPress with Apache2.  In order to fix this you need to make sure that the Apache site configuration file, in my case /etc/apache2/sites-available/clientsite.  In the clientsite configuration file you should make sure that the following settings exist:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Apache configuration"><div class="devcodeoverflow"><span style="color: #00007f;">Options</span> <span style="color: #0000ff;">Indexes</span> <span style="color: #0000ff;">FollowSymLinks</span> MultiViews
<span style="color: #00007f;">AllowOverride</span> <span style="color: #0000ff;">all</span>
<span style="color: #00007f;">Order</span> <span style="color: #00007f;">allow</span>,<span style="color: #00007f;">deny</span>
<span style="color: #00007f;">allow</span> from <span style="color: #0000ff;">all</span></div></pre><!--END_DEVFMTCODE--></p>
<p>I needed to change AllowOverride from none to all in order to make WordPress permalinks work for Month and Name.</p>
<p>For more info on AllowOverride and Apache configuration see:</p>
<p><a href="http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride">http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanholloway.co.uk/java/wordpress-permalinks-not-working-month-and-name-apache-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Maven System Path &#8211; Including local JAR files in a Maven project</title>
		<link>http://www.jonathanholloway.co.uk/java/maven-system-path-using-jars-without-installing-in-maven</link>
		<comments>http://www.jonathanholloway.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://www.jonathanholloway.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://www.jonathanholloway.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://www.jonathanholloway.co.uk/builddeploy/installing-and-running-fabric-on-windows</link>
		<comments>http://www.jonathanholloway.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://www.jonathanholloway.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<span style="color: #66cc66;">,</span> env<span style="color: #66cc66;">,</span> put
env.<span style="color: black;">hosts</span> <span style="color: #66cc66;">=</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: #66cc66;">=</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: #66cc66;">,</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><span style="color: #804000;">1.9</span>
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 <span style="color: #804000;">8</span><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 <span style="color: #804000;">277</span><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 <span style="color: #804000;">2180</span><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 <span style="color: #804000;">1913</span><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 <span style="color: #804000;">17</span><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 <span style="color: #804000;">9</span><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 <span style="color: #804000;">12</span><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 <span style="color: #804000;">125</span><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 <span style="color: #804000;">74</span><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:<span style="color: #804000;">40</span>... done.</div></pre><!--END_DEVFMTCODE--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanholloway.co.uk/builddeploy/installing-and-running-fabric-on-windows/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MySQLdb &#8211; EnvironmentError: mysql_config not found</title>
		<link>http://www.jonathanholloway.co.uk/java/mysqldb-environmenterror-mysql_config-not-found</link>
		<comments>http://www.jonathanholloway.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://www.jonathanholloway.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 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://www.jonathanholloway.co.uk/java/mysqldb-environmenterror-mysql_config-not-found/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Oogly &#8211; &#8220;A Brand of Interest&#8221;</title>
		<link>http://www.jonathanholloway.co.uk/design/oogly-a-brand-of-interest</link>
		<comments>http://www.jonathanholloway.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://www.jonathanholloway.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>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://www.jonathanholloway.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://www.jonathanholloway.co.uk/java/pastebin-cakephp-syntaxhighlighter-eclipse-plugin</link>
		<comments>http://www.jonathanholloway.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://www.jonathanholloway.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://www.jonathanholloway.co.uk/java/pastebin-cakephp-syntaxhighlighter-eclipse-plugin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

