A blog by Jonas Finnemann Jensen

August 26, 2009
Working on Pwytter in Google Summe of Code
Filed under: Computer,English,Linux,Pwytter by jonasfj at 12:44 am

This summer I’ve been working on Pwytter as a part of Google Summer of Code. My project was to separate the backend from the frontend and make a new user interface with PyQt. In my original propsal, I also wanted to do a GTK frontend, however, this was dropped in exchange for a more polished Qt frontend (I do have the basics for a GTK frontend lying around, if anybody is interested, but it’s far from usable).

While writing a backend for Pwytter I also created some abstractions for micro-blogging services, so that Pwytter supports multiple accounts and multiple services (currently Twitter and With this new backend all the messages are also cached in an sqlite database, enabling Pwytter for work while offline.


I also added theming support to the Qt frontend I wrote for Pwytter, above is a screenshot of Pwytter running the “Twitter-like” theme (as you can see have also be translated, so far only to Danish). Pwytter uses WebKit to display tweets, users and other types of content, thus themes can customize the GUI using HTML templates and Qt stylesheets. Documentation for writing such themes can be found in the project wiki, I plan to write an article on subject when this Pwytter branch is released. So far this Pwytter branch is still under development, and interested developers can find install instructions in the project wiki.

August 25, 2009
Framework Design Guidelines
Filed under: Computer,English by jonasfj at 6:50 am

Framework Design Guidelines

A few months ago I felt like I needed to get better at writing clean reusable code, so I impulsively bought a book called Framework Design Guidelines, Conventions, Idioms, and Patterns for Reuable .NET Libraries. Now having read the thing I must admit that I found large parts of it rather boring. The book is mainly presented in “Do”/”Do not” form, however, interrupted by annotations that discusses these guidelines, and gives examples to where these are followed or forgotten in the .Net Framework.

Apart from the annotation this book is mainly about usability of .Net libraries, conventions and guidelines for the public interface of a .Net library. This book only briefly touches a few design patterns, but apart from these it’s all about the public interface and how to design this in order to facilitate extensibility. So if you’re look for coding guidelines on how to design the public interface for a .Net library this is the book. However, I was probably a bit to impulsive, so I’ll be reading Design Patterns next…