<?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>chrishowells.co.uk</title>
	<atom:link href="http://chrishowells.co.uk/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://chrishowells.co.uk</link>
	<description></description>
	<lastBuildDate>Thu, 14 Jan 2010 10:16:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Unexpected Fox</title>
		<link>http://chrishowells.co.uk/?p=430</link>
		<comments>http://chrishowells.co.uk/?p=430#comments</comments>
		<pubDate>Wed, 13 Jan 2010 23:01:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=430</guid>
		<description><![CDATA[This morning just as I was leaving the house I looked into the garden. As well as yet more snow, I saw this beautiful fox. Standing there in the daylight in the open.
I grabbed my camera with the 17-85mm lens and managed to get a few shots before he wandered off again.



I put a bigger [...]]]></description>
			<content:encoded><![CDATA[<p>This morning just as I was leaving the house I looked into the garden. As well as yet more snow, I saw this beautiful fox. Standing there in the daylight in the open.</p>
<p>I grabbed my camera with the 17-85mm lens and managed to get a few shots before he wandered off again.<br />
<a href="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x682-IMG_0537.jpg"><img class="alignnone" src="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x682-IMG_0537.jpg" alt="" width="1024" height="682" /></a></p>
<p><a href="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x677-IMG_0540.jpg"><img class="alignnone" src="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x677-IMG_0540.jpg" alt="" width="1024" height="677" /></a></p>
<p><a href="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x679-IMG_0542.jpg"><img class="alignnone" src="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x679-IMG_0542.jpg" alt="" width="1024" height="679" /></a></p>
<p>I put a bigger lens on and managed to get a few more snaps before he disappeared again. About 100mm focal length on a 1.6x crop camera, so about 160mm.</p>
<p><a href="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x686-IMG_0548.jpg"><img class="alignnone" src="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x686-IMG_0548.jpg" alt="" width="1024" height="686" /></a></p>
<p>Before soon he wandered off again.</p>
<p><a href="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x747-IMG_0549.jpg"><img class="alignnone" src="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/.cache/1024x747-IMG_0549.jpg" alt="" width="1024" height="747" /></a></p>
<p><a href="http://gallery.chrishowells.co.uk/2010/20100113%20Fox/JPEGs/">More pics</a>.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D430&amp;linkname=Unexpected%20Fox"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=430</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using a Speedtouch 516v6 with UK ISP BeThere</title>
		<link>http://chrishowells.co.uk/?p=417</link>
		<comments>http://chrishowells.co.uk/?p=417#comments</comments>
		<pubDate>Mon, 07 Sep 2009 16:56:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=417</guid>
		<description><![CDATA[Whilst waiting for my BeBox to arrive, I wanted to make use of the Thomson Speedtouch 516 that I bought a few years ago and has sat unused since then. Documentation on accomplishing this is unfortunately lacking from Be, and there is little in the way of informatoin on the members-only Be forum or the [...]]]></description>
			<content:encoded><![CDATA[<p>Whilst waiting for my BeBox to arrive, I wanted to make use of the Thomson Speedtouch 516 that I bought a few years ago and has sat unused since then. Documentation on accomplishing this is unfortunately lacking from Be, and there is little in the way of informatoin on the members-only Be forum or the Be usergroup.</p>
<p>However,  it can be done.</p>
<p>Configuring the Speedtouch is a real pain for Be, as the Speedtouch only supports PPPoA or PPPoE as standard. However, Be use RFC 1483 bridging (aka EthoA). The 516 can support RFC 1483 bridging, but you need to upload a template to add the configuration options to the Speedtouch&#8217;s web interface. That, or figure ou the magic CLI runes which can be entered over telnet, but that is left as an excercise to the reader.</p>
<p>Thankfully, the nice people at another LLU ISP, ADSL24, <a href="http://adsl24.co.uk/support/llu/setup/?q=2">have provided a  template which works perfectly with the Speedtouch and Be</a>.</p>
<p>Just follow the instructions here to download the template, upload it to the Speedtouch, enter your Be IP, netmask and gateway, and away you sh<br />
ould go :)</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D417&amp;linkname=Using%20a%20Speedtouch%20516v6%20with%20UK%20ISP%20BeThere"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=417</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gigabyte motherboards are harmful and can cause data loss</title>
		<link>http://chrishowells.co.uk/?p=298</link>
		<comments>http://chrishowells.co.uk/?p=298#comments</comments>
		<pubDate>Fri, 26 Jun 2009 21:52:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=298</guid>
		<description><![CDATA[Unfortunately certain models of Gigabyte motherboards play very nasty tricks with your hard disks &#8212; entirely without your permission &#8212; by setting up Host Protected Areas. These unauthorised modifications to your hard disk can cause the loss of hundreds of Gigabytes of data. Personally I lost a 1.2TB RAID 0 array. [1]
I do not know [...]]]></description>
			<content:encoded><![CDATA[<p>Unfortunately certain models of Gigabyte motherboards play very nasty tricks with your hard disks &#8212; entirely without your permission &#8212; by setting up <a href="http://en.wikipedia.org/wiki/Host_protected_area">Host Protected Areas</a>. These unauthorised modifications to your hard disk can cause the loss of hundreds of Gigabytes of data. Personally I lost a 1.2TB RAID 0 array. [1]</p>
<p>I do not know which models of Gigabyte motherboards are affected but the Gigabyte GA-MA74GM-S2H certainly is; according to <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=79749">this post on opensolaris.org</a>, the GA-G31M-S2L is also affected. If anybody else has experienced this, please post a comment.</p>
<p>The Host Protected Area means that a certain area of the disk is reserved. That&#8217;s not too bad on a disk that has never been used in another system. You lose a few tens of megabytes, which isn&#8217;t too significant on disks of hundreds of gigabytes. However, if the system has already been used in another system, and contains a partition table or is part of a RAID array, or LVM volume, your data will not be accessible and will essentially be lost.</p>
<p>I unfortunately discovered this problem myself when I upgraded my home Linux-based home fileserver. I upgraded from an Asus motherboard. I had four 300GB IDE disks that had been part of a RAID 0 array (yes, I know about the data loss implications of RAID 0; they&#8217;re acceptable for my use). I discovered that Linux&#8217;s md could not reassemble two of the disks back into the RAID array. The other two were fine &#8212; these were connected to a Promise IDE controller. As the disks were around four years old and had been on 24&#215;7 for that time, I came to the conclusion &#8212; although unlikely &#8212; that both of the disks had died simultaneously.</p>
<p>Hindsight is a wonderful thing. Unfortunately I had never had any prior experience of Host Protected Areas. However, whilst debugging, I should have noticed the following:</p>
<pre id="dashboard-widgets-wrap">hde: max request size: 512KiB
hde: Host Protected Area detected.
 current capacity is 586070255 sectors (300067 MB)
 native  capacity is 586072368 sectors (300069 MB)
hde: Host Protected Area disabled.
hde: 586072368 sectors (300069 MB) w/8192KiB Cache, CHS=36481/255/63, UDMA(100)
hde: cache flushes supported
 hde: hde1 hde2
hdg: max request size: 512KiB
hdg: Host Protected Area detected.
 current capacity is 586112591 sectors (300089 MB)
 native  capacity is 586114704 sectors (300090 MB)
hdg: Host Protected Area disabled.
hdg: 586114704 sectors (300090 MB) w/16384KiB Cache, CHS=36483/255/63, UDMA(100)
hdg: cache flushes supported
 hdg: hdg1 hdg2</pre>
<p>Unfortunately the motherboard, without my permission, was denying md access to part of the disk, meaning that md could not assemble it into the RAID array. Data loss bugs are some of the the worst kind of bugs and I find this behaviour of this motherboard rude and entirely unacceptable.</p>
<p>For me, this wasn&#8217;t terrible. Most of the data was backed up to tape, and thus restorable, and what wasn&#8217;t, was easily replaceable. But I hope that this post helps someone that thinks that they have lost their data, and encourages Gigabyte to change the unacceptable behaviour of their motherboards.</p>
<p>[1] Sure, using RAID 0 dramatically increases the risk of data loss, and that was acceptable to me as it was personal use, not business critical, and I was happy with the possiblity of a disk dieing. I&#8217;m not happy with the fact that Gigabyte hardware behaves in unexpected and totally different ways to all of the (considerable quantity of) other hardware that I&#8217;ve used.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D298&amp;linkname=Gigabyte%20motherboards%20are%20harmful%20and%20can%20cause%20data%20loss"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=298</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>French police hold D-day veterans and celebrators hostage in Arromanches car park for hours</title>
		<link>http://chrishowells.co.uk/?p=274</link>
		<comments>http://chrishowells.co.uk/?p=274#comments</comments>
		<pubDate>Sat, 06 Jun 2009 19:16:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=274</guid>
		<description><![CDATA[Can&#8217;t Gordon Brown do anything right? As a result of the security arrangements for Gordon Brown and Nicholas Sarkozy, and the complete incompetence of the French police, hundreds of people, including D-day veterans themselves were trapped in a car park in Arromanches, Normandy, for nearly two-and-a-half hours, without toilets, food, drink, and any idea about [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_282" class="wp-caption alignright" style="width: 310px"><a href="http://chrishowells.co.uk/wp-content/uploads/2009/06/img_8072.jpg"><img class="size-medium wp-image-282" title="img_8072" src="http://chrishowells.co.uk/wp-content/uploads/2009/06/img_8072-300x200.jpg" alt="French police use police van to block exit of car park in Arromanches, Normandy, to prevent anyone going home, exit is blocked for nearly 2.5 hours while Brown and Sarkozy make themselves look important making speeches in town" width="300" height="200" /></a><p class="wp-caption-text">French police use police van to block exit of car park in Arromanches, Normandy, to prevent anyone going home, exit is blocked for nearly 2.5 hours while Brown and Sarkozy make themselves look important making speeches in town</p></div>
<p>Can&#8217;t Gordon Brown do <em>anything</em> right? As a result of the security arrangements for Gordon Brown and Nicholas Sarkozy, and the complete incompetence of the French police, <em><strong>hundreds of people, including D-day veterans themselves were trapped in a car park in Arromanches, Normandy, for nearly two-and-a-half hours, </strong></em>without toilets, food, drink, and any idea about when they would be able to get out.</p>
<p>I am currently visiting Normandy for the 65h Anniversary of D-Day. Today &#8212; being the 6th of June &#8212; marks the exact day that it happened 65 years ago. I decided to spend the day in Arromanches, a town that bears the marks of the invasion to this very day, with the remains of the Mulberry harbours punctuating the horizon across the open sea of the English Channel.</p>
<p>As I drove from the campsite this morning to Arromanches, a distance of around 60 miles, I was struck by the huge number of police everyday, on all of the motorway bridges. After an utterly fantastic day in Arromanches seeing the veterans, and looking at a British Army landing craft on the beach, and a vast number of army vehicles including Jeeps and trucks, the time came to go home.</p>
<p>I returned to my car at 5pm, but just as I went to leave, the entrances to the car park were suddenly closed, without warning, by the French police (Gendarmerie). We were initially told that this would be for around 20 minutes whilst the convoys of Gordon Brown and Nicholas Sarkozy went past into the town. Very annoying, but tolerable.</p>
<p>What actually happened was that the road was closed, road blocks were implemented, and hundreds of vehicles (including modern cars, camper vans as well as veteran military vehicles) and hundreds, if not thousands of people were trapped in the car park, a field, a short distance from the beach at Arromanches. For just short of two-and-a-half hours. This was for the time that it took the convoys to get to Arromanches, Brown and Sarkozy to make themselves look important, and to finally leave.</p>
<div id="attachment_285" class="wp-caption alignright" style="width: 310px"><a href="http://chrishowells.co.uk/wp-content/uploads/2009/06/img_8074.jpg"><img class="size-medium wp-image-285" src="http://chrishowells.co.uk/wp-content/uploads/2009/06/img_8074-300x200.jpg" alt="Blah" width="300" height="200" /></a><p class="wp-caption-text">After being trapped for over an hour, a D-Day veteran had to beg the police to be allowed out as he was likely to miss his ferry from Cherbourg. I have no idea whether he managed to catch it in the end</p></div>
<p>Not only were there those interested in history, like myself, but also D-Day veterans themselves. I was absolutely disgusted when I witnessed an elderly gentlemen, a D-Day veteran, begging the French police to be allowed out because he would miss his ferry from Cherbourg. After about 20 minutes he was allowed out, I have no idea whether he caught his ferry. But it made me extremely sad about the disgusting way that people were treated by the French police.</p>
<p>Whilst Sarkozy and Brown were making themselves look important in the town by giving speeches, an elderly veteran &#8212; as well as hundreds of others of all nationalities &#8212; were being kept hostage in a car park.</p>
<p>After an hour a police van arrived as reinforcements, and it was positioned by the French police to block the exit. For some bizarre reason, some time later, a tannoy announced that only British cars would be allowed to leave. A handful of British cars left; I couldn&#8217;t as I was some way back and blocked in.</p>
<p>People were absolutely mad with the French police and could not understand what was going on. On their way out the convoys of Brown and Sarkozy were heckled: furious people shouted, booed, and blew their horns.</p>
<div id="attachment_286" class="wp-caption alignnone" style="width: 310px"><a href="http://chrishowells.co.uk/wp-content/uploads/2009/06/img_8077.jpg"><img class="size-medium wp-image-286" title="img_8077" src="http://chrishowells.co.uk/wp-content/uploads/2009/06/img_8077-300x200.jpg" alt="All kinds of vehicles are trapped, from vintage military vehicles to cars and camper vans" width="300" height="200" /></a><p class="wp-caption-text">All kinds of vehicles are trapped, from vintage military vehicles to cars and camper van</p></div>
<p>I am very sad that a wonderful day was ruined by appalling planning and implementation.</p>
<p><a href="http://chrishowells.co.uk/wp-content/uploads/2009/06/2009-06-06-191523.jpg"><img class="alignnone size-medium wp-image-289" title="2009-06-06-191523" src="http://chrishowells.co.uk/wp-content/uploads/2009/06/2009-06-06-191523-300x225.jpg" alt="2009-06-06-191523" width="300" height="225" /></a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D274&amp;linkname=French%20police%20hold%20D-day%20veterans%20and%20celebrators%20hostage%20in%20Arromanches%20car%20park%20for%20hours"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=274</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WDTV: STILL a GPL violation</title>
		<link>http://chrishowells.co.uk/?p=246</link>
		<comments>http://chrishowells.co.uk/?p=246#comments</comments>
		<pubDate>Mon, 09 Feb 2009 21:29:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=246</guid>
		<description><![CDATA[I examined the most recent source code package released by WD (Western Digital) for their WDTV product, and unfortunately WDTV is still a GPL violation.
]]></description>
			<content:encoded><![CDATA[<p>I examined the most recent source code package released by WD (Western Digital) for their WDTV product, and unfortunately <a href="http://chrishowells.co.uk/?p=68">WDTV is still a GPL violation</a>.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D246&amp;linkname=WDTV%3A%20STILL%20a%20GPL%20violation"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=246</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Building a fully static application with Qt and qmake</title>
		<link>http://chrishowells.co.uk/?p=239</link>
		<comments>http://chrishowells.co.uk/?p=239#comments</comments>
		<pubDate>Sun, 08 Feb 2009 12:53:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=239</guid>
		<description><![CDATA[I&#8217;m trying to statically compile a Qt application. There are lots of google hits for instructions on doing this, but none of the instructions actually appear to be complete, or indeed work.
Configuring Qt with -static is the easy bit, I built Qt with the following options:

chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3$ ./configure -embedded x86 -static -fast -no-exceptions -no-stl -no-accessibility -no-qt3support [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying to statically compile a Qt application. There are lots of google hits for instructions on doing this, but none of the instructions actually appear to be complete, or indeed work.</p>
<p>Configuring Qt with -static is the easy bit, I built Qt with the following options:</p>
<p><code><br />
chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3$ ./configure -embedded x86 -static -fast -no-exceptions -no-stl -no-accessibility -no-qt3support -no-xmlpatterns -no-phonon -no-phonon-backend -no-svg -no-webkit -no-sse -no-3dnow -no-sse2 -qt-zlib -qt-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-openssl -no-nis -no-cups -no-iconv -no-dbus -no-freetype -qt-gfx-linuxfb -no-glib<br />
</code></p>
<p>Then as I already have Qt 4 installed on my system due to KDE, need to set $PATH to run the correct tools:</p>
<p><code><br />
export PATH=/home/chris/qt-embedded-linux-opensource-src-4.4.3/bin:$PATH<br />
</code></p>
<p>I decided to modify the t1 example as a test, so I modified the t1.pro file, by adding &#8217;static&#8217; to the CONFIG line</p>
<p><code><br />
chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3/examples/tutorials/tutorial/t1$ cat t1.pro<br />
TEMPLATE        = app<br />
CONFIG          += qt warn_on static<br />
HEADERS         =<br />
SOURCES         = main.cpp<br />
TARGET          = t1</p>
<p>#QTDIR_build:REQUIRES="contains(QT_CONFIG, small-config)"</p>
<p>chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3/examples/tutorials/tutorial/t1$ qmake -config release<br />
chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3/examples/tutorials/tutorial/t1$ make clean &#038;&#038; make<br />
rm -f .obj/release-static-emb-x86/main.o<br />
rm -f *~ core *.core<br />
g++ -c -pipe -fno-exceptions -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../../../mkspecs/qws/linux-x86-g++ -I. -I../../../../include/QtCore -I../../../../include/QtCore -I../../../../include/QtNetwork -I../../../../include/QtNetwork -I../../../../include/QtGui -I../../../../include/QtGui -I../../../../include -I.moc/release-static-emb-x86 -I.uic/release-static-emb-x86 -o .obj/release-static-emb-x86/main.o main.cpp<br />
g++ -fno-exceptions -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.4.3/lib -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.4.3/lib -o t1 .obj/release-static-emb-x86/main.o    -L/home/chris/qt-embedded-linux-opensource-src-4.4.3/lib -lQtGui -L/home/chris/qt-embedded-linux-opensource-src-4.4.3/lib -lQtNetwork -lQtCore -lm -lrt -lpthread -ldl<br />
</code></p>
<p>However, the binary is still dynamically linked:</p>
<p><code><br />
chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3/examples/tutorials/tutorial/t1$ file t1<br />
t1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped<br />
chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3/examples/tutorials/tutorial/t1$ ldd t1<br />
        linux-gate.so.1 =>  (0xffffe000)<br />
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7fb5000)<br />
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7f9d000)<br />
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7f98000)<br />
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7ea5000)<br />
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e80000)<br />
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e75000)<br />
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d2b000)<br />
        /lib/ld-linux.so.2 (0xb7fdc000)<br />
</code></p>
<p>Google seems to be out of results, and I appear to be out of ideas, as does the official Qt documentation.</p>
<p>Speaking to a Qt developer (who shall rename nameless to preserve his sanity, although I appreciate his help :), you can configure qmake to make a fully static app by adding the following line to the qmake config:</p>
<p><code><br />
QMAKE_LFLAGS += -static<br />
</code></p>
<p>After running qmake again, this leads to the following:</p>
<p><code><br />
chris@thinky:~/qt-embedded-linux-opensource-src-4.4.3/examples/tutorials/tutorial/t1$ make<br />
g++ -c -pipe -fno-exceptions -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../../../mkspecs/qws/linux-x86-g++ -I. -I../../../../include/QtCore -I../../../../include/QtCore -I../../../../include/QtNetwork -I../../../../include/QtNetwork -I../../../../include/QtGui -I../../../../include/QtGui -I../../../../include -I.moc/release-static-emb-x86 -I.uic/release-static-emb-x86 -o .obj/release-static-emb-x86/main.o main.cpp<br />
g++ -fno-exceptions -static -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.4.3/lib -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.4.3/lib -o t1 .obj/release-static-emb-x86/main.o    -L/home/chris/qt-embedded-linux-opensource-src-4.4.3/lib -lQtGui -L/home/chris/qt-embedded-linux-opensource-src-4.4.3/lib -lQtNetwork -lQtCore -lm -lrt -lpthread -ldl<br />
/home/chris/qt-embedded-linux-opensource-src-4.4.3/lib/libQtCore.a(qlibrary_unix.o): In function `QLibraryPrivate::load_sys()':<br />
qlibrary_unix.cpp:(.text+0x307): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking<br />
/home/chris/qt-embedded-linux-opensource-src-4.4.3/lib/libQtCore.a(qfsfileengine_unix.o): In function `QFSFileEngine::owner(QAbstractFileEngine::FileOwner) const':<br />
qfsfileengine_unix.cpp:(.text+0x838): warning: Using 'getgrgid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking<br />
qfsfileengine_unix.cpp:(.text+0x736): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking<br />
/home/chris/qt-embedded-linux-opensource-src-4.4.3/lib/libQtNetwork.a(qhostinfo_unix.o): In function `QHostInfoAgent::fromName(QString const&#038;)':<br />
qhostinfo_unix.cpp:(.text+0x30e): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking<br />
</code></p>
<p>Not good. It turns out that linking statically to glibc is hard, because  getXXbyYY such as getpwuid_r require NSS, which is a loadable module&#8230;.</p>
<p>Next step is to try compiling Qt against uClibc.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D239&amp;linkname=Building%20a%20fully%20static%20application%20with%20Qt%20and%20qmake"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=239</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Liverpool&#8217;s Three Graces by night: Royal Liver Buliding, Cunard Building, Port of Liverpool Building</title>
		<link>http://chrishowells.co.uk/?p=232</link>
		<comments>http://chrishowells.co.uk/?p=232#comments</comments>
		<pubDate>Sat, 07 Feb 2009 01:13:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=232</guid>
		<description><![CDATA[I took a series of images at the recent LivLug meeting and stitched them into this panorama, I&#8217;m quite pleased how it turned out. It&#8217;s not as good as it could be as I was trying to work quickly, on account of it being very cold indeed that evening. Will have to revisit during the [...]]]></description>
			<content:encoded><![CDATA[<p>I took a series of images at the recent <a href="http://www.livlug.org.uk">LivLug</a> meeting and stitched them into this panorama, I&#8217;m quite pleased how it turned out. It&#8217;s not as good as it could be as I was trying to work quickly, on account of it being very cold indeed that evening. Will have to revisit during the summer and re-take it.</p>
<p>Canon EOS 20D, 100-400mm L, 10 second exposure, f/10.</p>
<p><a href="http://gallery.chrishowells.co.uk/2009/20090204%20LivLug/Pano/x.jpg?width=1800"><img src="http://gallery.chrishowells.co.uk/2009/20090204%20LivLug/Pano/.cache/800x308-x.jpg" alt="Liverpool's Three Graces by night: Royal Liver Buliding, Cunard Building, Port of Liverpool Building, Pier Head, Liverpool" width="800" height="308" /></a><br />
(click for larger version)</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D232&amp;linkname=Liverpool%26%238217%3Bs%20Three%20Graces%20by%20night%3A%20Royal%20Liver%20Buliding%2C%20Cunard%20Building%2C%20Port%20of%20Liverpool%20Building"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=232</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Input validation in Artificial Intelligence</title>
		<link>http://chrishowells.co.uk/?p=112</link>
		<comments>http://chrishowells.co.uk/?p=112#comments</comments>
		<pubDate>Tue, 13 Jan 2009 22:41:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=112</guid>
		<description><![CDATA[A couple of years ago when I was studying Articificial Intelligence as part of my Computer Science course at university I played around with a couple of AI bots.
One of those that I found was Ikea&#8217;s &#8220;Ask Anna&#8221;, which is prominently advertised on their home page.

I was curious as to how they handled input validation, [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of years ago when I was studying Articificial Intelligence as part of my Computer Science course at university I played around with a couple of AI bots.</p>
<p>One of those that I found was Ikea&#8217;s &#8220;Ask Anna&#8221;, which is prominently advertised on their home page.</p>
<p><img class="size-full wp-image-113 alignnone" title="anna1" src="http://chrishowells.co.uk/wp-content/uploads/2009/01/anna1.png" alt="anna1" width="205" height="213" /></p>
<p>I was curious as to how they handled input validation, so I tested with some potentially objectionable words.</p>
<p><img class="alignnone size-full wp-image-115" title="anna21" src="http://chrishowells.co.uk/wp-content/uploads/2009/01/anna21.png" alt="anna21" width="252" height="656" /></p>
<p>One of the &#8220;inappropriate&#8221; terms I tested was &#8220;dumb&#8221;. Unfortunately Anna&#8217;s interpretation of this word could be improved, as it&#8217;s not appropriate to equate &#8220;dumb&#8221; with &#8220;disabled people&#8221; or their carers.</p>
<p><img class="alignnone size-full wp-image-116" title="anna3" src="http://chrishowells.co.uk/wp-content/uploads/2009/01/anna3.png" alt="anna3" width="252" height="656" /></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D112&amp;linkname=Input%20validation%20in%20Artificial%20Intelligence"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=112</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 beta1 first impressions</title>
		<link>http://chrishowells.co.uk/?p=88</link>
		<comments>http://chrishowells.co.uk/?p=88#comments</comments>
		<pubDate>Sat, 10 Jan 2009 21:41:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=88</guid>
		<description><![CDATA[I downloaded and installed Windows 7 beta1 and unfortunately my first impressions are somewhat poor (yes, I *know* it&#8217;s beta1, and it&#8217;s meant to be broken ;).  The installer was quite easy to use, although it was slow.
After installation, I installed the NVidia drivers from Windows Update, as well as a couple of other [...]]]></description>
			<content:encoded><![CDATA[<p>I downloaded and installed Windows 7 beta1 and unfortunately my first impressions are somewhat poor (yes, I *know* it&#8217;s beta1, and it&#8217;s meant to be broken ;).  The installer was quite easy to use, although it was slow.</p>
<p>After installation, I installed the NVidia drivers from Windows Update, as well as a couple of other things like Lightroom, DVB Viewer, and the Technotrend drivers. After rebooting the result was a blue screen of death.</p>
<p>The familiar BSOD STOP error: &#8220;A problem has been detected and Windows has been shut down to prevent damage to your computer&#8221;.  &#8220;Attempt to reset the display driver and recover from timeout failed.&#8221; The error is in nvlddmkm.sys.</p>
<p><a title="Windows 7 blue screen of death (BSOD)" rel="lightbox[pics88]" href="http://chrishowells.co.uk/wp-content/uploads/2009/01/img_6854.jpg"><img class="attachment wp-att-90" src="http://chrishowells.co.uk/wp-content/uploads/2009/01/img_6854.thumbnail.jpg" alt="Windows 7 blue screen of death (BSOD)" width="640" height="426" /></a></p>
<p>This results in the familiar &#8220;Safe mode or not&#8221; on the next boot&#8230;</p>
<p><a title="Windows 7 blue screen of death (BSOD)" rel="lightbox[pics88]" href="http://chrishowells.co.uk/wp-content/uploads/2009/01/img_6855.jpg"><img class="attachment wp-att-89" src="http://chrishowells.co.uk/wp-content/uploads/2009/01/img_6855.thumbnail.jpg" alt="Windows 7 blue screen of death (BSOD)" width="640" height="426" /></a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D88&amp;linkname=Windows%207%20beta1%20first%20impressions"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=88</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WD TV is a GPL violation</title>
		<link>http://chrishowells.co.uk/?p=68</link>
		<comments>http://chrishowells.co.uk/?p=68#comments</comments>
		<pubDate>Mon, 05 Jan 2009 17:13:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chrishowells.co.uk/?p=68</guid>
		<description><![CDATA[I first started looking at the WD TV because I was interested in buying one, and once I found out that it was running Linux, started to investigate if I could customise it to my needs.
Update:  9th Feb 2009. WD released a new source code package some time ago (WDTV_GPL_Code.zip version 1.01.02), but it&#8217;s still a [...]]]></description>
			<content:encoded><![CDATA[<p>I first started looking at the <a href="http://www.wdc.com/en/products/products.asp?driveid=572">WD TV</a> because I was interested in buying one, and once I found out that it was running Linux, started to investigate if I could customise it to my needs.</p>
<p><strong>Update:  9th Feb 2009. WD released a new source code package some time ago (WDTV_GPL_Code.zip version 1.01.02), but it&#8217;s still a GPL violation. See below.</strong></p>
<p><em>Disclaimer: I Am Not A Lawyer, nor do I have expert knowledge of GPL enforcement. I am merely a free software enthusiast and *nix sysadmin.</em></p>
<p>Unfortunately the WD TV product, by the well known hard disk manufacturer Western Digital, appears to be violating the copyright of various free software projects, including those of the GNU and mtd-tools projects.</p>
<p>Of most concern to the GNU project is that a &#8220;toolchain&#8221; consisting of a binary-only version of gcc is provided. Of concern to mtd-tools is that the firmware contains a binary version of mtd-tools, but no source code appears to be provided.</p>
<p>Personally I think that it is unacceptable that WD is making money out of violating the GPL, and effectively distributing pirated software. There would be an uproar if WD was using pirated Microsoft software, for instance.</p>
<h2>Information</h2>
<p>The firmware and &#8220;source code&#8221; is available from<br />
<a href="http://support.wdc.com/product/download.asp?groupid=1001&amp;sid=112&amp;lang=en" target="_blank">http://support.wdc.com/product/download.asp?groupid=1001&amp;sid=112〈=en</a></p>
<p>The first problem is that the &#8220;source code&#8221; is only for version 1.00.01, while the binary version is 1.01.01.</p>
<p><span id="more-68"></span></p>
<p>If you download the firmware and unzip it, you will find the following file:</p>
<p>release-1.01.01/wdtv.bin</p>
<p>This is a cramfs image which can be mounted and examined using the following command:</p>
<pre>sudo mount -t cramfs -o loop wdtv.bin -o offset=32 /mnt</pre>
<p>(The first 32 bytes are an md5 checksum of the remainder of the rest of the wdtv.bin file).</p>
<h2>Findings</h2>
<p>* I do not own the product; as such I am uncertain whether it contains a written offer to provide the source code, as required by the GPL</p>
<p>* There are no suggestions or further offerings in WDTV_GPL_Code.zip to obtain the remainder of the source code</p>
<p>* The source code (WDTV_GPL_Code.zip) is incomplete and missing the scripts needed to build the product, which Western Digital are obligated to provide per section 3 of the GPL v2: &#8220;For an executable work, complete source code means [...] the scripts used to control compilation and installation of the executable&#8221;. There is no way that anyone could turn the source code that WD provide into something that can be installed on the device.</p>
<p>The source code package contains toolchain-89.tgz, which appears to be binary only release of gcc in the form of an ARM cross compiler.</p>
<pre>chris@host:~/dock/TVDOCK_GPL_code_package.2008.9.25/toolchain-89$
arm-elf/bin/gcc -v
Using builtin specs.
gcc version 2.95.3 20010315 (release)</pre>
<p>Incidentally, I believe that this is NOT the correct compiler at all. The hardware contains the Sigma SMP8635LF, which is MIPS-based, not ARM at all. Additionally, from examining the firmware image as described above, the software appears to have been compiled using gcc 3.0, not 2.95 at all:</p>
<pre>chris@thinky:/mnt/bin$ strings ntfs-3g | grep -i gcc
libgcc_s.so.1
GCC_3.0</pre>
<p>* The binary firmware contains the utelnetd daemon, licensed under the GPL v2, but source code for this does not seem to be provided</p>
<p>* The binary firmware contains the mtd-tools (mkfs.jffs2 etc), licensed under the GPL v2, but source code for this does not seem to be provided</p>
<p>* I&#8217;m not too sure if this is a GPL violation, but the product is supplied with various proprietary kernel modules, which are essential for the functioning of the device.</p>
<p>I believe that there could well be patches to the kernel, but these are not supplied either. Running modinfo on one of the proprietary kernel modules reveals the following:<br />
<code>chris@thinky:/mnt/lib/modules$ modinfo llad.ko<br />
filename:       llad.ko<br />
license:        LGPL<br />
author:         Mambo standalone team<br />
description:    llad kernel module for standalone configuration<br />
depends:<br />
vermagic:       2.6.15-TvDock preempt MIPS32_R2 32BIT gcc-4.0<br />
parm:           max_dmapool_memory_size:Sets the maximum amount of memory shared by the all dmapools (i)<br />
parm:           max_dmabuffer_log2_size:Sets the dmapool buffers maximum size (ex: set 15 for 32kB) (i)<br />
parm:           major:Sets the major number (i)</code><br />
This means that the module expects to load against a kernel called 2.6.15-TvDock, however searching for the string TvDock in the supplied kernel source produces no results. To my knowledge, building a kernel to report itself as &#8220;2.6.15-TvDock&#8221; would require patching the top level kernel Makefile (e.g. linux_kernel_2.6.15/Makefile), and changing the &#8220;EXTRAVERSION&#8221; line, yet the string &#8220;TvDock&#8221; is not mentioned in the entire source code package.<br />
<code>chris@host:~/dock/TVDOCK_GPL_code_package.2008.9.25$ tar xzzf linux_kernel_2.6.15.tar.gz<br />
chris@host:~/dock/TVDOCK_GPL_code_package.2008.9.25$ cd linux_kernel_2.6.15<br />
chris@host:~/dock/TVDOCK_GPL_code_package.2008.9.25/linux_kernel_2.6.15$ grep -ir tvdock *<br />
chris@host:~/dock/TVDOCK_GPL_code_package.2008.9.25/linux_kernel_2.6.15$</code></p>
<p>I have diff&#8217;ed the kernel to a <a href="http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar.bz2">vanilla 2.6.15 from kernel.org</a> and the diff is extensive (18k lines, 664KB) : you can grab it <a href="http://chrishowells.co.uk/kernel.diff.bz2">here</a>.</p>
<p>There are various patches mentioned in the top level of the unpacked kernel.<br />
<code>chris@host:~/dock/TVDOCK_GPL_code_package.2008.9.25/linux_kernel_2.6.15$ ls | grep patch<br />
README.0000.shared.patch<br />
README.1000.tangox.patch<br />
README.1001.pci.patch<br />
README.1002.gpio.patch<br />
README.1003.mbus.patch<br />
README.1004.ide.patch<br />
README.1005.tango2enet.patch<br />
README.1006.usb.patch<br />
README.1007.mtd.patch<br />
README.1008.ir.patch<br />
README.1009.fip.patch<br />
README.1010.scard.patch<br />
README.1011.udf.patch<br />
README.1012.fb.patch<br />
README.1013.frequency.patch<br />
README.1014.ipfilter.patch<br />
README.1015.cpucache.patch<br />
README.1016.kmalloc.patch<br />
README.1017.satasil.patch<br />
README.1018.multirecv.patch<br />
README.1019.zbf.patch<br />
README.1020.binary-identity.patch<br />
README.1021.rootfs-integration.patch<br />
README.1022.cacheflush.patch<br />
README.1024.bug.patch<br />
README.1025.ddma.patch<br />
README.1026.gcc41x.patch<br />
README.1028.embeddedrd.patch<br />
README.1032.net.patch<br />
README.1034.ck7.patch</code><br />
I&#8217;m not sure if these patches are in the above diff, determining if that is the case will take a while. Presumably they are in the compiled kernel, so if they aren&#8217;t, it may be violating the kernel developers&#8217; copyright too. (One of the authors mentioned in the above files is Craig Qu, <a href="http://www.linkedin.com/pub/7/713/990">who appears to be a Sigma employee</a>.)</p>
<h2>Analysis of WDTV_GPL_Code.zip version 1.01.02</h2>
<p>The updated released of WDTV_GPL_Code.zip was made in January 2009. It consists of three files: GPL.tgz, TVDOCK_GPL_code_package.2008.9.25.tar and TVDOCK_Project_Source_Code_License_List.doc.</p>
<p>Not much appears to have changed since the previous &#8220;source code&#8221; release, other than the addition of GPL.tgz.</p>
<p>The appear to have taken onboard my previous comments, and included the source code to utelnetd and mdtools.</p>
<p>It&#8217;s interesting to note that there is a smp86xx_toolchain_2.8.2.0, which includes a mipsel uClibc cross compiler. It looks like this could well be the correct compiler, but there is still no source code for gcc. So not only are WD violating the GPL of gcc once, they are now doing it twice, as they are still distributing the binary only arm cross compiler as well.</p>
<p>There are several shell scripts including make_ntfs-3g.sh, make_ntfsprogs.sh, make_utelnetd.sh, make_busybox.sh, make_dosfstools.sh, make_mkfs.jffs2.sh which could be construed as an attempt to distribute the scripts used to build it, but frankly they are an absolute joke.</p>
<p><code><br />
chris@host:~/GPL/GPL$ cat make_busybox.sh<br />
cd busybox-1.10.0<br />
make clean<br />
make<br />
cd ..<br />
</code></p>
<p>Yes, even this four line script is broken. There is no <a href="http://en.wikipedia.org/wiki/Shebang_(Unix)">shebang</a>, and it won&#8217;t work if the current directory is elsewhere in the filesystem.</p>
<h2>In Summary</h2>
<p>WDTV is an amateruish product, and still in breach of copyright law. It&#8217;s hard to understand how this passed their legal department.</p>
<ol>
<li>WD are distributing a arm cross compiler without distributing the gcc source code, and the scripts used to build it</li>
<li>WD are distributing an mipsel cross compiler without distributing the gcc source code, and the scripts used to build it</li>
<li>The scripts to build the project as a whole are still missing</li>
<li>It&#8217;s impossible to determine what else may be missing/incorrect, due to points 1-3, point 3 in particular</li>
</ol>
<p>Once the above has been resolved, it should be possible to take the source code and compile the project in its entirety. This should be an exact copy of what is installed on the device, minus the propreitary components. If it isn&#8217;t, then something has gone wrong.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fchrishowells.co.uk%2F%3Fp%3D68&amp;linkname=WD%20TV%20is%20a%20GPL%20violation"><img src="http://chrishowells.co.uk/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Save/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://chrishowells.co.uk/?feed=rss2&amp;p=68</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
