The current state of Mitter

I just tweeted about this, but better put here so everybody knows:

Mitter trunk (from SVN) is broken. Broken, broken, broken.

Why? It all started when I realized that all interfaces where saving the last seen tweet and last seen reply. Also, to cut the seen replies and tweets, the interfaces were actually removing the seen ones from the result set. In other words, we were requesting the full page of tweets/replies and then ignoring the ones whose ID was below the last one the interface displayed. Twitter supports a since_id parameter, which was created exactly for that. Also, we were requesting just the first page, so if you didn’t open Mitter for a while, you’d not see some tweets.

Also, for a long time, there is a hack to make console interfaces work properly. Due the nature of the graphical interfaces, we need to create a thread (kinda like another process, if you don’t know what a thread is) so when requesting data the interface won’t freeze. That’s not an issue for console interfaces and, to make them work properly, I had to add a hack, which make the code even uglier. The removal the thread broke the GTK interface completely… for now; I have plans on how to fix the GTK interface and they will be added as soon as I fix the network bit.

During this time, there was another thing bothering me: The amount of hard-coded values. The GTK interface, for example, only keeps 60 tweets in the list. Problem is, if you want to keep a bigger list, you’d need to change the code directly. That’s not a good solution to me, so the idea was to move everything to the config file, which pointed to the second big design issue: The options were floating all around the code. Keeping option values coming from the command line and from the config file was a mess. For that, I decided to create my own OptionParser (the command line option parser) and ConfigParser (the config file parser) combinator. Yesterday I finally finished ConfigOpt and I intend to move all Mitter options to use it (which will make our code cleaner and hard-coded values free — or so I hope.)

And, since I’m working in all that, I decided to start paving the road to multiple network support. A tiny bit of it is already there, but there is also a long way to reach the final line.

There is still a long way to finally make Mitter stable again. But we’ll get there, I promise.

5 thoughts on “The current state of Mitter

  1. i was wondering, would it be possible for mitter to open the twitter page of a user? maybe in the right click menu or something?

  2. Well, that’s one thing interfaces should take care of. On the other hand, we are about to drop the multiple-network support, so URLs would be different. At this point, I’m not sure how to do that for every network.

  3. it seems i have run into a bug with mitter (and its not the only offender).

    basically its using the wrong url to grab the avatar, resulting in it downloading the full size image that the user uploaded, not the resized version seen in the profile page or the even smaller one used in the stream of entries on ones home page.

    end result, if someone uploads a very large base image, it will push all text areas out of view, even in a full screen mitter window!

  4. It’s a known problem with the Twitter side. The friends_timeline sends just one URL for the avatar and they are not resizing it. They fixed it, but there is no word about old (non-properly-sized) images yet.

    We have a patch in the issue database (http://code.google.com/p/mitter/issues/list) but, since the trunk is still shaping up for a release, I didn’t apply it yet. It will be there in the next 1.0 alpha release.

Comments are closed.