<?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/"
	>

<channel>
	<title>philwilson.org</title>
	<atom:link href="http://philwilson.org/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://philwilson.org/blog</link>
	<description>a geek commodity</description>
	<pubDate>Thu, 25 Jun 2009 16:30:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Things I own today that I did not own yesterday</title>
		<link>http://philwilson.org/blog/2009/06/things-i-own-today-that-i-did-not-own-yesterday</link>
		<comments>http://philwilson.org/blog/2009/06/things-i-own-today-that-i-did-not-own-yesterday#comments</comments>
		<pubDate>Sun, 07 Jun 2009 18:17:04 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[garden]]></category>

		<category><![CDATA[house]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=1017</guid>
		<description><![CDATA[
38cm Black and Decker rotary lawnmower
a rake
a pair of shears
gardening gloves
two trowels
two pairs of secateurs
a set of 51 tools (mostly different screw and drill bits)
a stepladder
a large gardening fork
a bow saw
geraniums, busy lizzies, tomato plants, chilli plants, sweet peas, currant bushes
many pots
Pippa Greenwood&#8217;s &#8220;Gardening Hints and Tips&#8220;
a Kenwood MultiPro Compact mixer
a brand-new Horwood 5-piece saucepan [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>38cm Black and Decker rotary lawnmower</li>
<li>a rake</li>
<li>a pair of shears</li>
<li>gardening gloves</li>
<li>two trowels</li>
<li>two pairs of secateurs</li>
<li>a set of 51 tools (mostly different screw and drill bits)</li>
<li>a stepladder</li>
<li>a large gardening fork</li>
<li>a bow saw</li>
<li>geraniums, busy lizzies, tomato plants, chilli plants, sweet peas, currant bushes</li>
<li>many pots</li>
<li>Pippa Greenwood&#8217;s &#8220;<a href="http://www.amazon.com/Gardening-Hints-Tips-Pippa-Greenwood/dp/0789410710">Gardening Hints and Tips</a>&#8220;</li>
<li>a Kenwood MultiPro Compact mixer</li>
<li>a brand-new Horwood 5-piece saucepan set</li>
<li>assorted casserole, pie and desert dishes</li>
<li>aching arms</li>
</ul>
<p>This all complements our first house, which we just bought.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/06/things-i-own-today-that-i-did-not-own-yesterday/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ruby and memcached in Bristol</title>
		<link>http://philwilson.org/blog/2009/04/ruby-and-memcached-in-bristol</link>
		<comments>http://philwilson.org/blog/2009/04/ruby-and-memcached-in-bristol#comments</comments>
		<pubDate>Wed, 22 Apr 2009 18:13:25 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[bristol]]></category>

		<category><![CDATA[memcached]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=1013</guid>
		<description><![CDATA[I have rather hastily promised to do a talk about memcached at the Bristol Ruby User Group meetup on Thursday evening (we&#8217;ll start after 6pm at the Jiva offices, see the map, no need to know about ruby or memcached in advance!).
As ever, this event is on Upcoming.
There&#8217;s a pub next door which I plan [...]]]></description>
			<content:encoded><![CDATA[<p>I have rather hastily promised to do a talk about <a href="http://code.google.com/p/memcached/">memcached</a> at the <a href="http://groups.google.com/group/bristol-ruby">Bristol Ruby User Group</a> meetup on Thursday evening (we&#8217;ll start after 6pm at the <a href="http://jivatechnology.com/">Jiva</a> offices, <a href="http://maps.google.co.uk/maps?q=BS1%206JG">see the map</a>, no need to know about ruby or memcached in advance!).</p>
<p>As ever, this event <a href="http://upcoming.yahoo.com/event/2463558/">is on Upcoming</a>.</p>
<p>There&#8217;s a pub next door which I plan on visiting both before and afterwards, and I also want someone to guide me through the capabilities of <a href="http://www.modrails.com/">Passenger</a> (<a href="http://www.modrails.com/documentation/Users%20guide%20Nginx.html">specifically, with nginx</a>) as well as showing me why all my code is horribly wrong. Come along!</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/04/ruby-and-memcached-in-bristol/feed</wfw:commentRss>
		</item>
		<item>
		<title>HTML rendering is hard</title>
		<link>http://philwilson.org/blog/2009/04/html-rendering-is-hard</link>
		<comments>http://philwilson.org/blog/2009/04/html-rendering-is-hard#comments</comments>
		<pubDate>Mon, 20 Apr 2009 18:19:56 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[wxvenus]]></category>

		<category><![CDATA[wxwidgets]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=1010</guid>
		<description><![CDATA[wxWidgets is a nice, easy-to-use cross platform toolkit for writing desktop applications. It exists for many different languages including Ruby and Python.
It includes an HTML renderer. 
On Windows this uses the IE renderer. 
On OSX it uses the webkit renderer.
On Linux it uses, er, some code that this guy wrote, y&#8217;know? It doesn&#8217;t support CSS.
This [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wxwidgets.org/">wxWidgets</a> is a nice, easy-to-use cross platform toolkit for writing desktop applications. It exists for many different languages including <a href="http://wxruby.rubyforge.org/">Ruby</a> and <a href="http://www.wxpython.org/">Python</a>.</p>
<p>It includes <a href="http://docs.wxwidgets.org/2.6/wx_wxhtml.html">an HTML renderer</a>. </p>
<p>On Windows this uses the IE renderer. <br />
On OSX it uses the webkit renderer.<br />
On Linux it uses, er, some code that this guy wrote, y&#8217;know? It doesn&#8217;t support CSS.</p>
<p>This means that <a href="http://philwilson.org/code/wxvenus/">my desktop aggregator</a> does not work very well on Linux, which is currently my primary use case. </p>
<p>It&#8217;s possible to use <a href="http://wxmozilla.sourceforge.net/">wxMozilla</a> but that was seemingly abandoned in 2005.</p>
<p>It&#8217;s possible to use <a href="http://wxwebkit.wxcommunity.com/">wxWebkit</a> but <a href="http://wxwebkit.wxcommunity.com/index.php?n=Main.BuildInstructions">the instructions</a> for that start with &#8220;check the source of webkit out of svn&#8221; and ends with &#8220;the Python bindings don&#8217;t work yet&#8221;.</p>
<p><a href="http://www.gtk.org/">GTK</a> is an easy-to-use toolkit for writing desktop applications. It is nominally cross-platform (but I wouldn&#8217;t want to push the matter). It can use <a href="http://live.gnome.org/WebKitGtk">WebKitGtk</a>.</p>
<p>I appear to be at a frustrating fork in the road.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/04/html-rendering-is-hard/feed</wfw:commentRss>
		</item>
		<item>
		<title>CouchDB in desktop applications</title>
		<link>http://philwilson.org/blog/2009/04/couchdb-in-desktop-applications</link>
		<comments>http://philwilson.org/blog/2009/04/couchdb-in-desktop-applications#comments</comments>
		<pubDate>Sat, 04 Apr 2009 16:10:41 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[couchdb]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[venus]]></category>

		<category><![CDATA[wxvenus]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=1006</guid>
		<description><![CDATA[Following my last post I was considering writing a Venus filter which adds all feed items into a CouchDB database. This could then be queried by a modified wxVenus or a  webapp (using the CouchDB jQuery library) or whatever.
Thinking specifically about wxVenus, which is a desktop appliaction, CouchDB is like MySQL in that you must [...]]]></description>
			<content:encoded><![CDATA[<p>Following <a title="http://philwilson.org/blog/2009/03/storing-feedparser-objects-in-couchdb" href="http://philwilson.org/blog/2009/03/storing-feedparser-objects-in-couchdb">my last post</a> I was considering writing a <a title="http://intertwingly.net/code/venus/docs/filters.html" href="http://intertwingly.net/code/venus/docs/filters.html">Venus filter</a> which adds all feed items into a <a title="http://couchdb.apache.org/" href="http://couchdb.apache.org/">CouchDB</a> database. This could then be queried by a modified <a title="http://philwilson.org/code/wxvenus/" href="http://philwilson.org/code/wxvenus/">wxVenus</a> or a  webapp (using the<a title="http://plugins.jquery.com/project/jqcouch" href="http://plugins.jquery.com/project/jqcouch"> CouchDB jQuery library</a>) or whatever.</p>
<p>Thinking specifically about wxVenus, which is a desktop appliaction, CouchDB is like MySQL in that you must have the server up and running before your application tries to use it, and (afaik) there is no way to embed the server itself into your application, which places quite a bit of burden on the user.</p>
<p>My initial plans were to use <a href="http://www.sqlite.org/">SQLite</a> which I can embed and use happily without another daemon running beforehand, but would mean I have to set up a schema and do all that tedious INSERTing, SELECTing and so on (I appreciate I could go all ORM <a title="Storm ORM (https://storm.canonical.com/)" href="https://storm.canonical.com/">on</a> <a title="SQLAlchemy ORM (http://www.sqlalchemy.org/)" href="http://www.sqlalchemy.org/">its</a> <a title="Dejavu ORM (http://www.aminus.net/dejavu)" href="http://www.aminus.net/dejavu">ass</a>, but again the development effort is much much higher than that with CouchDB).</p>
<p>So, what to do? I suspect that for the moment I&#8217;ll go about getting CouchDB all nice and integrated, but it doesn&#8217;t look like it&#8217;d leave me with an application people can download, install the dependencies, and just run, does it?</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/04/couchdb-in-desktop-applications/feed</wfw:commentRss>
		</item>
		<item>
		<title>Storing feedparser objects in couchdb</title>
		<link>http://philwilson.org/blog/2009/03/storing-feedparser-objects-in-couchdb</link>
		<comments>http://philwilson.org/blog/2009/03/storing-feedparser-objects-in-couchdb#comments</comments>
		<pubDate>Tue, 31 Mar 2009 22:14:02 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[couchdb]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[syndication]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=1000</guid>
		<description><![CDATA[sudo apt-get install python-feedparser
easy_install jsonpickle
sudo apt-get install couchdb
easy_install couchdb
sudo couchdb
Open a new terminal
python
import feedparser, jsonpickle
from couchdb import Server
s = Server('http://127.0.0.1:5984/')
len(s)
db = s.create('feeds')
len(s)
doc = feedparser.parse("http://feedparser.org/docs/examples/atom10.xml")
doc['feed']['title']
len(doc.feed.links)
pfeed = jsonpickle.encode(doc)
db.create({&#8217;feed1&#8242; : pfeed})
outputs DOC_ID
cfeed = db['DOC_ID_HERE']
dfeed = jsonpickle.decode(cfeed['feed1'])
dfeed['feed']['title']
len(dfeed.feed.links)
]]></description>
			<content:encoded><![CDATA[<p><kbd>sudo apt-get install python-feedparser<br />
easy_install jsonpickle<br />
sudo apt-get install couchdb<br />
easy_install couchdb<br />
sudo couchdb</kbd></p>
<p>Open a new terminal</p>
<p><kbd>python<br />
import feedparser, jsonpickle<br />
from couchdb import Server<br />
s = Server('http://127.0.0.1:5984/')<br />
len(s)<br />
db = s.create('feeds')<br />
len(s)<br />
doc = feedparser.parse("http://feedparser.org/docs/examples/atom10.xml")<br />
doc['feed']['title']<br />
len(doc.feed.links)<br />
pfeed = jsonpickle.encode(doc)<br />
db.create({&#8217;feed1&#8242; : pfeed})</kbd></p>
<p>outputs DOC_ID</p>
<p><kbd>cfeed = db['DOC_ID_HERE']<br />
dfeed = jsonpickle.decode(cfeed['feed1'])<br />
dfeed['feed']['title']<br />
len(dfeed.feed.links)</kbd></p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/03/storing-feedparser-objects-in-couchdb/feed</wfw:commentRss>
		</item>
		<item>
		<title>venus-ng</title>
		<link>http://philwilson.org/blog/2009/03/venus-ng</link>
		<comments>http://philwilson.org/blog/2009/03/venus-ng#comments</comments>
		<pubDate>Sat, 28 Mar 2009 00:19:38 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[syndication]]></category>

		<category><![CDATA[venus]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=991</guid>
		<description><![CDATA[venus-ng is a fork of Venus which uses Newsgator to provide both the reading list and the feeds.
This means that venus-ng will, at a particular point in time, give you an accurate representation of your currently unread Newsgator feed entries. Here is the output from the newsgator.com web aggregator and venus-ng:
 
venus-ng does not mark [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://philwilson.org/code/venus-ng/">venus-ng</a> is a fork of <a href="http://intertwingly.net/code/venus">Venus</a> which uses <a href="http://www.newsgator.com">Newsgator</a> to provide both the reading list and the feeds.</p>
<p>This means that venus-ng will, at a particular point in time, give you an accurate representation of your currently unread Newsgator feed entries. Here is the output from the newsgator.com web aggregator and venus-ng:</p>
<p><a href="http://philwilson.org/blog/wp-content/uploads/2009/03/screenshot-newsgator-online-mozilla-firefox.png"><img class="alignnone size-thumbnail wp-image-993" style="margin: 3px; border: 1px solid lightgray; padding: 1px;" title="Screenshot of newsgator.com unread feeds" src="http://philwilson.org/blog/wp-content/uploads/2009/03/screenshot-newsgator-online-mozilla-firefox-150x150.png" alt="Screenshot of newsgator.com unread feeds" width="150" height="150" /></a> <a href="http://philwilson.org/blog/wp-content/uploads/2009/03/screenshot-planet-schmanet-mozilla-firefox.png"><img class="alignnone size-thumbnail wp-image-994" style="margin: 3px; border: 1px solid lightgray; padding: 1px;" title="Screenshot of venus-ng unread feeds" src="http://philwilson.org/blog/wp-content/uploads/2009/03/screenshot-planet-schmanet-mozilla-firefox-150x150.png" alt="Screenshot of venus-ng unread feeds" width="150" height="150" /></a></p>
<p>venus-ng does not mark feeds as read on the Newsgator server when in retrieves them, although that will likely get added when I have a test Newsgator account set up.</p>
<p>It is currently a fork because I&#8217;ve had to modify feedparser.py in a few ways which probably stop it working with other data sources:</p>
<ol>
<li>I&#8217;ve changed the way it deals with passed-in urllib2 handlers</li>
<li>I&#8217;ve commented out the HTTP 401 response behaviour (since I&#8217;m passing it an HTTPBasicAuthHandler already)</li>
<li>It always passes through an additional X-NGAPIToken HTTP header containing a Newsgator API key</li>
</ol>
<p>As far as I can tell, the handler refactoring should be fine, but the 401-handling and extra HTTP header seem like a deal-breakers.</p>
<p>I have no idea how to stop the 401 handler in _FeedURLHandler() conflicting with that in urllib2.HTTPBasicAuthHandler.</p>
<p>I suspect there is a good solution in subclassing urllib2.HTTPBasicAuthHandler to provide the additional Newsgator HTTP header but I&#8217;ve not worked out some of the details yet.</p>
<p>You can get the latest source via <kbd>bzr get http://philwilson.org/code/venus-ng</kbd> - there is a sample newsgator.ini file in the /examples directory, but it relies on you already having a Newsgator account and some feeds set up.</p>
<p>Once I&#8217;d traced through the Venus code to semi-understand it, this was quite straightforward to do (deal-breaking fork-causers aside) so were Google Reader to introduce an official API it would not take long to integrate.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/03/venus-ng/feed</wfw:commentRss>
		</item>
		<item>
		<title>Sending files to Ubuntu Intrepid over bluetooth</title>
		<link>http://philwilson.org/blog/2009/03/sending-files-to-ubuntu-intrepid-over-bluetooth</link>
		<comments>http://philwilson.org/blog/2009/03/sending-files-to-ubuntu-intrepid-over-bluetooth#comments</comments>
		<pubDate>Mon, 23 Mar 2009 22:54:40 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[bluetooth]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=989</guid>
		<description><![CDATA[Out of the box you cannot send files over bluetooth to a computer running the latest stable version of Ubuntu, Intrepid Ibex, 8.10.
This is a bit of a problem for me since my main camera is my trusty Nokia N95. What you can do is send files to your phone, and browse its filesystem, just [...]]]></description>
			<content:encoded><![CDATA[<p>Out of the box you cannot send files over bluetooth to a computer running the latest stable version of <a href="http://www.ubuntu.com/">Ubuntu</a>, Intrepid Ibex, 8.10.</p>
<p>This is a bit of a problem for me since my main camera is my trusty Nokia N95. What you can do is send files to your phone, and browse its filesystem, just not receive. As you can imagine, there are some <a href="https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/283064">open</a> <a href="https://bugs.launchpad.net/ubuntu/intrepid/+source/bluez-utils/+bug/211252">bugs</a> about this. The seemingly recommended solution of installing gnome-obex-server also installs apache2 and sendmail, which seems like a bit of overkill to me.</p>
<p>Enter <a href="http://blueman-project.org/">Blueman</a>. Just add these lines to your repositories config (<a href="https://help.ubuntu.com/8.04/add-applications/C/extra-repositories-adding.html">you can follow these instructions</a>)</p>
<pre><code>deb http://ppa.launchpad.net/blueman/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/blueman/ppa/ubuntu intrepid main</code></pre>
<p>and then <kbd>sudo apt-get install blueman</kbd>.</p>
<p>A quick click on System -&gt; Preferences -&gt; Bluetooth manager (it took a few minutes for the icon cache to update for me) and you have the new manager for your bluetooth devices. You don&#8217;t need to do anything special to be able to send files to Ubuntu now, just click &#8220;send&#8221; on your phone and you&#8217;ll be asked if you want to accept the file being sent. By default the files will be saved into your home directory. There&#8217;s more information on <a href="http://blueman-project.org/">the site</a> and in <a href="http://blueman-project.org/forum/">the forums</a>. Have fun, kids!</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/03/sending-files-to-ubuntu-intrepid-over-bluetooth/feed</wfw:commentRss>
		</item>
		<item>
		<title>Money is dull</title>
		<link>http://philwilson.org/blog/2009/03/money-is-dull</link>
		<comments>http://philwilson.org/blog/2009/03/money-is-dull#comments</comments>
		<pubDate>Sun, 22 Mar 2009 23:41:42 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[houses]]></category>

		<category><![CDATA[money]]></category>

		<category><![CDATA[moving]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=987</guid>
		<description><![CDATA[I am in the process of buying my first house.
Unless you&#8217;ve already done it, you would not believe how tedious it is. You can read a lot about how stressful it is, but so far I&#8217;ve not found it very stressful, only irritating when I can&#8217;t get in touch with the bank. Other than that, [...]]]></description>
			<content:encoded><![CDATA[<p>I am in the process of buying my first house.</p>
<p>Unless you&#8217;ve already done it, you would not believe how tedious it is. You can read a lot about how stressful it is, but so far I&#8217;ve not found it very stressful, only irritating when I can&#8217;t get in touch with the bank. Other than that, it seems like an excuse for &#8220;financial institutions&#8221; (translate: black holes for your money) to send you loads of paperwork which you will have to read, check for naughty loopholes, sign, return and also send to someone else because why would any of the people you&#8217;re employing talk to one another?</p>
<p>Thankfully we&#8217;ve had the net to help us out. There are hundreds and probably thousands of sites which <a href="http://forums.moneysavingexpert.com/showthread.html?t=175653#post1887038">give advice on everything</a> from <a href="http://www.moneysupermarket.com/mortgages/">mortgages</a>, home inspections, how to <a href="http://www.propertysnake.co.uk/">negotiate</a> <a href="http://www.houseprices.co.uk/">price</a>, how to use your estate agent (i.e. don&#8217;t, just use <a href="http://www.rightmove.co.uk/">rightmove.co.uk</a> - they actually have good information on pretty much everything), the difference between <a href="http://www.philspenceronthehouse.com/podcast/">surveying and conveyance</a>, <a href="http://www.bbc.co.uk/homes/property/moving_checklist.shtml">moving</a> and so on. It is all <em>profoundly</em> boring and yet you&#8217;re somehow expected to know it all for this one purchase, starting from a knowledge base of zero, which, in the scheme of things, despite total prices, isn&#8217;t really that expensive. sigh.</p>
<p>What it certainly is, is a cash cow. No wonder the banks et al. have been hoisted with the petard of their own greed, we&#8217;ve paid around £2,000 on our house move (you have to &#8220;buy&#8221; the right to get into hundreds of thousands of pounds of debt, and you have to &#8220;buy&#8221; the right to make sure the building is, y&#8217;know, actually *as described* and without fundamental problems) and the sellers could still pull out at any moment, if they wanted to.</p>
<p>Anyway, I cannot even imagine doing all of this without net connectivity. It would have taken *weeks* just to do what can now be done in hours. The preparation alone would have been a massive timesink, and I can totally see people getting even more robbed by banks by being sold their expensive add-on insurances which are mostly much more expensive than specialist sellers (which, of course, places like <a href="http://www.moneysupermarket.com/">moneysupermarket</a> will compare for you and <a href="http://www.moneysavingexpert.com/">moneysavingexpert</a> will give advice on).</p>
<p>Hopefully you can gather from the tone of this that I think the whole charade is a big fat con, but more than that, just incredibly, incredibly boring.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/03/money-is-dull/feed</wfw:commentRss>
		</item>
		<item>
		<title>Twitter on Ubuntu - use Gwibber</title>
		<link>http://philwilson.org/blog/2009/03/twitter-on-ubuntu-use-gwibber</link>
		<comments>http://philwilson.org/blog/2009/03/twitter-on-ubuntu-use-gwibber#comments</comments>
		<pubDate>Tue, 10 Mar 2009 23:57:41 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[twitter]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=980</guid>
		<description><![CDATA[Gwibber is a native desktop Twitter client for Ubuntu. It will post updates to and receive updates from Twitter as well as a host of other services like Flickr, Facebook, Digg, can update your Pidgin status and pull in any other RSS or Atom feed you like.
It will sit in your notification area waiting until [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_982" class="wp-caption alignright" style="width: 176px"><a href="http://philwilson.org/blog/wp-content/uploads/2009/03/screenshot-gwibber.png"><img class="size-medium wp-image-982" title="Screenshot of Gwibber" src="http://philwilson.org/blog/wp-content/uploads/2009/03/screenshot-gwibber-166x300.png" alt="Screenshot of Gwibber" width="166" height="300" /></a><p class="wp-caption-text">Screenshot of Gwibber</p></div>
<p><a href="https://launchpad.net/gwibber">Gwibber</a> is a native desktop Twitter client for Ubuntu. It will post updates to and receive updates from Twitter as well as a host of other services like <a href="http://flickr.com/">Flickr</a>, <a href="http://www.facebook.com">Facebook</a>, <a href="http://www.digg.com">Digg</a>, can update your <a href="http://pidgin.im/">Pidgin</a> status and pull in any other RSS or Atom feed you like.</p>
<p>It will sit in your notification area waiting until you get some messages which it will display as pop-ups in the corner of your screen, and won&#8217;t steal focus whilst it does so (take that, <a href="http://twitterfox.net/">twitterfox</a>!).</p>
<p>It is unobtrusive, attractive and easy to use. Theme templates are just HTML and CSS. I recommend giving it a go.</p>
<p>In Jaunty Jackalope it is in the Universe repositories (so <kbd>sudo apt-get install gwibber</kbd> will work) but for everyone else you can either follow <a href="https://wiki.ubuntu.com/Gwibber">the instructions on this page</a> (which means you will get future updates) or go <a href="https://launchpad.net/~gwibber-team/+archive/ppa">direct to the Gwibber PPA page</a>, expand the section with your distro listed and grab the .deb file.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/03/twitter-on-ubuntu-use-gwibber/feed</wfw:commentRss>
		</item>
		<item>
		<title>NewsGator + Venus?</title>
		<link>http://philwilson.org/blog/2009/03/newsgator-venus</link>
		<comments>http://philwilson.org/blog/2009/03/newsgator-venus#comments</comments>
		<pubDate>Mon, 09 Mar 2009 00:50:02 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[feeddemon]]></category>

		<category><![CDATA[newsgator]]></category>

		<category><![CDATA[planet]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[syndication]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[wxvenus]]></category>

		<category><![CDATA[wxwidgets]]></category>

		<guid isPermaLink="false">http://philwilson.org/blog/?p=977</guid>
		<description><![CDATA[I recently broke the graphics drivers on my Windows Vista installation, so re-partitioned and now run Ubuntu full-time at home.
On Windows I use FeedDemon as my full-time aggregator. It has a degree of speed and polish unmatched by any other web or desktop aggregator.
This means that all my feeds are automatically synced with newsgator.com - [...]]]></description>
			<content:encoded><![CDATA[<p>I recently broke the graphics drivers on my Windows Vista installation, so re-partitioned and now run Ubuntu full-time at home.</p>
<p>On Windows I use <a href="http://www.newsgator.com/Individuals/FeedDemon/Default.aspx">FeedDemon</a> as my full-time aggregator. It has a degree of speed and polish unmatched by any other web or desktop aggregator.</p>
<p>This means that all my feeds are automatically synced with newsgator.com - a web-based aggregator which is not fast and not particularly polished. Although it might be polished, I don&#8217;t know, it&#8217;s so slow that I tend to just give up (<a href="http://nick.typepad.com/blog/2009/01/feeddemon-to-sync-with-google-reader.html">sync with Google Reader is coming</a>).</p>
<p>FeedDemon has significantly raised the bar for any aggregator I use. Web-based tools no longer cut it, in particular when I have hundreds of feeds and, at times, thousands of unread items.</p>
<p>On Ubuntu the options for a native aggregator are <a href="http://live.gnome.org/Straw">Straw</a> or <a href="http://liferea.sourceforge.net/">Liferea</a>. Both are currently undergoing rewrites. Liferea seems like the better option for me, and it has <a href="http://liferea.sourceforge.net/scripting.htm">a plugin system</a> which is appealing, but there&#8217;s no sync with any online tools.</p>
<p>NewsGator have <a href="http://www.newsgator.com/ngs/api/default.aspx">an HTTP-basd API</a> (PDF <a href="http://www.newsgator.com/ngs/api/NewsGatorRESTAPI.pdf">reference</a> and <a href="http://www.newsgator.com/ngs/api/RestAPISamples.zip">sample code</a> which requires a minor tweak to run) which is quite straightforward. It gives back data which can be consumed by the <a href="http://feedparser.org/">Universal Feed Parser</a>. Venus uses the Universal Feed Parser in planet/spider.py after fetching data to create the cache which powers it.</p>
<p>This time last year I wrote a very very basic <a href="http://philwilson.org/blog/2008/03/wxvenus">wxWidgets tool for browsing the Venus cache</a>. A modification to planet/spider.py to use the NewsGator API would seem like an easy way forward, whilst gaining all the power of the Venus filters, plugins and existing XSLTs.</p>
<p>I might just have to try that.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwilson.org/blog/2009/03/newsgator-venus/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
