<?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>Strangeparty</title>
	<atom:link href="http://www.strangeparty.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.strangeparty.com</link>
	<description>A blog about life, linux and photography</description>
	<lastBuildDate>Sun, 28 Apr 2013 14:45:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>White bee</title>
		<link>http://www.strangeparty.com/2013/04/28/white-bee/</link>
		<comments>http://www.strangeparty.com/2013/04/28/white-bee/#comments</comments>
		<pubDate>Sun, 28 Apr 2013 14:45:56 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[insects]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=1034</guid>
		<description><![CDATA[<p>At the pub in Hursley on Friday, a white bee landed on the table outside. An unusual colour, I think it might be an andrena cineraria, a type of miner bee. Ive never seen one before, but it was quite cool to look at.</p> ]]></description>
				<content:encoded><![CDATA[<p>At the pub in Hursley on Friday, a white bee landed on the table outside.<br />
<a title="White bee" href="http://www.flickr.com/photos/32898341@N00/8688281337"><img class="alignnone " alt="White bee" src="http://farm8.staticflickr.com/7044/8688281337_c03834903f_m.jpg" /></a><br />
An unusual colour, I think it might be an <a href="http://www.bwars.com/index.php?q=bee/andrenidae/andrena-cineraria">andrena cineraria</a>, a type of miner bee. Ive never seen one before, but it was quite cool to look at.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2013/04/28/white-bee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Southackton meetup on Thursday</title>
		<link>http://www.strangeparty.com/2013/03/02/southackton-meetup-on-thursday/</link>
		<comments>http://www.strangeparty.com/2013/03/02/southackton-meetup-on-thursday/#comments</comments>
		<pubDate>Sat, 02 Mar 2013 11:17:27 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Southackton]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[rasperrypi]]></category>
		<category><![CDATA[southackton]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=1026</guid>
		<description><![CDATA[<p>The Southackton group had a pretty good meetup last thursday. Lots of fun things going on. There were walking robots, autonomous wheeled robots, RF hacking of LightWaveRF remote control systems, arduinos, raspberry pis and more. Also, there was cake!</p> <p class="wp-caption-text">Autonomous robots</p> <p class="wp-caption-text">Benjie RF hacking</p> <p class="wp-caption-text">Mark supplying cake</p> <p class="wp-caption-text">Hacking some android hardware</p> <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2013/03/02/southackton-meetup-on-thursday/">Southackton meetup on Thursday</a></span>]]></description>
				<content:encoded><![CDATA[<p>The Southackton group had a pretty good meetup last thursday. Lots of fun things going on. There were walking robots, autonomous wheeled robots, RF hacking of LightWaveRF remote control systems, arduinos, raspberry pis and more. Also, there was cake!</p>
<div class="wp-caption aligncenter" style="width: 250px"><a href="http://www.flickr.com/photos/32898341@N00/8519993025"><img alt="" src="http://farm9.staticflickr.com/8387/8519993025_ccd1360ea5_m.jpg" width="240" height="180" /></a><p class="wp-caption-text">Autonomous robots</p></div>
<div class="wp-caption aligncenter" style="width: 250px"><a href="http://www.flickr.com/photos/32898341@N00/8519992605"><img alt="" src="http://farm9.staticflickr.com/8087/8519992605_4304886f62_m.jpg" width="240" height="180" /></a><p class="wp-caption-text">Benjie RF hacking</p></div>
<div class="wp-caption aligncenter" style="width: 190px"><a href="http://www.flickr.com/photos/32898341@N00/8519992181"><img alt="" src="http://farm9.staticflickr.com/8248/8519992181_b101cf71a6_m.jpg" width="180" height="240" /></a><p class="wp-caption-text">Mark supplying cake</p></div>
<div class="wp-caption aligncenter" style="width: 250px"><a href="http://www.flickr.com/photos/32898341@N00/8521103232"><img alt="" src="http://farm9.staticflickr.com/8091/8521103232_d3b0a57680_m.jpg" width="240" height="180" /></a><p class="wp-caption-text">Hacking some android hardware</p></div>
<div class="wp-caption aligncenter" style="width: 190px"><a href="http://www.flickr.com/photos/32898341@N00/8519991207"><img alt="" src="http://farm9.staticflickr.com/8244/8519991207_f74ed2de74_m.jpg" width="180" height="240" /></a><p class="wp-caption-text">Our youngest attendee!</p></div>
<div class="wp-caption aligncenter" style="width: 250px"><a href="http://www.flickr.com/photos/32898341@N00/8521102224"><img alt="" src="http://farm9.staticflickr.com/8107/8521102224_5a609ff9ba_m.jpg" width="240" height="180" /></a><p class="wp-caption-text">Wheeled robots</p></div>
<div class="wp-caption aligncenter" style="width: 250px"><a href="http://www.flickr.com/photos/32898341@N00/8519990057"><img alt="" src="http://farm9.staticflickr.com/8237/8519990057_9f894ef0b9_m.jpg" width="240" height="180" /></a><p class="wp-caption-text">Arduino controlled robots</p></div>
<div class="wp-caption aligncenter" style="width: 190px"><a href="http://www.flickr.com/photos/32898341@N00/8521101056"><img alt="" src="http://farm9.staticflickr.com/8097/8521101056_ea0d73c6af_m.jpg" width="180" height="240" /></a><p class="wp-caption-text">home-built portable server (raspberry pi)</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2013/03/02/southackton-meetup-on-thursday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cycling in 2012</title>
		<link>http://www.strangeparty.com/2013/01/03/cycling-in-2012/</link>
		<comments>http://www.strangeparty.com/2013/01/03/cycling-in-2012/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 09:28:18 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Cycling]]></category>
		<category><![CDATA[cycling]]></category>
		<category><![CDATA[mountain biking]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=942</guid>
		<description><![CDATA[<p>Looking back over last year, I really tried to get into a regular pattern of cycling to work. Some good weeks and some bad added up to 31 days over the year, which sounds somewhat disappointing. 341 miles cycled to work and back sounds a little better, but I really must do better this year. <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2013/01/03/cycling-in-2012/">Cycling in 2012</a></span>]]></description>
				<content:encoded><![CDATA[<p>Looking back over last year, I really tried to get into a regular pattern of cycling to work. Some good weeks and some bad added up to 31 days over the year, which sounds somewhat disappointing. 341 miles cycled to work and back sounds a little better, but I really must do better this year. It will be interesting to see how much I actually manage over the course of this year.</p>
<p>Mountain biking wasn&#8217;t really any better either, only managing just over 5 rides, though I really enjoyed them. Several of the rides were in the dark and my little light didn&#8217;t really do what was required, so I bought <a href="http://dx.com/p/p7-water-resistant-ssc-p7-3-mode-1200-lumen-white-led-bike-light-with-battery-pack-set-82734">a pair of Chinese clones for a fairly modest price</a>. Light-wise, they are brilliant. Not sure about the cardboard in the battery pack, but the light output is incredible for the price, and I have yet to have a single problem with them.</p>
<p>My first serious mountain bike ride was a 26km loop near hursley, following part of Clarendon way which was affectionately nicknamed the cheese-grater as we were going down a dirt staircase with barbed wire on one side at some speed in the dark. A nice ride, despite people getting a few punctures.<br />
<a href="http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/hursley/549054">http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/hursley/549054</a></p>
<p>Then we went out to near Winchester for a ride a CheesefootHead &#8211; This was supposed to be a 20-25km ride, but turned out to be a 37km ride which nearly broke me. Not to mention being chased out of a field by a herd of very inquisitive and curious cows who were just getting that bit too friendly! Fantastic views from around here though, which I had brought a camera.<br />
<a href="http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/cheesefoot-head/622592">http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/cheesefoot-head/622592</a></p>
<p>Then I went back for my second go around Queen Elizabeth Country park, having come-off badly on my first attempt with a good hole in my elbow. The uphill parts are pretty tiring, but the route is really nice and I really recommend getting out there if you are nearby.<br />
<a href="http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/qecp/637658">http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/qecp/637658</a></p>
<p>We also did a ride from Hursley, up through the south edge of Winchester, along the golf course and down through Twyford, Colden Common, and Fair Oak. The time of year was bad as the nettles were massively overgrown, but it was a really nice ride. The GPS stopped in the middle, hence the straight line.<br />
<a href="http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/hursley/742981">http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/hursley/742981</a></p>
<p>And the last ride of the year was another loop from Hursley, which gave me a really good chance to test out my newish lights as it was properly dark and pretty much all offroad. The lights worked great, and the really soft and muddy ground made for an interesting ride. Quite tiring and tricky because of the mud, but the hardest bit was trying to get the bike in the boot of the car without covering everything in mud!<br />
<a href="http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/hursley/824224">http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/hursley/824224</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2013/01/03/cycling-in-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s the 2013 New Year!!!!</title>
		<link>http://www.strangeparty.com/2013/01/02/its-the-2013-new-year/</link>
		<comments>http://www.strangeparty.com/2013/01/02/its-the-2013-new-year/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 03:17:03 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/2013/01/02/its-the-2013-new-year/</guid>
		<description><![CDATA[<p>It&#8217;s the 2013 New Year!!!!</p> <p class="wdgpo_gplus_attachment wdgpo_gplus_photo_attachment"></p> ]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s the 2013 New Year!!!!</p>
<div class="wdgpo_gplus_attachments">
<p class="wdgpo_gplus_attachment wdgpo_gplus_photo_attachment"><a class="wdgpo_gplus_photo_attachment_full_size" href="https://lh5.googleusercontent.com/-bknr32kADJk/UONnNJ3ZnXI/AAAAAAAATOo/rf7DuNi2fE8/13%2B-%2B1%2B%25281%2529.jpg"><img alt="13 - 1 (1).jpg" src="https://lh5.googleusercontent.com/-bknr32kADJk/UONnNJ3ZnXI/AAAAAAAATOo/rf7DuNi2fE8/w497-h373/13%2B-%2B1%2B%25281%2529.jpg" width="249" height="373" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2013/01/02/its-the-2013-new-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re: [Regression w/ patch] Media commit causes user space to misbahave (was: Re: Linux 3.8-rc1)</title>
		<link>http://www.strangeparty.com/2012/12/28/re-regression-w-patch-media-commit-causes-user-space-to-misbahave-was-re-linux-3-8-rc1/</link>
		<comments>http://www.strangeparty.com/2012/12/28/re-regression-w-patch-media-commit-causes-user-space-to-misbahave-was-re-linux-3-8-rc1/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 09:13:44 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/2012/12/28/re-regression-w-patch-media-commit-causes-user-space-to-misbahave-was-re-linux-3-8-rc1/</guid>
		<description><![CDATA[<p>Best to not anger Linus! <p class='wdgpo_gplus_attachment wdgpo_gplus_article_attachment'>On Sun, Dec 23, 2012 at 6:08 AM, Mauro Carvalho Chehab wrote: &#62; &#62; Are you saying that pulseaudio is entering on some weird loop if the &#62; returned value is not -EINVAL? That seems a bug at pul&#8230;</p> ]]></description>
				<content:encoded><![CDATA[<p>Best to not anger Linus!
<p class='wdgpo_gplus_attachment wdgpo_gplus_article_attachment'><a class='wdgpo_gplus_article_attachment_link' href='https://lkml.org/lkml/2012/12/23/75'>On Sun, Dec 23, 2012 at 6:08 AM, Mauro Carvalho Chehab wrote: &gt; &gt; Are you saying that pulseaudio is entering on some weird loop if the &gt; returned value is not -EINVAL? That seems a bug at pul&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2012/12/28/re-regression-w-patch-media-commit-causes-user-space-to-misbahave-was-re-linux-3-8-rc1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The new &#8220;My code is compiling&#8221; moment at IBM hursley</title>
		<link>http://www.strangeparty.com/2012/12/21/the-new-my-code-is-compiling-moment-at-ibm-hursley/</link>
		<comments>http://www.strangeparty.com/2012/12/21/the-new-my-code-is-compiling-moment-at-ibm-hursley/#comments</comments>
		<pubDate>Fri, 21 Dec 2012 03:18:18 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/2012/12/21/the-new-my-code-is-compiling-moment-at-ibm-hursley/</guid>
		<description><![CDATA[<p>The new &#34;My code is compiling&#34; moment at IBM hursley <p class='wdgpo_gplus_attachment wdgpo_gplus_photo_attachment'></p> ]]></description>
				<content:encoded><![CDATA[<p>The new &quot;My code is compiling&quot; moment at IBM hursley
<div class="wdgpo_gplus_attachments">
<p class='wdgpo_gplus_attachment wdgpo_gplus_photo_attachment'><a class='wdgpo_gplus_photo_attachment_full_size' href='https://lh6.googleusercontent.com/-Xv19vAyBsPY/UNR9t_zGkcI/AAAAAAAABqc/zJAS5GnyfyA/photo.jpg'><img src='https://lh6.googleusercontent.com/-Xv19vAyBsPY/UNR9t_zGkcI/AAAAAAAABqc/zJAS5GnyfyA/w497-h373/photo.jpg' alt='21/12/2012 - 1' height='373' width='497' /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2012/12/21/the-new-my-code-is-compiling-moment-at-ibm-hursley/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tetris running on a snes emulator at work with a #RaspberryPi. Yay</title>
		<link>http://www.strangeparty.com/2012/12/17/tetris-running-on-a-snes-emulator-at-work-with-a-raspberrypi-yay/</link>
		<comments>http://www.strangeparty.com/2012/12/17/tetris-running-on-a-snes-emulator-at-work-with-a-raspberrypi-yay/#comments</comments>
		<pubDate>Mon, 17 Dec 2012 02:20:46 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/2012/12/17/tetris-running-on-a-snes-emulator-at-work-with-a-raspberrypi-yay/</guid>
		<description><![CDATA[<p>Tetris running on a snes emulator at work with a #RaspberryPi. Yay</p> <p class="wdgpo_gplus_attachment wdgpo_gplus_photo_attachment"></p> ]]></description>
				<content:encoded><![CDATA[<p>Tetris running on a snes emulator at work with a <a class="ot-hashtag" href="https://plus.google.com/s/%23RaspberryPi">#RaspberryPi</a>. Yay</p>
<div class="wdgpo_gplus_attachments">
<p class="wdgpo_gplus_attachment wdgpo_gplus_photo_attachment"><a class="wdgpo_gplus_photo_attachment_full_size" href="https://lh6.googleusercontent.com/-Wnu4m-W_hE8/UM8qOlskH2I/AAAAAAAABl4/gGCfMfVQE2M/s0-d/20121217_125544.jpg"><img alt="20121217_125544.jpg" src="https://lh6.googleusercontent.com/-Wnu4m-W_hE8/UM8qOlskH2I/AAAAAAAABl4/gGCfMfVQE2M/w497-h373/20121217_125544.jpg" width="280" height="373" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2012/12/17/tetris-running-on-a-snes-emulator-at-work-with-a-raspberrypi-yay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offroad night ride with Hursley Cycle club</title>
		<link>http://www.strangeparty.com/2012/03/29/offroad-night-ride-with-hursley-cycle-club/</link>
		<comments>http://www.strangeparty.com/2012/03/29/offroad-night-ride-with-hursley-cycle-club/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 07:30:17 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Cycling]]></category>
		<category><![CDATA[bike]]></category>
		<category><![CDATA[cycling]]></category>
		<category><![CDATA[hursley]]></category>
		<category><![CDATA[night]]></category>
		<category><![CDATA[ride]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=918</guid>
		<description><![CDATA[<p>Last night I joined the Hursley cycle club for their regular Wednesday evening rides. We set off into the low sun towards Ampfield woods and from there I had completely no idea where we were or where we were going.</p> <p>The ride was fantastic. A nicely chosen route gave some good downhill bits, including one <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2012/03/29/offroad-night-ride-with-hursley-cycle-club/">Offroad night ride with Hursley Cycle club</a></span>]]></description>
				<content:encoded><![CDATA[<p>Last night I joined the <a href="http://cycling.ibmhursleyclub.org.uk/">Hursley cycle club</a> for their regular Wednesday evening rides. We set off into the low sun towards Ampfield woods and from there I had completely no idea where we were or where we were going.</p>
<p>The ride was fantastic. A nicely chosen route gave some good downhill bits, including one rather interesting downhill stretch of <a href="http://www3.hants.gov.uk/longdistance/clarendon-way.htm">Clarendon way</a> which really made good use of my suspension (forks only, rear would have been nice) and was rather interesting to go down. I am very glad it was down and not up, as that path would have been very hard work.</p>
<p>You can see the route on the map &#8211; It really was quite an interesting collection of tracks and shortcuts, it must have taken a long time to learn about all these!<br />
<script type="text/javascript"><!--
stl_id = 'w1333005075514';
stl_key = 't549054';
stl_type = 'tm700x500';
stl_height = 500;
stl_width = 700;
stl_domain = 'sportstracklive.com';
//-->
</script></p>
<div id="w1333005075514">
<a href="http://www.sportstracklive.com/track/detail/antonpiatek/Mountain-Biking/549054">sportstracklive.com</a>
</div>
<p><script type="text/javascript"
src="http://sportstracklive.com/script/widget.js">
</script><br />
The club meets most Wednesdays at 7pm and normally rides 10-12 miles until about 9 or 9:30. Last night was a slightly longer route, and was made slower by a puncture taking a few goes to pump the tire up as the pump kept pulling out the valve!</p>
<p>The route had a lot of dirt roads and farmers tracks, but there were some fantastic bits through forests which ranged from wide paths to narrow tracks. As the rides are into the dark lights were essential, and frankly my little <a href="http://road.cc/content/review/9009-smart-lunar-25-front-and-rear-light-set">Smart lunar 25lux light</a> really wasn&#8217;t up to the job. I think I will be looking for some new lights for the next ride.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2012/03/29/offroad-night-ride-with-hursley-cycle-club/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tmux &#8211; an alternative to GNU screen</title>
		<link>http://www.strangeparty.com/2012/02/14/tmux-an-alternative-to-gnu-screen/</link>
		<comments>http://www.strangeparty.com/2012/02/14/tmux-an-alternative-to-gnu-screen/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 14:32:27 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[commandline]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=908</guid>
		<description><![CDATA[<p>tmux is an alternative to gnu screen. While I like screen, it annoys me that any effort you have put into splitting the screen and arranging panes is not preserved when you detach and reattach to a session. tmux allows this quite easily, and there is a shortcut key to toggle through various automatic layouts <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2012/02/14/tmux-an-alternative-to-gnu-screen/">tmux &#8211; an alternative to GNU screen</a></span>]]></description>
				<content:encoded><![CDATA[<p>tmux is an alternative to gnu screen. While I like screen, it annoys me that any effort you have put into splitting the screen and arranging panes is not preserved when you detach and reattach to a session. tmux allows this quite easily, and there is a shortcut key to toggle through various automatic layouts which makes it quite powerful to work with. One thing I have been trying to get going for a while is a script which starts a tmux session with multiple split panes, each with an application running in them so that I can start up several things at once and have them all available to watch on the same screen.<span id="more-908"></span></p>
<p>The one annoyance I have with tmux is that it appears there is no way to take a window and pull it into a pane. This can be rather annoying, so I tend to try and only use new panes in my session rather than multiple windows (only one window can be viewed at a time, though each window can have multiple panes)</p>
<p>I had problems setting the tmux option to stop windows and panes closing after the program exits (If my program exits, I want to see the error it wrote, and probably restart it). So instead I wrote a script to split the window into panes as desired and then send the commands to each pane to start the program I wanted running in it.</p>
<p>The following is my script for starting tmux, hopefully it is useful to others. It either connects to the existing session or creates a new session, starting several applications. It splits the window into four panes, each of the same size and arranged in each corner, but you can use the shortcut &#8220;^b &#8221; to cycle through the predefined layouts to get, for example, 4 vertical columns of panes.</p>
<blockquote><p><code lang="bash">#!/bin/bash<br />
SESSION=house</code></p>
<p>#Connect to existing session if it exists<br />
if [[ $(tmux attach -t $SESSION) ]]<br />
then<br />
exit;<br />
fi</p>
<p>#Otherwise start new session<br />
tmux new-session -d -s $SESSION</p>
<p>#First command<br />
tmux send-keys &#8216;~/bin/read_power.sh&#8217; C-m \;</p>
<p>#Horizontal split and second command<br />
tmux split-window -h -t $SESSION<br />
tmux send-keys &#8216;~/arduino/FC/FC.py&#8217; C-m \;</p>
<p>#vertical split and third command (in bottom right pane)<br />
tmux split-window -t $SESSION<br />
tmux send-keys &#8216;~/bin/lcd-controller.py&#8217; C-m \;</p>
<p>#Select left pane, split vertical and fourth command in bottom left<br />
tmux select-pane -L<br />
tmux split-window -t $SESSION<br />
tmux send-keys &#8216;net-mqtt-sub \#&#8217; C-m \;</p>
<p>#Attach to new session<br />
tmux attach -t $SESSION</p></blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2012/02/14/tmux-an-alternative-to-gnu-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIT running free electronics circuits course</title>
		<link>http://www.strangeparty.com/2012/02/14/mit-running-free-electronics-circuits-course/</link>
		<comments>http://www.strangeparty.com/2012/02/14/mit-running-free-electronics-circuits-course/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 13:10:40 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[circuits]]></category>
		<category><![CDATA[electronics]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=906</guid>
		<description><![CDATA[<p>Thanks to Paul Stimpson on the Surrey LUG mailing list for pointing the course out:</p> <p>MIT are launching the first course in their new e-learning programme designed to bring education free to the masses. It&#8217;s a course in electronic circuits and design and begins on March 5th. This is a trial and at this stage <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2012/02/14/mit-running-free-electronics-circuits-course/">MIT running free electronics circuits course</a></span>]]></description>
				<content:encoded><![CDATA[<p>Thanks to Paul Stimpson on the Surrey LUG mailing list for pointing the course out:</p>
<blockquote><p>MIT are launching the first course in their new e-learning programme designed to bring education free to the masses. It&#8217;s a course in electronic circuits and design and begins on March 5th. This is a trial and at this stage does not require any attendance or for proof of identity to be shown. It is examined online and results in an MIT-branded certificate for successful students. The only obligations are to complete the course and exams in the time frame specified and to agree to the University honour code (not to cheat).</p>
<p>The course runs for 13 weeks (March 5th until June 8th) and requires a time investment of approximately 10 hours per week.</p>
<p>You can register at https://6002x.mitx.mit.edu/</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2012/02/14/mit-running-free-electronics-circuits-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Message Broker v8: Record, Replay and REST</title>
		<link>http://www.strangeparty.com/2012/01/06/message-broker-v8-record-replay-and-rest/</link>
		<comments>http://www.strangeparty.com/2012/01/06/message-broker-v8-record-replay-and-rest/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 09:06:59 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[IBM]]></category>
		<category><![CDATA[Message Broker]]></category>
		<category><![CDATA[My Job]]></category>
		<category><![CDATA[messagebroker]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=880</guid>
		<description><![CDATA[<p>IBM WebSphere Message Broker v8 was released in December last year &#8211; There is an announcement and comparison of versions on the IBM website.</p> <p>IBM WebSphere Message Broker introduced Record and Replay as part of its version 8 release. I thought I would just write a brief quickstart guide to getting running with record and replay, and <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2012/01/06/message-broker-v8-record-replay-and-rest/">Message Broker v8: Record, Replay and REST</a></span>]]></description>
				<content:encoded><![CDATA[<p>IBM WebSphere Message Broker v8 was released in December last year &#8211; There is an <a href="http://www-01.ibm.com/common/ssi/ShowDoc.jsp?docURL=/common/ssi/rep_ca/1/897/ENUS211-391/index.html&amp;lang=en">announcement</a> and <a href="http://www-01.ibm.com/software/integration/messagebrokerproductline/versions/index.html">comparison of versions</a> on the IBM website.</p>
<p>IBM WebSphere Message Broker introduced Record and Replay as part of its version 8 release. I thought I would just write a brief quickstart guide to getting running with record and replay, and in particular with working with the new REST interface which comes with it. There is actually a <a href="ftp://public.dhe.ibm.com/software/integration/wbibrokers/docs/V8.0/Record_and_replay.pdf">Record and Replay specific PDF</a> available too, which contains all the details you might want for using Record and Replay (far more detail than I cover here). The main reason I am writing this, is it can be a little daunting trying to get Record and Replay going, as it does have a fair bit of configuration, and involves a few areas of a quite large product.</p>
<p><span id="more-880"></span></p>
<h3>Setting up Recording</h3>
<p>From your WMB install dir, run the db2 schema file to create the sample database for Record and Replay. Edit the file if you want to use a database name other than MB8RECORD, a specific schema or increase the storage size per message above 5mb.</p>
<blockquote>
<pre>db2 -tvf ddl/db2/DataCaptureSchema.sql</pre>
</blockquote>
<p>Set the password for your database</p>
<blockquote>
<pre>mqsisetdbparms MB8BROKER -n MBRECORD -u username -p password</pre>
</blockquote>
<p>Set the DataCaptureStore configurable service to set where to record to and which EG to do the recording (You can also do any of these configurable service steps via the Message Broker Explorer gui)</p>
<blockquote>
<pre>mqsicreateconfigurableservice MB8BROKER -c DataCaptureStore -o MyCaptureStore \
   -n "dataSourceName,egForRecord" -v "MBRECORD,default"</pre>
</blockquote>
<p>Define where to record messages from. Use a wildcard to set all configurable services. Note that double quotes (&#8220;&#8221;) are required on unix, windows will want single quotes (&#8221;)</p>
<blockquote>
<pre>mqsicreateconfigurableservice MB8BROKER -c DataCaptureSource -o MyCaptureSource \
   -n "dataCaptureStore,topic" -v "MyCaptureStore,$SYS/Broker/MB8BROKER/Monitoring/#"</pre>
</blockquote>
<p>Alternatively you can list the flows explicitly with topics like &#8220;<em>$SYS/Broker/MB8BROKER/Monitoring/ExecutionGroupName/FlowName</em>&#8221; While we are configuring everything, set a replay destination too. Set EG default to replay to queue &#8220;REPLAY&#8221; on queue manager MB8QMGR</p>
<blockquote>
<pre>mqsicreateconfigurableservice MB8BROKER -c DataDestination -o MyDestination \
   -n "egForReplay,endpoint,endpointType" -v "default,wmq:/msg/queue/REPLAY@MB8QMGR,WMQDestination"</pre>
</blockquote>
<h3>Setting up Monitoring</h3>
<p>Now your broker is configured for recording, you will need to setup something to be recorded. Event Monitoring is used to emit data to record, so either follow the monitoring sample, read the docs on <a href="http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/topic/com.ibm.etools.mft.doc/ac60386_.htm">Event Monitoring</a> or edit the sample monitoring profile in <em>sample/RecordReplay/basicMonitoringProfile.xml </em>to replace NODENAME with the name of your flow&#8217;s input node. Of course you can also configure event monitoring from within the flow editor in the toolkit &#8211; simply select a node and you will find monitoring in the properties view. If you have the flow source already, it is much easier to set the monitoring in the toolkit than it is to do it via the command line. You can also then use the <em>mqsireportflowmonitoring</em> command afterwards to give you the xml monitoring profile being used (which is basically what you are setting in the toolkit when setting the monitoring options on a flow)</p>
<p>There are two specific properties which are worth mentioning when it comes to monitoring for Record and Replay.<br />
If you tick the include bitstream option in the toolkit then the body of your message will be recorded. Choose a sensible encoding, as if you select CDATA and your body will not be a valid XML element, you will break the monitoring and no event will be emitted. If in doubt, use the hexbinary or base64 encoding. It is worth saying that if you record MQ headers, and replay that message, the headers will be attempted to be reused. Other transport headers will just end up in the body of your message.<br />
The other option I wanted to mention was the UserData area of Event Monitoring. If you include $ExceptionList in your monitoring settings, then if an error occurs and an event is emitted, the exception list will be included in the monitoring message. This will be recorded, and will be available from the Record and Replay web interface and REST Api.</p>
<p>If you used a monitoring profile you will need to configure the profile with the following commands:</p>
<blockquote>
<pre>mqsicreateconfigurableservice MB8BROKER -c MonitoringProfiles -o MyProfile</pre>
<pre>mqsichangeconfigurableservice MB8BROKER -c MonitoringProfiles -o MyProfile \
   -n profileProperties -p "sample/RecordReplay/basicMonitoringProfile.xml"</pre>
<pre>mqsichangeflowmonitoring MB8BROKER -e default -f MyFlow -m  MyProfile</pre>
</blockquote>
<p>Monitoring normally defaults to off, so you will probably need to turn it on with:</p>
<blockquote>
<pre>mqsichangeflowmonitoring MB8BROKER -e default -f MyFlow -c active</pre>
</blockquote>
<p>You can check that monitoring is correctly active with the command</p>
<blockquote>
<pre>mqsireportflowmonitoring MB8BROKER -n -e default -f MyFlow</pre>
</blockquote>
<p>You should see output like</p>
<blockquote>
<pre>BIP8911I: Monitoring settings for flow 'MyFlow' in execution group 'default' -  State?: active, ProfileName: 'MyProfile'.
BIP8912I: Event: 'IN.transaction.End',  Event name: 'IN.transaction.End',  Configured?: yes,  State?: enabled.
BIP8912I: Event: 'IN.transaction.Rollback',  Event name: 'IN.transaction.Rollback',  Configured?: yes,  State?: enabled.</pre>
</blockquote>
<p>You can now put messages through your flow and they will be recorded.</p>
<h3>Enabling the REST interface and Web UI</h3>
<p>To enable the REST interface and Web UI you need to enable the HTTP server and set the port for it to run on. You will also need to set which ExecutionGroup will process requests to view recorded messages. (You can also do this via the MBX properties, see the properties for your broker, and for your DataCaptureStore ConfigurableService)</p>
<blockquote>
<pre>mqsichangeproperties MB8BROKER -b webadmin -o server -n enabled -v true
mqsichangeproperties MB8BROKER -b webadmin -o HTTPConnector -n port -v 8080
mqsichangeproperties MB8BROKER -o DataCaptureStore -c MyCaptureStore -n egForView -v default</pre>
</blockquote>
<p>You can also configure HTTPS if you prefer, details are in the product documentation.</p>
<h3>Viewing recorded data</h3>
<p>You can of course view all the data via a web browser by pointing to the url <em>http://localhost:8080</em> but you can also do it all via the command line. The following will get back the most recent 30 recorded pieces of data from your captureStore MyCaptureStore.</p>
<blockquote>
<pre>$curl "http://localhost:8080/datacapturestore/MyCaptureStore/"</pre>
</blockquote>
<p>This returns quite a large XML list of messages, so let&#8217;s try getting just one message.</p>
<blockquote>
<pre>$curl "http://localhost:8080/datacapturestore/DefaultCaptureStore/?numberOfEntriesPerPage=1"
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;DataCaptureStore TotalResults="92" NumberOfEntriesPerPage="1" PageNumber="1"&gt;
&lt;DataCaptureEntry wmb_msgkey="414d51204d4238514d475220202020203d1bc14e4d290020:414d51204d4238514d475220202020203d1bc14e1b3a0020"
  has_bitstream="Y" has_exception="N" has_userdata="N" event_type="IN.transaction.End"
  event_name="IN.transaction.End" event_srcaddr="IN.transaction.End" broker_name="MB8BROKER"
  broker_uuid="d405fc08-0ec6-11e1-9d9b-7f0000010000" exgrp_name="default" exgrp_uuid="7fd654a2-3301-0000-0080-d4d9103989f9"
  msgflow_name="MyFlow" msgflow_uuid="0a4555a2-3301-0000-0080-e2ed33c9dfcd" appl_name="" appl_uuid="" library_name=""
  library_uuid="" node_name="IN" node_type="ComIbmMQInputNode" detail="IN" terminal_name="" key_fld_1_nm=""
  key_fld_2_nm="" key_fld_3_nm="" key_fld_4_nm="" key_fld_5_nm="" event_timestamp="2011-11-16 11:25:00.647"
  local_transaction_id="9f228bde-1045-11e1-9fac-7f0000010000-1" parent_transaction_id="" global_transaction_id=""/&gt;
&lt;/DataCaptureStore&gt;</pre>
</blockquote>
<p>You can of course filter on any of the data fields above as follows.</p>
<blockquote>
<pre>$curl "http://localhost:8080/datacapturestore/DefaultCaptureStore/?numberOfEntriesPerPage=1&amp;has_bitstream=Y"</pre>
</blockquote>
<p>Filtering is possible on all the above columns, with the addition that you can also set a timestamp range with The REST Api has documentation at <em>docs/REST/index.html </em>which covers all these options.</p>
<p>You can also query which DataCaptureStores are setup for viewing by loading the base url &#8220;http://localhost:8080/datacapturestore/&#8221;</p>
<p>You may then want to download the body of a recorded message. (My example has a shortened url as the message key rather long. Use the wmb_msgkey from your above list requests) Depending on how you set the data to be recorded in your monitoring profile, you will get back a different encoding data</p>
<blockquote>
<pre>$curl "http://localhost:8080/datacapturestore/DefaultCaptureStore/12345"
&lt;Data encoding="base64Binary"&gt;SGVsbG8gV29ybGQK&lt;/Data&gt;</pre>
</blockquote>
<p>You don&#8217;t have to get the data back as encoded payloads wrapped in XML. If you set download=true then you will just get the decoded bitstream</p>
<blockquote>
<pre>$curl "http://localhost:8080/datacapturestore/DefaultCaptureStore/12345?download=true"
HelloWorld</pre>
</blockquote>
<p>You can also download an ExceptionList if your message has one recorded; set payload=exceptionlist to get the exceptionlist instead of the bitstream. This can also be combined with download=true</p>
<blockquote>
<pre>$curl "http://localhost:8080/datacapturestore/DefaultCaptureStore/12345?payload=exceptionlist&amp;download=true"</pre>
</blockquote>
<h3>Replaying recorded data</h3>
<p>As we already defined a DataDestination called <em>MyDestination</em> above, we have somewhere we can replay to. Again, you can do this via the web browser quite easily, but doing it with curl isn&#8217;t hard either.</p>
<blockquote>
<pre>$curl "http://localhost:8080/datacapturestore/DefaultCaptureStore/12345" -d "replaydestination=MyDestination"</pre>
</blockquote>
<h3>Viewing more about your broker</h3>
<p>There are lots of other details about your broker and what is deployed on it available via &#8220;http://localhost:8080/admin&#8221;. See the REST Api documentation for full details</p>
<blockquote>
<pre>$curl "http://localhost:7101/admin"
&lt;?xml version="1.0"?&gt;
&lt;brokerResponse brokerName="MB8BROKER" completionCode="ok"&gt;
&lt;executiongroup name="default" runstate="running" path="/admin/executiongroup/default"&gt;&lt;/executiongroup&gt;
&lt;executiongroup name="test" runstate="running" path="/admin/executiongroup/test"&gt;&lt;/executiongroup&gt;
&lt;log name="Log" runstate="" path="/admin/log/Log"&gt;&lt;/log&gt;
&lt;adminqueue name="Administration Queue" runstate="" path="/admin/adminqueue/Administration Queue"&gt;&lt;/adminqueue&gt;
&lt;/brokerResponse&gt;</pre>
<pre>$curl "http://localhost:7101/admin/executiongroup/test/"
&lt;?xml version="1.0"?&gt;
&lt;brokerResponse brokerName="MB8BROKER" completionCode="ok"&gt;
&lt;application name="TestXpath" runstate="running" path="/admin/executiongroup/test/application/TestXpath"&gt;&lt;/application&gt;
&lt;/brokerResponse&gt;</pre>
<pre>$curl "http://localhost:7101/admin/executiongroup/test/properties"
&lt;?xml version="1.0"?&gt;
&lt;brokerResponse brokerName="MB8BROKER" completionCode="ok"&gt;
&lt;Name&gt;test&lt;/Name&gt;&lt;ShortDescription&gt;&lt;/ShortDescription&gt;&lt;LongDescription&gt;&lt;/LongDescription&gt;
&lt;Type&gt;ExecutionGroup&lt;/Type&gt;&lt;UUID&gt;3adf66ca-3301-0000-0080-814338bb17bb&lt;/UUID&gt;&lt;FlowDebugPort&gt;0&lt;/FlowDebugPort&gt;
&lt;TraceNodes&gt;on&lt;/TraceNodes&gt;&lt;Running&gt;true&lt;/Running&gt;
&lt;/brokerResponse&gt;</pre>
</blockquote>
<p>&#8220;http://localhost:7101/admin/executiongroup/test/extendedproperties&#8221; will return a very large amount of information.</p>
<p>Several /admin paths also support recurse=true, for example to see everything deployed on your broker use &#8221;http://localhost:8080/admin?recurse=true&#8221;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>This was only a brief introduction to Record and Replay in WMB 8, and there is much more detail in the normal documentation. Hopefully a future update to WMB will bring more power and functionality to this area, as well as some more database support. Obviously I can&#8217;t say what will be added, let alone when, but I hope you get some value out of what is there currently.</p>
<p><em>edit 16/01/12 &#8211; corrections as supplied by Sebastian</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2012/01/06/message-broker-v8-record-replay-and-rest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Message Broker v8 with MySQL</title>
		<link>http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/</link>
		<comments>http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 09:22:30 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Message Broker]]></category>
		<category><![CDATA[My Job]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[messagebroker]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[wmb]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=884</guid>
		<description><![CDATA[<p>Now that you know that you can use Message Broker v8 on Ubuntu for development, you may be wondering if you can use some of the databases that are more common on Linux, such as MySQL. You can!</p> <p>IBM WebSphere Message Broker now uses UnixODBC to connect to many databases. Though not supported by IBM, <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/">Message Broker v8 with MySQL</a></span>]]></description>
				<content:encoded><![CDATA[<p>Now that you know that you can use <a href="http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/">Message Broker v8 on Ubuntu</a> for development, you may be wondering if you can use some of the databases that are more common on Linux, such as MySQL. You can!</p>
<p>IBM WebSphere Message Broker now uses UnixODBC to connect to many databases. Though not supported by IBM, you can actually connect to MySQL from Message Broker using UnixODBC.</p>
<p><span id="more-884"></span></p>
<p>If you are on Ubuntu, you can install the MySQL UnixODBC dirver and the MySQL server with apt-get:</p>
<blockquote>
<pre>apt-get install libmyodbc mysql-server</pre>
</blockquote>
<p>Your environment variable <em>$ODBCINI</em> should point to your <em>odbc.ini</em>, mine points to /var/mqsi/odbc/odbc.ini and the base file was copied from <em>/opt/IBM/mqsi/8.0.0.0/ODBC/unixodbc/odbc.ini</em></p>
<p>You need to set a database definition for a mysql database, something like the following (assuming &#8220;wmb&#8221; is the name of your MySQL database created later)</p>
<blockquote>
<pre>[MYSQL]
Description     = MYSQL DB
Driver          = MySQL
Database        = wmb
Server          = 127.0.0.1
Port            = 3306</pre>
</blockquote>
<p>You also need to make sure your <em>$ODBCSYSINI</em> points to the folder (not the file) where your <em>odbcinst.ini</em> file has been copied to. Mine is set to <em>/var/mqsi/odbc</em> and the <em>odbcinst.ini</em> file was copied from <em>/opt/mqsi/8.0.0.0/ODBC/unixodbc/odbcinst.ini</em>, you also need to add a definition to explain to UnixODBC how to connect to a mysql database</p>
<p>The following should be enough to get UnixODBC working with MySQL</p>
<blockquote>
<pre>#Sample from package libmyodbc
[MySQL]
Description     = MySQL driver
Driver          = /usr/lib/odbc/libmyodbc.so
Setup           = /usr/lib/odbc/libodbcmyS.so
CPTimeout       =
CPReuse         =</pre>
</blockquote>
<p>Now create a mysql database (<em>mysqladmin create wmb</em>). You may need to GRANT some permissions to your user in MySQL, or add yourself to the mysql group and logout and back in again.</p>
<p>You can now check the database connection using the WMB mqsicvp command, which will also describe which database functions are available:</p>
<pre>mqsicvp -n MYSQL -u anton -p password</pre>
<pre>BIP8270I: Connected to Datasource 'MYSQL' as user 'anton'. The datasource platform is 'MySQL', version '5.1.58-1ubuntu1'.
===========================
databaseProviderVersion      = 5.1.58-1ubuntu1
driverVersion                = 05.01.0006
driverOdbcVersion            = 03.51
driverManagerVersion         = 03.52.0002.0002
driverManagerOdbcVersion     = 03.52
databaseProviderName         = MySQL
datasourceServerName         = 127.0.0.1 via TCP/IP
databaseName                 = wmb
odbcDatasourceName           = MYSQL
driverName                   = libmyodbc5.so
supportsStoredProcedures     = Yes
procedureTerm                = stored procedure
accessibleTables             = No
accessibleProcedures         = No
identifierQuote              = `
specialCharacters            = None
describeParameter            = No
schemaTerm                   =
tableTerm                    = table
sqlSubqueries                = 31
activeEnvironments           = 0
maxDriverConnections         = 0
maxCatalogNameLength         = 192
maxColumnNameLength          = 192
maxSchemaNameLength          = 0
maxStatementLength           = 8192
maxTableNameLength           = 192
supportsDecimalType          = Yes
supportsDateType             = Yes
supportsTimeType             = No
supportsTimeStampType        = No
supportsIntervalType         = No
supportsAbsFunction          = Yes
supportsAcosFunction         = Yes
supportsAsinFunction         = Yes
supportsAtanFunction         = Yes
supportsAtan2Function        = Yes
supportsCeilingFunction      = Yes
supportsCosFunction          = Yes
supportsCotFunction          = Yes
supportsDegreesFunction      = Yes
supportsExpFunction          = Yes
supportsFloorFunction        = Yes
supportsLogFunction          = Yes
supportsLog10Function        = Yes
supportsModFunction          = Yes
supportsPiFunction           = Yes
supportsPowerFunction        = Yes
supportsRadiansFunction      = Yes
supportsRandFunction         = Yes
supportsRoundFunction        = Yes
supportsSignFunction         = Yes
supportsSinFunction          = Yes
supportsSqrtFunction         = Yes
supportsTanFunction          = Yes
supportsTruncateFunction     = Yes
supportsConcatFunction       = Yes
supportsInsertFunction       = Yes
supportsLcaseFunction        = Yes
supportsLeftFunction         = Yes
supportsLengthFunction       = Yes
supportsLTrimFunction        = Yes
supportsPositionFunction     = Yes
supportsRepeatFunction       = Yes
supportsReplaceFunction      = Yes
supportsRightFunction        = Yes
supportsRTrimFunction        = Yes
supportsSpaceFunction        = Yes
supportsSubstringFunction    = Yes
supportsUcaseFunction        = Yes
supportsExtractFunction      = Yes
supportsCaseExpression       = Yes
supportsCastFunction         = Yes
supportsCoalesceFunction     = Yes
supportsNullIfFunction       = Yes
supportsConvertFunction      = No
supportsSumFunction          = Yes
supportsMaxFunction          = Yes
supportsMinFunction          = Yes
supportsCountFunction        = Yes
supportsBetweenPredicate     = Yes
supportsExistsPredicate      = Yes
supportsInPredicate          = Yes
supportsLikePredicate        = Yes
supportsNullPredicate        = Yes
supportsNotNullPredicate     = Yes
supportsLikeEscapeClause     = Yes
supportsClobType             = Yes
supportsBlobType             = Yes
charDatatypeName             = char
varCharDatatypeName          = varchar
longVarCharDatatypeName      = long varchar
clobDatatypeName             = N/A
timeStampDatatypeName        = N/A
binaryDatatypeName           = binary
varBinaryDatatypeName        = varbinary
longVarBinaryDatatypeName    = long varbinary
blobDatatypeName             = N/A
intDatatypeName              = integer
doubleDatatypeName           = double
varCharMaxLength             = 0
longVarCharMaxLength         = 0
clobMaxLength                = 0
varBinaryMaxLength           = 0
longVarBinaryMaxLength       = 0
blobMaxLength                = 0
timeStampMaxLength           = 0
identifierCase               = Mixed
escapeCharacter              = \
longVarCharDatatype          = -1
clobDatatype                 = 0
longVarBinaryDatatype        = -4
blobDatatype                 = 0

BIP8273I: The following datatypes and functions are not natively 
supported by datasource 'MYSQL' using this ODBC driver:
Unsupported datatypes: 'TIME, TIMESTAMP, INTERVAL' Unsupported functions: 'CONVERT'</pre>
<pre>Examine the specific datatypes and functions not supported
natively by this datasource using this ODBC driver.
When using these datatypes and functions within ESQL, the
associated data processing is done within WebSphere Message
Broker rather than being processed by the database provider.  

Note that "functions" within this message can refer to functions or predicates. 

BIP8071I: Successful command completion.</pre>
<p>There &#8211; done! Now you can use MySQL with WebSphere Message Broker on Ubuntu. Don&#8217;t forget to set the database password with <em>mqsisetdbparms</em> before trying to actually connect from your database nodes.</p>
<p>Also, the name of the database according to WMB is &#8220;MYSQL&#8221; as that is what I defined in the odbc.ini. The name of the database according to mysql is &#8220;wmb&#8221;. They don&#8217;t need to be different, but it might help having unique names if you are trying to track down a database connection issue.</p>
<p>Of course, the mysql database server does not need to be local to the broker &#8211; The mysql odbc driver should allow you connect to any accessible tcpip mysql server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/12/15/message-broker-v8-with-mysql/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WebSphere Message Broker on Ubuntu</title>
		<link>http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/</link>
		<comments>http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 09:22:13 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Message Broker]]></category>
		<category><![CDATA[My Job]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[messagebroker]]></category>
		<category><![CDATA[mq]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wmb]]></category>
		<category><![CDATA[wmq]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=714</guid>
		<description><![CDATA[<p>WebSphere Message Broker v8 now supports Ubuntu for development systems (i.e. not production use) - http://www-01.ibm.com/support/docview.wss?uid=swg27023600#Ubuntu</p> <p>I have been running MQ and Message Broker on Ubuntu and Debian since shortly after I joined IBM in 2005, and it seems there are lots of other people doing this too despite it not being a supported platform before <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/">WebSphere Message Broker on Ubuntu</a></span>]]></description>
				<content:encoded><![CDATA[<p>WebSphere Message Broker v8 now supports Ubuntu for development systems (i.e. not production use) - <a href="http://www-01.ibm.com/support/docview.wss?uid=swg27023600#Ubuntu">http://www-01.ibm.com/support/docview.wss?uid=swg27023600#Ubuntu</a></p>
<p>I have been running MQ and Message Broker on Ubuntu and Debian since shortly after I joined IBM in 2005, and it seems there are <a href="http://www.google.co.uk/search?q=mq+on+ubuntu">lots of other people doing this too</a> despite it not being a supported platform before now.</p>
<p>Lots of people have advice on how to install MQ and WMB, and it is worth mentioning them in case you have problems.</p>
<p><a href="http://www.reidmorrison.com/linux/install-websphere-mq-on-ubuntu">http://www.reidmorrison.com/linux/install-websphere-mq-on-ubuntu</a></p>
<p><a href="http://www.gefira.pl/blog/2010/07/03/websphere-mq-and-ubuntu-howto/">http://www.gefira.pl/blog/2010/07/03/websphere-mq-and-ubuntu-howto/</a></p>
<p><a href="http://blog.herbert.groot.jebbink.nl/2009/06/wmb-61-ubuntu-904.html">http://blog.herbert.groot.jebbink.nl/2009/06/wmb-61-ubuntu-904.html</a></p>
<p>The best advice I can give for installing MQ and WMB on Ubuntu is:</p>
<ul></ul>
<ul>
<li>change the /bin/sh symlink to point to /bin/bash &#8211; MQ Doesn&#8217;t like installing with dash as the default shell.</li>
<p>
</ul>
<ul>
<li>use rpm to install MQ &#8211; Alien is a bit of a hack, and does not work well. You will need to use the &#8220;&#8211;force-debian&#8221; flag on rpm to make it install.</li>
<p>
</ul>
<ul>
<li>One other thing which might help is to run the mqlicense.sh script with the &#8216;-console&#8217; flag as it may not find your X applications properly.</li>
<p>
</ul>
<p>Some user&#8217;s have noticed that chown on Debian and Ubuntu strips the setuid bit from the binaries (Debian and Ubuntu consider leaving setuid set on an executable when you change it&#8217;s owner a security flaw, whereas Redhat and SuSE appear not to) so you may need to fix the permissions (best to check the permissions of the same level of MQ from a RHEL or SLES box and set them the same) though I have not seen this with recent versions of MQ.</p>
<p>Message Broker v8 installs quite happily on Ubuntu. The only issues that I know of are that some of the eclipse based gui applications do not draw everything correctly. This is a known eclipse-GTK bug, and is more common on releases after Lucid Lynx (10.04). A workaround is to set the environment variable  <em>GDK_NATIVE_WINDOWS=1</em></p>
<p>Update 05/01/12 &#8211; I have just noticed that the script &#8216;mqsicreateworkpath&#8217; which is used to initialise /var/mqsi correctly still uses ksh. Either install ksh on your system or edit the script to say bash in the first line instead of ksh (it should work fine then)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/12/14/websphere-message-broker-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Frequently Asked Questions about the GNU GPL</title>
		<link>http://www.strangeparty.com/2011/12/08/frequently-asked-questions-about-the-gnu-gpl/</link>
		<comments>http://www.strangeparty.com/2011/12/08/frequently-asked-questions-about-the-gnu-gpl/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 11:18:45 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[IBM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rights]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[patents]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=250</guid>
		<description><![CDATA[<p>I have been flicking through the following FAQ on the GNU GPL: Frequently Asked Questions about the GNU GPL &#8211; GNU Project &#8211; Free Software Foundation (FSF). I am trying to understand the risks that we are told about regularly in IBM of working with/on Open Source code.</p> <p>I have to say that most of <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/12/08/frequently-asked-questions-about-the-gnu-gpl/">Frequently Asked Questions about the GNU GPL</a></span>]]></description>
				<content:encoded><![CDATA[<p>I have been flicking through the following FAQ on the GNU GPL: <a href="http://www.gnu.org/copyleft/gpl-faq.html">Frequently Asked Questions about the GNU GPL &#8211; GNU Project &#8211; Free Software Foundation (FSF)</a>. I am trying to understand the risks that we are told about regularly in IBM of working with/on Open Source code.</p>
<p>I have to say that most of the risks are rather undefined, and no real examples are given. I am having trouble figuring out why IBM is so scared of its employees working with Open Source, and yet at the same time encouraging it (I run Debian on my laptop, and in fact run a Debian server distributing internal tools packaged specially for other Debian users).</p>
<p>The one big concern is of course patents. Personal views on software patents aside, if I were to code a patented idea into some GPL&#8217;d code and release it (as an IBM employee) then quite likely that patent will be considered GPL&#8217;d and could be used by others &#8211; the extent of patents in GPL&#8217;d code is untested in court, hence the reason for v3 of the GPL, which will probably explicitly state that any patents are given away under the terms of the GPL if in GPL&#8217;d code.</p>
<p>However, even if not modifying the code there is still a huge concern about working with it. Even releasing code that is dynamically linked against a LGPL&#8217;d library is incredibly hard to get approved. Why should it be? The FAQ above makes clear that if the library is LGPL&#8217;d, then dynamic linking (i.e. using a JAR file in Java) means that the library source must be available and some reverse engineering of the interaction between the two is allowed (in case someone wanted to rewrite the library). Your code does not have to be Open Sourced. Is it simply that shipping the source code is too much effort? Surely if I use a prebuilt JAR, and dump a zip of the corresponding source of a LGPL&#8217;d library in the zip I am shipping then that is it. I am complying with the terms of the GPL.</p>
<p>The only thing I can think of is the other side of Patents &#8211; somebody else has a patent on something in the GPL code, but the authors of the GPL code were not aware of this. If IBM were to ship GPL&#8217;d code that a competitor had a Patent on part of then indeed they would be liable for infringement, not just the author of the code. Is this risk likely? Well, SuSE have just signed a deal with Microsoft for this reason, but RedHat and Ubuntu have declined the deal. Maybe with the GPLv3 this will be less of a problem, as if another company releases GPL code then they will be explicitely releasing any patents on it too.</p>
<p>What if the patent holder is another third party. IBM could still be in trouble if a competitor finds they have a patent on some GPL&#8217;d code we are shipping. They won&#8217;t bother suing small linux vendors, but IBM has lots of money to claim from, that would be worth going to court for. Could they claim only for IBM and not all the little guys who have already been using it?</p>
<p>Is it too much risk to work on the fact that we could always change the code to avoid the patent at a later date?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/12/08/frequently-asked-questions-about-the-gnu-gpl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kindle-ing a desire to read</title>
		<link>http://www.strangeparty.com/2011/12/07/kindle-ing-a-desire-to-read/</link>
		<comments>http://www.strangeparty.com/2011/12/07/kindle-ing-a-desire-to-read/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 14:12:56 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Reading]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ebooks]]></category>
		<category><![CDATA[fiction]]></category>
		<category><![CDATA[kindle]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=818</guid>
		<description><![CDATA[<p>This post was originally drafted in May when I actually bought my kindle &#8211; I finally got round to actually publishing it&#8230;</p> <p>Earlier this year I finally gave in. I felt a moment of regret about buying into an enormous DRM machine as I clicked purchase on my new Amazon Kindle 3G. I felt a <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/12/07/kindle-ing-a-desire-to-read/">Kindle-ing a desire to read</a></span>]]></description>
				<content:encoded><![CDATA[<p><em>This post was originally drafted in May when I actually bought my kindle &#8211; I finally got round to actually publishing it&#8230;</em></p>
<p><em></em>Earlier this year I finally gave in. I felt a moment of regret about buying into an enormous DRM machine as I clicked purchase on my new Amazon Kindle 3G. I felt a little dirty because of the DRM. Still, I wasn&#8217;t buying Sony so I can live with it.</p>
<p>Then theft next day it arrived. So simply packaged, entirely in recycled cardboard, that I forgot about that dirty DRM feeling and tore open the packaging. I pulled out my new kindle and just sat there admiring the instructions showing on the screen. A screen which could show that image for months without charging. It was beautiful.</p>
<p>DRM aside the kindle is an incredible thing.</p>
<p>There are a few hiddenkindle gems including shortcut keys, minesweeper and how to change the screensaver pictures at the following site: <a href="http://blog.diannegorman.net/2010/09/kindle-3-keyboard-shortcuts-et-al/">From down the hill : Kindle 3 Keyboard Shortcuts et al</a>.</p>
<p>Since then I have been averaging just over a book a month. Some were free, some were £0.71, most are around the £5/£6 mark and one was nearly £10. DRM aside, I have been reading way more than I normally do, as getting to the end of a book is not such an obstacle. The hardest part is choosing what to read next, but while in the middle of a series it is only a 15 second delay to get on to the next book.</p>
<p>I am looking forward to UK lending and eLibraries which support Kindle. Though even without that, I am still reading more than I ever used to and am really loving the fact that I have so much available to read with so little effort. In some ways it is slightly worrying how easy it is to purchase a new book, but at least they are generally cheap.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/12/07/kindle-ing-a-desire-to-read/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upgrading cyanogenmod</title>
		<link>http://www.strangeparty.com/2011/12/05/upgrading-cyanogenmod/</link>
		<comments>http://www.strangeparty.com/2011/12/05/upgrading-cyanogenmod/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 13:48:00 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cyangenmod]]></category>
		<category><![CDATA[roms]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=887</guid>
		<description><![CDATA[<p>I previously wrote about rooting a HTC Desire and installing CyanogenMod 7. A month or so ago, a new CyanogenMod rom was released, and I finally found the time to upgrade it.</p> <p>Of course I first did a full backup, as described in my previous post, using the recover mod.</p> <p>I first tried updating the <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/12/05/upgrading-cyanogenmod/">Upgrading cyanogenmod</a></span>]]></description>
				<content:encoded><![CDATA[<p>I previously wrote about<a href="http://www.strangeparty.com/2011/06/23/cyanogenmod-on-htc/"> rooting a HTC Desire and installing CyanogenMod 7</a>. A month or so ago, a new <a href="http://www.cyanogenmod.com/">CyanogenMod</a> rom was released, and I finally found the time to upgrade it.</p>
<p>Of course I first did a full backup, as described in my previous post, using the recover mod.</p>
<p>I first tried updating the rom via <a href="https://market.android.com/details?id=com.koushikdutta.rommanager&amp;hl=en">RomManager</a>, which is apparently the preferred way to upgrade CyangonMod roms. Updating the Clockwork Recovery Mod went fine, and the app allows very easy downloading of alternate roms, however actually intalling did not go so well. It failed due to some error in the upgrade script. I decided to simply report the error and move on to a manual upgrade.</p>
<p>Manually updating was pretty much the same as installing the roms in my previous post. Using the reovery mod I installed the new Rom from the zip which was downloaded via RomManager, followed by the Google Aps zip. Then I cleared the Dalvik cache, as I wasnt sure if it would interfere (it doesn&#8217;t hurt to clear it anyway).</p>
<p>The update was quite smooth, and after a reboot or two nearly everything was working as before, though it took a while for all the app icons to come back on my desktops. As I did not reset any application data I did not have to reinstall any of my apps or restore the data.</p>
<p>The only issue I found is that the calendar would crash upon starting. I installed <a href="https://market.android.com/details?id=com.nolanlawson.logcat">CatLog</a>, which allows you to view the android system logs, and very quickly found a stack trace from the calendar app saying it could not find a database column.<br />
<img style="display: block; margin-right: auto; margin-left: auto;" src="http://www.strangeparty.com/wordpress/uploads/2011/12/wpid-screenshot-1323091961687.png" alt="image" width="288" height="480" /><br />
I guessed that the storage format must have changed, and as it is all synced from my Google calendar anyway, I thought I would just clear the data and let it resync. Under System-&gt;Applications I found the app CalendarStorage, and simply deleted all its data. After a moment to resync from the cloud, everything looks fine.</p>
<p>The latest CyanogenMod 7.1 seems to have some fixes I have been waiting for. In particular, I quite liked the dual lockscreen. A shorter timeout for a swype unlock, where the lockscreen has a music widget. The longer timeout is the unlock pattern. This was not possible in the older CyanogenMod 7.0.3 as a bug seemed to only show the pattern unlock screen.</p>
<p>There is quite a list of new fixes, but I don&#8217;t think I needed any of them. One new thing I noticed is that holding down the power button gives not only the usual shutdown/reboot options, but also a screenshot option, which is quite useful and removes the need for a separate app to do this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/12/05/upgrading-cyanogenmod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It feels like a new house!</title>
		<link>http://www.strangeparty.com/2011/11/03/it-feels-like-a-new-house/</link>
		<comments>http://www.strangeparty.com/2011/11/03/it-feels-like-a-new-house/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 09:55:49 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=874</guid>
		<description><![CDATA[<p>We had some trees removed yesterday, mostly because of their proximity to the house, but they did block a lot of light. Some of the before and after shots really give a striking contrast of how the trees change the property.</p> <p>We need some time to get used to the new look, but will probably <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/11/03/it-feels-like-a-new-house/">It feels like a new house!</a></span>]]></description>
				<content:encoded><![CDATA[<p>We had some trees removed yesterday, mostly because of their proximity to the house, but they did block a lot of light. Some of the before and after shots really give a striking contrast of how the trees change the property.</p>
<p>We need some time to get used to the new look, but will probably end up planting something, probably some trees (oh, the irony of getting rid of trees to plant some), though certainly nothing like the ones we had. Something smaller and more decorative maybe, if it doesn&#8217;t block too much light. Of course keeping it pruned is probably the most important thing to stop them overgrowing like the old ones.</p>
<p>&nbsp;</p>
<p><a title="P1010144" href="http://farm7.static.flickr.com/6233/6308790028_f9a14391ec_b.jpg"><img src="http://farm7.static.flickr.com/6233/6308790028_f9a14391ec_m.jpg" alt="P1010144" width="240" height="180" border="0" /></a> <a title="P1010151" href="http://farm7.static.flickr.com/6219/6308791736_6554e52d79_b.jpg"><img src="http://farm7.static.flickr.com/6219/6308791736_6554e52d79_m.jpg" alt="P1010151" width="240" height="180" border="0" /></a></p>
<p><a title="P1010143" href="http://farm7.static.flickr.com/6117/6308269365_584ccdd530_b.jpg"><img src="http://farm7.static.flickr.com/6117/6308269365_584ccdd530_m.jpg" alt="P1010143" width="240" height="180" border="0" /></a> <a title="P1010152" href="http://farm7.static.flickr.com/6092/6308790184_ce1fe7559f_b.jpg"><img src="http://farm7.static.flickr.com/6092/6308790184_ce1fe7559f_m.jpg" alt="P1010152" width="240" height="180" border="0" /></a></p>
<p>&nbsp;</p>
<p><a title="P1010145" href="http://farm7.static.flickr.com/6238/6308790844_e514eb985f_b.jpg"><img src="http://farm7.static.flickr.com/6238/6308790844_e514eb985f_m.jpg" alt="P1010145" width="180" height="240" border="0" /></a> <a title="P1010150" href="http://farm7.static.flickr.com/6056/6308270291_32f88095cb_b.jpg"><img src="http://farm7.static.flickr.com/6056/6308270291_32f88095cb_m.jpg" alt="P1010150" width="180" height="240" border="0" /></a></p>
<p>&nbsp;</p>
<p>There are also a few shots partway through:</p>
<p>&nbsp;</p>
<p><a title="P1010147" href="http://farm7.static.flickr.com/6236/6308791276_9c9c094f02_b.jpg"><img src="http://farm7.static.flickr.com/6236/6308791276_9c9c094f02_m.jpg" alt="P1010147" width="180" height="240" border="0" /></a> <a title="P1010146" href="http://farm7.static.flickr.com/6056/6308791860_e2dfdbc08d_b.jpg"><img src="http://farm7.static.flickr.com/6056/6308791860_e2dfdbc08d_m.jpg" alt="P1010146" width="240" height="180" border="0" /></a></p>
<p><a title="P1010149" href="http://farm7.static.flickr.com/6050/6308791052_d1926c8624_b.jpg"><img src="http://farm7.static.flickr.com/6050/6308791052_d1926c8624_m.jpg" alt="P1010149" width="240" height="180" border="0" /></a> <a title="P1010148" href="http://farm7.static.flickr.com/6042/6308269197_8fbbfb17d9_b.jpg"><img src="http://farm7.static.flickr.com/6042/6308269197_8fbbfb17d9_m.jpg" alt="P1010148" width="240" height="180" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/11/03/it-feels-like-a-new-house/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reduce wordpress comment spam with .htaccess rules</title>
		<link>http://www.strangeparty.com/2011/10/02/reduce-wordpress-comment-spam-with-htaccess-rules/</link>
		<comments>http://www.strangeparty.com/2011/10/02/reduce-wordpress-comment-spam-with-htaccess-rules/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 07:33:36 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=866</guid>
		<description><![CDATA[<p>I get quite a lot of spam comments on my wordpress blog, and even with things like akismet to try and detect and block spam I still get a lot. Some people have suggested using a mod_rewrite rule in apache to detect very obvious attempts to post unsolicited comments. The basic idea is that if <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/10/02/reduce-wordpress-comment-spam-with-htaccess-rules/">Reduce wordpress comment spam with .htaccess rules</a></span>]]></description>
				<content:encoded><![CDATA[<p>I get quite a lot of spam comments on my wordpress blog, and even with things like akismet to try and detect and block spam I still get a lot. Some people have suggested using a mod_rewrite rule in apache to detect very obvious attempts to post unsolicited comments. The basic idea is that if anyone tries to submit a comment and they have not set a referrer in the HTTP headers of your site, then they probably aren&#8217;t doing anything near normal browsing. Also, a blank user agent is also only common if you have gone to the effort of not setting one.</p>
<p>Based on the mod_rewrite hack from<a href=" http://www.wprecipes.com/reduce-spam-on-your-wordpress-blog-by-using-htaccess"> http://www.wprecipes.com/reduce-spam-on-your-wordpress-blog-by-using-htaccess</a>, I have my own slightly different version</p>
<blockquote>
<pre>&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine On

  RewriteCond %{REQUEST_METHOD} POST
  RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
  RewriteCond %{HTTP_REFERER} !.*YOURSITE\.COM.* [OR]
  RewriteCond %{HTTP_USER_AGENT} ^$
  RewriteRule .* / [R=301,L]
&lt;/IfModule&gt;</pre>
</blockquote>
<p>This basically rewrites the url back to / (edit the last line if you want to set it to somewhere else). The rule only works if the request is a POST request and for the wp-comments-post.php file, and either the referrer url was not your site or the user agent is empty. I can&#8217;t think of anything that sends blank user agents, so this should be pretty safe. All browsers should also send the referrer url, so again this should be pretty safe.</p>
<p>Don&#8217;t forget to change &#8220;YOURSITE\.COM&#8221; to your domain name</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/10/02/reduce-wordpress-comment-spam-with-htaccess-rules/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Guest presenting on the Ubuntu UK PodCast</title>
		<link>http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/</link>
		<comments>http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 20:41:00 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[IBM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[southackton]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[UUPC]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/</guid>
		<description><![CDATA[<p>I was a guest presenter on this weeks Ubuntu UK PodCast. I talked about Southackton, and IBM&#8217;s use of Ubuntu on the desktop. Listen to the podcast at http://t.co/vVL5M3YJ </p> ]]></description>
				<content:encoded><![CDATA[<p>I was a guest presenter on this weeks Ubuntu UK PodCast. I talked about Southackton, and IBM&#8217;s use of Ubuntu on the desktop.<br />
Listen to the podcast at <a href="http://t.co/vVL5M3YJ"><br />
http://t.co/vVL5M3YJ</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/09/28/guest-presenting-on-the-ubuntu-uk-podcast/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rooting and upgrading a HTC Desire to android 2.3 (CyanogenMod 7)</title>
		<link>http://www.strangeparty.com/2011/06/23/cyanogenmod-on-htc/</link>
		<comments>http://www.strangeparty.com/2011/06/23/cyanogenmod-on-htc/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 20:20:28 +0000</pubDate>
		<dc:creator>Anton Piatek</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[phone]]></category>

		<guid isPermaLink="false">http://www.strangeparty.com/?p=848</guid>
		<description><![CDATA[<p>I started writing this as I was actually doing this to my phone. The problem I found with most existing instructions is they seem to slightly contradict other instructions you find. Many have steps which are not well laid out and often don&#8217;t give a reason for doing things which can be a bit annoying. Often the <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.strangeparty.com/2011/06/23/cyanogenmod-on-htc/">Rooting and upgrading a HTC Desire to android 2.3 (CyanogenMod 7)</a></span>]]></description>
				<content:encoded><![CDATA[<p>I started writing this as I was actually doing this to my phone. The problem I found with most existing instructions is they seem to slightly contradict other instructions you find. Many have steps which are not well laid out and often don&#8217;t give a reason for doing things which can be a bit annoying. Often the instructions are from ancient Android OS version days, so steps like installing hboot versions, and recovery roms are now all covered with the one unrevoked3 step, but not all instructions are clear that this is the case.</p>
<p>These instructions are heavily based on the instructions from CyanogenMod 7 for HTC Desire:<a href=" http://wiki.cyanogenmod.com/wiki/HTC_Desire_(GSM):_Full_Update_Guide"> http://wiki.cyanogenmod.com/wiki/HTC_Desire_(GSM):_Full_Update_Guide</a> but also some other sites I found along the way, often for other phone models so only parts apply. I also had some direct feedback from various IRC channels.</p>
<p>The following links were useful to me, so I mention in case you want to read some more:<br />
<a href="http://forum.xda-developers.com/forumdisplay.php?f=628">http://forum.xda-developers.com/forumdisplay.php?f=628</a><br />
<a href="http://forum.xda-developers.com/showthread.php?s=ea2964d1e59f99d394ca758037ee6bc1&amp;t=696189">http://forum.xda-developers.com/showthread.php?s=ea2964d1e59f99d394ca758037ee6bc1&amp;t=696189</a><br />
<a href="http://forum.xda-developers.com/showthread.php?t=788044">http://forum.xda-developers.com/showthread.php?t=788044</a></p>
<h2>1. Preparations</h2>
<p>The first thing that may be of use, especially if you are checking other instructions, is to grab a few version numbers of the rom levels on your phone:</p>
<p>power off, hold vol down and power &#8211; get hboot version page, includes radio version<br />
mine was hboot 0.93.0001<br />
and my radio version is 5.11.05.27<br />
hboot version shouln&#8217;t matter for unrevoked3 though unless on very new phone like EVO4<br />
You can also check the radio version from &#8220;Settings-&gt;About Phone-&gt;Software information&#8221;.<br />
You should see &#8220;Basebane version&#8221;, mine is 32.49.00.32U_5.11.05.27<br />
The last part of that, after the _, is the radio rom version</p>
<h2>2. Rooting your phone</h2>
<p>Go to <a href="http://unrevoked.com/recovery/">http://unrevoked.com/recovery</a>/ and download the rooting program.</p>
<p>This uses an exploit in the phone to install a new recovery rom, the &#8220;clockwork recovery&#8221; rom, which can then be used to do complete phone backups and install new roms.</p>
<p>You will need the &#8220;usb debugging&#8221; enabled on the phone, and the phone connected only to charge, not as disk access or tethering</p>
<p>It is straight forward on linux (run the downloaded file, and follow the instructions on screen), but I believe on windows there are soe extra drivers to install so check the unrevoked site for more instructions if you are on windows. .</p>
<p>I tried unrevoked3 with only 14mb available, and got &#8220;internal error: installing package failed&#8221;. Getting the space up to 25mb and it worked fine (I just uninstalled the gmail updates)</p>
<h2>3. Backup your current OS (nandroid backup)</h2>
<p>Reboot into the hboot screen as in step 1 for version numbers, then use use vol up/down to select &#8220;recovery&#8221;. The power button acts as the &#8220;ok&#8221; button here.</p>
<p>This boots the clockwork recovery rom which was installed when you ran unrevoked.</p>
<p>Then use trackball to select backup.</p>
<p>This does a complete backup to SD, also referrred to as a &#8220;nandroid backup&#8221; which should include the system OS, all installed apps and user data.<br />
You probably need as much space as your phone has on internal memory (512mb for desire).<br />
This will take a little while, so do it on power or a full battery.</p>
<p>The backup should appear in your sdcard in /sdcard/clokworkmod/backups/</p>
<p>Then press back and select the reboot option.</p>
<h2>4. Backup apps and app data for migration</h2>
<p>Why do you need this if you just did a complete backup? Well, when you install the new OS you will be erasing everything from the internal memory, so this backs up your apps so you can install them again, and also the app-data so you don&#8217;t lose it all.</p>
<p>I used the free version of &#8220;<a href="https://market.android.com/details?id=com.keramidas.TitaniumBackup&amp;feature=search_result">Titanium Backup</a>&#8221; but &#8220;<a href="https://market.android.com/details?id=com.metago.astro&amp;feature=search_result">Astro File manager</a>&#8221; has been suggested too, and it looks like &#8220;<a href="https://market.android.com/details?id=com.seasmind.android.gmappmgr&amp;feature=search_result">Gemini App manager</a>&#8221; can do this as well.<br />
It is pretty straightforward, but see <a href="http://www.incredibleforum.com/forum/htc-incredible-hacks/7893-titanium-backup-how.html">http://www.incredibleforum.com/forum/htc-incredible-hacks/7893-titanium-backup-how.html</a> if you want specific steps.</p>
<h2>5. Backup your whole SD card</h2>
<p>Ok, maybe I am paranoid, but at this point I plugged in my phone via USB and zipped up the entire SD card onto my computer. This way I have a backup of my SD card, which includes all the above backups, so if anything goes badly wrong I still have the restore files</p>
<p>I had to disable the usb debug mode to get the disk to mount</p>
<h2>6. Update radio rom</h2>
<p>Before applying the cyanogenmod, or any other, you may need to update your radio rom version.</p>
<p>According to <a href="http://wiki.cyanogenmod.com/wiki/HTC_Desire_(GSM):_Full_Update_Guide">http://wiki.cyanogenmod.com/wiki/HTC_Desire_(GSM):_Full_Update_Guide</a> the version of mine is good enough for CM7, so I didn&#8217;t update it.</p>
<h2>7. Now install new rom</h2>
<p>Installing the mod is straightfowrard (there are<a href="http://wiki.cyanogenmod.com/wiki/HTC_Desire_(GSM):_Full_Update_Guide"> instructions in the first link of this page</a>).</p>
<p>Basically download the mod, and google apps if you want it, and drop the zip files in the root folder of the SD card.<br />
Then use the clockwork recovery mod as we did earlier and select &#8220;Wipe data/factory reset&#8221; to clear the flash (I have seen reports that this may not be required, but as it is such a large change of version numbers, I decided to do a full wipe), then &#8220;Wipe cache partition&#8221; to clear that too.</p>
<p>Then simply select &#8220;install zip from SD card&#8221; and install the new mod, and google apps if you wanted it.</p>
<p>Alternatively, you can use <a href="https://market.android.com/details?id=com.koushikdutta.rommanager">Rom Manager</a> to do it as an app.</p>
<p>After the reboot, use your chosen backup program to then restore all your apps and data, however read the next step first as you may find space to still be an issue.</p>
<h2>8. Space savings with CyanogenMod 7</h2>
<p>After rebooting into the new OS, I had over 100mb free for base image (out of 148mb capacity reported by OS). 83mb free after installing a similar set of google apps from the market.</p>
<p>After then restoring all my backed up apps and data I found out I only had 25mb free, which is only about 10mb better than on the original android 2.2 from HTC.</p>
<p>You will probably find you have to install an app to force apps to install on SD card by default. Note that CyanogenMod 7 has an option to force all apps there by default, but it will put apps with widgets on there, which breaks the widgets.</p>
<p><strong>There is a way to get even more space for apps with CM7:</strong></p>
<p>All you have to do is add an ext4 partition to your SD card and then install &#8220;<a href="https://market.android.com/details?id=ru.krikun.s2e">simple2ext</a>&#8221; from the android market.</p>
<p>This is a feature only available on the CyanogenMod 7 roms, and allows you to move all apps, app data, and caches to SD card. There is a performance hit for this, but it seems worth it.</p>
<p>I used a microSD adapter to plug in my SD card into my PC and used &#8220;gparted&#8221; on Ubuntu (a Live CD will do fine) to shrink the current partition and add an ext4 one<br />
without losing data (but you backed up above in any case, right?)</p>
<p>I created a 1GB partition and after installing simple2ext, I set it to move my apps and dalvik cache to the ext4 partition.</p>
<p>After a reboot I now have loads of space for apps to install to, about 80mb free despite installing another dozen apps without bothering to move them to SD.</p>
<p>To help you decide what to move, the Dalvik cache appears to be a binary cache for the Android implementation of Java. There is a performance hit to moving anything to SD unless you have quite a fast card (<a href="http://forum.xda-developers.com/showthread.php?t=1175707">http://forum.xda-developers.com/showthread.php?t=1175707</a> recommends ﻿minimum class 4, better yet a class 6). Mine is class 2, and I found that moving the application data seems to<br />
cause the phone to be very noticably slower, so it is probably best avoided unless you have a fast SD card.</p>
<p>Moving the Davlik cache did slow things down a little, but mostly only the boot time and first launch of an app. I decided that for an extra 80mb of space that I could live with that (I have also just ordered a new class 6 SD card, so that should help).</p>
<h2>Conclusions</h2>
<p>Rooting, and modding was actually incredibly simple. It sounds so scary, but I think it is actually very, very hard to mess it up to a point where you cannot just overwrite with a new mod (or your backup) and start again. Once you get to the nandoid backup point you have a very good recovery strategy!</p>
<p>I have loads more space, which is good, because counting the bytes is annoying. I now don&#8217;t have to worry about if I have space to install something.</p>
<p>You do lose the HTC apps and widgets, but I found I could live without them fairly easily (I haven&#8217;t used peep since I discovered TweetDeck, and that was my most used HTC app). If you miss the clock widget, search for &#8220;<a href="https://market.android.com/details?id=factory.widgets.SenseAnalogGlass&amp;feature=search_result">sense analog glass clock</a>&#8221; on the android market, that is a nice replacement for me. &#8220;<a href="https://market.android.com/details?id=dk.nicolai.buch.andersen.glasswidgets">glass widgets</a>&#8221; is a replacement calendar widget, which I now actually prefer.</p>
<p>The battery manager in the new rom is awesome compared to the old 2.2 one. It really shows where the battery is going. I think I possibly get longer battery life with this rom too.</p>
<p>I much prefer the android 2.3 native keyboard to the HTC sense one.</p>
<p>There are some niggles &#8211; I have a few gui glitches which cause me to reboot the phone every few weeks, but I am hoping they will be fixed in the next stable build (I have not been brave enough to try the nightly builds :-s )</p>
<p>Overall, I quite like the new UI though it did take some getting used to. The fact I dont have to worry about space is the biggest reason I will keep this rom, though it does sound like <a href="http://starburst.droidzone.in/">starburst rom</a> which is much closer to vanilla HTC sense branded android also allows the &#8220;data2sd&#8221; hack to get more space</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangeparty.com/2011/06/23/cyanogenmod-on-htc/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
