Implementing Democracy

Democracy is a cross-platform video podcast client. It integrates a large number of functions, including searching, downloading, and playing videos. Thus, it is a large-scale application integrating a number of software libraries, including a browser, a movie player, a bittorrent client, and an RSS reader.

The paper and talk will discuss a number of techniques used, including using PyRex to link from python to C libraries, using a web browser and a templating system to build the user interface for cross-platform desktop software (including a different web browser on each platform), and our object store used to keep track of everything in our application, store our state to disk, and bring updates to the UI.