Ruby and memcached in Bristol

I have rather hastily promised to do a talk about memcached at the Bristol Ruby User Group meetup on Thursday evening (we’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’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 Passenger (specifically, with nginx) as well as showing me why all my code is horribly wrong. Come along!

HTML rendering is hard

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’know? It doesn’t support CSS.

This means that my desktop aggregator does not work very well on Linux, which is currently my primary use case.

It’s possible to use wxMozilla but that was seemingly abandoned in 2005.

It’s possible to use wxWebkit but the instructions for that start with “check the source of webkit out of svn” and ends with “the Python bindings don’t work yet”.

GTK is an easy-to-use toolkit for writing desktop applications. It is nominally cross-platform (but I wouldn’t want to push the matter). It can use WebKitGtk.

I appear to be at a frustrating fork in the road.

CouchDB in desktop applications

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 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.

My initial plans were to use SQLite 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 on its ass, but again the development effort is much much higher than that with CouchDB).

So, what to do? I suspect that for the moment I’ll go about getting CouchDB all nice and integrated, but it doesn’t look like it’d leave me with an application people can download, install the dependencies, and just run, does it?