Home

Advertisement

Customize
About this Journal
Current Month
 12345
6789101112
13141516171819
20212223242526
2728
Feb. 13th, 2005 @ 03:46 pm Public Scrutiny
Most people think that `free programs`, `free spirit of collaboration` are characteristics of Open Source. Those are just the advantages; the only thing that Open Source provides is something more amoral: Public availability of source, open for scrutiny.
One of the nice things about having blogged about Sylpheed Claws for 4+ years, is that it provides a good documentation of personal involvement. People will tend to say that it is coloured by personal opinions, but it is, in hindsight, more reliable than the `email du jour` where people tend to switch positions based on the length of the quote they prefer to use. For blog entries you can just go back to a date and see how you felt about something.
So with the two observations above I looked back at my old Claws case blog entry, and thought that I failed to present my case by trying to document the personal side.
With help of use of publicly available archives, here the facts that I failed to present (and there's really a lot more in the Devel Archive):
Uncredited IMAP-SSH patch (submitted by Martin Pool, of Samba) Bug #87
Discussion of poor IMAP performance (patches submitted by Marshall Rose) User ML #2770520

Privacy API reverts
Commits ML #6669557; This led to this entry in my blog. Unfortunately I can not publish related devel ML discussion.

Uncredit bugfix Commits ML #6118320; After protests in the devel ML, it was changed here.

Uncredited bugfix in ChangeLog

Commits ML #8971878; Follow up in Sylpheed Claws ML isn't pretty either.

About this Entry
Aug. 21st, 2004 @ 11:40 am Ocho X Radio
Having a great time with the 8 x Radio ("Ocho Por Radio") score of Revueltas, printed by Peer Classical Music.
The English subtitle is "Eight Musicians Broadcasting", which makes sense in a way because Revueltas wrote this specifically for radio performance.
Unfortunately no reference to his ironic "an unsolvable mathematical formula which I tried to solve by means of instruments, but whether I succeeded is up to the listener".
On paper it's a tragicomically piece: every phrase seems to end with a minor note.
Meter changes galore: I noticed 3/8, 5/8, 6/8 cycles, but not necessarily synchronised across all instrument bars.
It took a bit of time to recognize my favourite phrases, mostly in the bassoon part. There's also a nice violin part in the first part which I recognized earlier as a motif in the piece's last part.
A lovely complex score!
About this Entry
Jul. 12th, 2004 @ 12:32 pm Covering Claws Case: Blow By Blow
Back, in the last months of last year, I received some complaints about a terrible row in IRC between two developers. There was a private mail discussion between team members, and because of my real life work, I only commented briefly on this (saying "I don't understand the fuss: sort it out"). I wrote the same publicly in the blog entry here (The commenter is one of the many who contacted me about the IRC "discussion".)
I think that the relationships between members already had gotten sour: There had been incidents like a rude treatment of a team member of samba plus the inventor of POP3, both submitting patches for review; and commits that were not correctly attributed ("credited").
It got even worse...
I focused on reviewing code and fixing bugs, and describing the process in technical terms, like in this entry here, and here. This resulted in me getting in the cross hairs:

Alfons Hoogervorst <alfons@us...> wrote:
> Log Message:
> * src/folderview.c
> fix sync breakage so we don"t pass invalid pointer types

Another stupid commit.


Link here.



And another one:

On Thu, 18 Mar 2004 15:30:31 -0800
Alfons Hoogervorst <alfons@us...> wrote:

> * src/toolbar.c
> call summaryview_delete() instead of messageview_delete()
> * src/messageview.c
> disable messageview_delete()

What did you smoke before you made this change?


Link here, and for a follow up in the users ML, see here.

The rudest thing that happened were two reverts. Both of them were done without prior consultation with other team members - it's telling that the same kind of actions caused the IRC row.

Here's the first:

Modified Files:
clamav_plugin.c
Log Message:
remove gui code from clamav_plugin.c


Link here.

This change did not remove "GUI code" (it removed a warning). But more agravating: There was a patch lying in the users ML for a week, so instead of doing a revert, any (ofcourse there was none) discussion about the merits of the patch would have been more appropriate than waiting for a commit, and reverting it without notifying the author. The person reverting the code came up with a blatant white lie: He had no time to read the patch. Not in a week's time, a mere two or three lines.

Remember: reverting is a tedious process.

Here's the second one:

Modified Files:
imap.c
Log Message:
0.9.10claws30

* src/imap.c
o NULL is a valid GSList

Link here.

This one is more tricky. You have to see the original commit, which is here.

First of all, the text NULL is a valid GSList only applies to the last chunk of the reversal patch. The other two deal with the actual reversion: In my commit I zeroed a pointer in a function, where the revert moved the initialisation before the function call. In an environment with stable APIs, that anticipate buggy behaviour, my patch was the technically correct solution.

All these symptoms (the IRC row, the "name calling" incidents, the reverts without consultation), were ofcourse topic in the developer's ML. There were various proposals, one of the offenders even proposed having module ownership - which causes ofcourse the problem with the reverts.
The problem is not code ownership and deciding which commit stays or is backed out, but communication, graciously pointed out by me and other experienced team members.

The lack of communication also was behind my publishing of (my own) mails in the Claws users ML:

Lo,

> > There was no agreement on that at all.
>
> BTW, if anyone else is reading this, there was agreement,
> it just didn"t have the "alfons stamp of approval" on it.

Well, well, well.

Good, take a look at this (from the claws developer"s list):

http://hoogervorst.dyndns.org/~alfons/weblog/claws/claws-request-1.html
http://hoogervorst.dyndns.org/~alfons/weblog/claws/claws-request-2.html

Both of my requests were not answered; so if there was an agreement,
this says something about the lack of communication, which I already
hinted at was at a loss (clues: reverts without prior consultation,
commits that broke stuff badly, name calling, wars on IRC.)

It"s not about "alfons" approval stamps", because as the project
founder I"ve been very easy on the developers. You still remember how
the project got its name, right?

Bye.

PS. Yesterday, I resigned from the development team, and I wish the
developers well with their work on claws. Perhaps as an objective
bystander, intimately known with the sylpheed and claws development
process (because I remember it worked great and fine in its first
years), I can even make suggestions for the better.

--
Ecuaci?n algebraico sin soluci?n posible,
a menos de poseer profundos conocimientos
en matem?tica - Revueltas (Ocho Por Radio)


Link here.

I did get (belated) responses on my request for clarifications, from one person to be exact.. They ranged from funny personal attacks, explanation of a new decision process, vehement denials, and an admission of something I already suspected.
However, no response on WHY the user agent string was changed, and on WHAT grounds.

Miscommunication I call that.

About this Entry
Mar. 14th, 2004 @ 01:16 pm Bits
Saw the following thing in sylpheed-claws source code:

  guint32 low, high;
  .
  .
  .
  sscanf(*range, "%u:%u", &low, &high);

In 99% of the cases, constraining the bit length of a type is not necessary at all. The 1% case is when interfacing with system layers, but even in that case you need to be aware that C and the C standard library don't assume anything about the bit length of a type. (guint32 happens to be an unsigned int on 32-bit i386 architecture: this is a bug waiting to strike back hard with other archs around the corner.)
About this Entry
Jan. 24th, 2004 @ 10:06 pm Waiting for SF CVS

Waiting for SF CVS, but at least I can connect and cvs update, though it is quite slow.
I also fixed yet another bug in my local copy: bug report, "sylpheed 0.9.8claws42 crashes on some messages." The problem is a NULL pointer dereference in procmime.c. Offending code in bold:


  g_strstrip(hentry[5].body);

  if ((hentry[5].body != NULL) &&

    (sscanf(hentry[5].body, "%d.%d", &mime_major, &mime_minor) == 2) &&

    (mime_major == 1) && (mime_minor == 0)) {

Actually, the bug could have been prevented if the developer knew how the sscanf() function works: The g_strstrip(), to remove a string's leading and trailing white space, is not necessary because the sscanf() function discards whitespaces in the input string.

About this Entry
Dec. 7th, 2003 @ 01:55 am Sylpheed Claws Disagreement
For the first time there's quite a row (minor but still discomforting) between claws developers: One contributor's commit was reverted in a slightly blunt way.
I just got home from a nice evening, so a few notes before getting some sleep:
  • Can we please get along?
  • Also, I don't see what the fuss is all about. If something breaks, give the guy at least some chance to fix it or defend his work on technical grounds. In public, please.
  • I'm more worried about the current state of CVS, which is quite bad, with lots of code being added and the code not looking too simple.
About this Entry
Jun. 27th, 2003 @ 07:58 pm Offline for a few hours / days
Will be offline for a few hours or days, because I need to configure my new PC...
About this Entry
Jun. 12th, 2003 @ 09:05 pm Here.
Here.
About this Entry
Jun. 2nd, 2003 @ 02:27 am Okay, done
Current Mood: amused
My new blog is set up here
6
About this Entry
Jun. 2nd, 2003 @ 12:50 am This way...
No that way!
In the mean time I wrote a livejournal to movabletype convertor.
6
About this Entry
Jun. 1st, 2003 @ 11:32 pm Yuck
The only script I found for converting LiveJournal to MoveavbleType does an ugly job. I think I need to do it myself.
About this Entry
Jun. 1st, 2003 @ 09:20 pm Movable Types
I have been slowly moving to a Movable Type system. I'm almost ready opening the firewall for the http port. I'm not leaving the computer on long: Probably about 12hrs a day. (Mainly because my current PC is rather noisy.)
MT is by the by a nice system. Worth the trouble going through installing Apache.
7
About this Entry
May. 31st, 2003 @ 11:54 am XFree again
Things that I need to do after the big upgrade:

  • Make libfreetype.so* point to the correct freetype library (why doesn't XFree find the correct one? It doesn't create a freetype library AFAIK.)
  • Make fontconfig's configuration include lucida and helvetica "families"

Am I the only one who thinks that font handling and configuration has degraded in XFree 4.3?
Update 1. Fixed case 1: /usr/X11/lib/libfreetype.so* point to /usr/lib/libfreetype.so*.
No I need to find out why Helvetica and Lucida aren't mapped to Verdana...
Update 2. Recompiled new versions of Xft, Xrender, fontconfig and render (available at fontconfig.org). As a result rebuilding QT & KDE 3.1.2 too...
8
About this Entry
May. 31st, 2003 @ 10:11 am First XFree 4.3 nags
My venerable GDM seems to hang up when trying to log out.
But then, I can set up cool cursors. I noticed some small changes in the true type rendering. It's clearer. (No, I am not making this up.)
8
About this Entry
May. 31st, 2003 @ 09:46 am Hello World
alfons@proteus:~ > xdpyinfo | grep version
version number: 11.0
XFree86 version: 4.3.0

There is a problem though with KDE 3.1. Konsole shows random data. I switched to gnome-terminal for now.
8
About this Entry
May. 31st, 2003 @ 03:15 am linuxisms
I wanted to recompile my system's linux kernel, but did a make distclean before backing up my old .config. I was lucky to have it backed up somewhere else.
After recompilation I stared for several minutes at vague unresolved externals in module module errors. For some reason depmode failed. After some time I realized that depmode used the current kernel's System.map. (I should have typed depmode -aev -F /System.map).
Anyway, everything should now be set up for installing XFree 4.3. To be concluded.
8
About this Entry
May. 31st, 2003 @ 12:02 am Re: World
Fri May 30 23:57:48 CEST 2003

Full build of XFree86 version 4.3.0 (27 February 2003) complete.

By the by, according to my PC it's now
alfons@proteus:~/Desktop/DOWNLOADS/XFREE/xc > date
Sat May 31 00:01:18 CEST 2003

8
About this Entry
May. 30th, 2003 @ 11:01 pm Spare FPS to burn?

Look at all the games supported...
About this Entry
May. 30th, 2003 @ 10:06 pm World
make World 2>&1 | tee xfree-compile.log

This is the third time I'll build XFree. After compilation (which will take approximately 1h:30m), I need to tear down the system:
  1. Stop the network layer
  2. Remove the xdm call from the init scripts
  3. Backup the entire old XFree directory (cp -dpR X11R6/ /opt3/X11R6) and the several configuration files
  4. Install the new version in the old XFree directory
  5. Reboot
And then test for a few days if this is stable enough.
I don't hope I need to recompile QT. That thing is nightmarish to compile. I also need to remember to check for fontconfig problems (but this is only a GTK2 issue for now).
About this Entry
May. 29th, 2003 @ 07:24 pm Backing up
As a preparation I backed up this journal using LJBackup. (Pretty reassuring that you can back up a LiveJournal.)
I'm also building GNOME 2 from scratch and see if it is still useable...
Also rebuilt freetype, so I assume I can go on installing XFree 4.3.
About this Entry