Archive for June, 2005

Claws 1.9.12 feedback

Wednesday, June 29th, 2005

I gave a look at various places to see which kind of feedback the last release got. So far, not a single crasher has been reported, nor any outstanding bug. Cool.
People wrote:

  • How about [ghostscript-viewer] for Sylpheed-Claws 1.9.x?
  • I still have two major wishes regarding cut-n-paste and reformatting. [...] I’m not trying to nag, but can you please also answer my wish-list question?
  • Will there be a binary release of 1.9.12 for Debian experimental branch?

Not… disappointed… at all. ;-)

Ok, we already got some nice feedback:
<ticho> mm, claws truly rocks now
<ticho> whoa, guys, did you feed the new claws some steroids or something? it’s much faster with larger amounts of emails in a folder.

And there, too.

Sylpheed-Claws 1.9.12 and 1.0.5 Unleashed!!

Monday, June 27th, 2005

Paul beat me to the blog announcement. But he forgot to link to the release notes :-)

I’m quite happy about this release. I hope people will be too.

libgnomeprint example

Sunday, June 26th, 2005

Given that I had a really hard time finding a simple example on how to use libgnomeprint and libgnomeprintui, here is a little hello-world type example for it.
libgnomeprintexample-.tar.gz. (Yes, it’s quickly thrown together so there’s not even a version).

Just type ./configure && make && ./libgnomeprintexample

And let’s hope this will be useful to someone :-)

Printing in Claws

Sunday, June 26th, 2005

Sylpheed-Claws’ current printing system sucks hard. It works with a command, so if you want to get something nice-looking, you’ve got to elaborate something like “txt2html %s | html2ps | lpr”. Quite user-friendly. If you just use “lpr %s”, you’ll get a nice sheet of paper straight out the eighties, with wrapping in the middle of the words, nice utf-8 stuff instead of extended chars, and so on.

So, I spent a few hours googling for documentation on libgnomeprint and libgnomeprintui, found next to nothing. The API is not really straight-forward and an hello-world type example would have been nice to have.
This morning, probably after having googled for a magic combination, I found that Tomboy had a print plugin with an API that I liked at the first glance:

void gedit_print(GtkTextView *text);
void gedit_print_preview(GtkTextView *text);

After having taken the four relevant files from their CVS and modified our configure.ac and Makefile.am, this worked perfectly nicely in less than one hour.

Thanks Gedit authors, thanks Tomboy authors!

As we’re in feature freeze, this will be commited later. If you want to try it sooner, I’ve put a patch there.

The obligatory screenshot

Optimisations

Friday, June 24th, 2005

The rule “when it’s really slow and shouldn’t be, the cause is really simple” verifies once again. Yesterday evening, I thought I’d fix Sylpheed-Claws’ “Select All” which was really slow. It was fast on a ~100 mails folder, took 11 seconds on a 5000 mails folder, and I killed it before it finished in a 25000 mails folder. Looked exponential, so I thought gtk_clist_select_all walked a list in the wrong way (like appending to a GSList instead of prepending). I downloaded GTK+ source and proceeded to reimplement gtk_clist_select_all in our summary_select_all. Sadly enough, the GTK code seemed optimized enough. No blatant O(N^2) list walking…

But looking at the gtk code, I seen gtk_clist_select_all selects each row one by one, which has the effect of firing an tree-select-row event. And our summary view registers such an event handler, in order to do what should be done when you select a mail. Our summary_selected callback wasn’t buggy enough to display mails when the selection was multiple, which would have been a good reason to be slow, but it did call summary_status_show at the beginning, in order to update the “X items selected, N kBs” label we have. Of course, to do that, summary_status_show walks the selected list!
As summary_selected returns early without calling anything when the summary view is locked, the optimisation finally looked like:

+ summary_lock(summaryview);
  gtk_clist_select_all(GTK_CLIST(summaryview->ctree));
+ summary_unlock(summaryview);
+ summary_status_show(summaryview);

And voilà, instant-select-all in the biggest mail folders I could find.

Something things are more easy than they look like…

sylpheed.org domain

Wednesday, June 22nd, 2005

So, thanks to Darko, we’ll be getting control of the sylpheed.org domain. It’ll be hosted by my friend Yann on develog.com. I just finished transferring the webpages and databases… The rest (CVS, Mailing-lists, etc) will stay on sourceforge. So, soon enough, we’ll effectively switch servers. The only thing that’ll be visible is that http://claws.sylpheed.org/ won’t be an URI redirection anymore but the real URI. Other than that, I’ve set up a planet as per Ricardo’s good idea. It’s on the new host at http://planet.sylpheed.org/ . if you want to get a peek early, just add
83.143.18.92 planet.sylpheed.org
in your /etc/hosts file. Also, if you’re a Sylpheed(-Claws) developer and have a blog, feel free to mail me to get your feed added.

Wow!

Monday, June 20th, 2005

Wow, Paul has a blog :-)
Nice :-)

Also, and I was sure it would happen, 2.6.12 has been released just the week-end during which I didn’t spend a single minute on the computer. Bah, I’ll test it later.

Little side note concerning my blog: one of my coworkers told me he didn’t comment because he doesn’t feel like commenting in English. I just wanted to note that I still understand French too, and don’t mind at all if some comments are in French!

Rain

Tuesday, June 14th, 2005

Weather applet

That, since yesterday. How are my coworkers who only recently arrived in Toulouse supposed to believe me when I tell them the weather is great here?

IMAP-based diplomatic incidents

Thursday, June 9th, 2005

I’m currently in the process of fixing Claws’ IMAP code, which

  • blocks
  • sucks in a more general manner, especially wrt speed

Fixing blocking is painful but simple. I chose the multithread way, look at the big functions that freeze the interface and move their work into an helper thread (while the main thread does gtk_main_iteration()s). With help from Hoa I managed to get this working quite nice. Now there still are some functions to fix.

Fixing the suckage, on the other hand, is less simple. I actually have to try and understand the IMAP4 protocol, something I managed to keep away from since a long time.

This of course, takes time, especially when asking for tests, and so it’s been two evenings I spent almost only on my iBook. Which makes Clo unhappy – she hates going to bed alone. Such diplomatic incidents must be taken into account and the time needed to handle them should be substracted to the time spent in front of the computer – not added – or things could get worse. I love her anyway :-)

Hell freezes over

Tuesday, June 7th, 2005
  • Debian Sarge is out since today.
  • Apple will switch to Intel processors by 2007. The marketing guys are gonna get a hard time when thinking about future ads: “Oh wait, we’re not supposed to bash Intel anymore”! I wonder if they’ll start providing mice with more than one button… ;-)

Clo and I spent the week-end in the middle of nowhere (Glénic, Creuse – probably 200 inhabitants!) with my parents (and sisters) and hers. The official goal of the week-end was to present our parents, who didn’t knew each others yet, and to talk about “serious wedding stuff” (aka, discuss funding).

That was nice. On the contrary to this photo’s suggestion, the weather was almost perfect, we got enough time to do all of what we wanted, and our respective parents liked each others. (this will help, I’m sure).

news for few, stuff no-one cares about