29 November 2004

Bugzilla Etiquette

Now I know that we want people to report bugs, etc., but some people just do not get that those of us working on Open Source projects are mostly volunteers who give their spare time to fixing the issues they happen to report. Today, I was dealing with this entry in the AbiWord bugzilla, which was assigned to me. I know that in essence the guy is trying to be helpful, but his tone just rubbed me the wrong way. There should be such a thing as a Bugzilla etiquette for all to follow; this is what I think it should be:

1. Be courteous

We appreciate you taking time to report bugs, please appreciate our efforts too.

2. Avoid emotive language

Bugzilla is about facts; you never know, perhaps the guy who will be asked to deal with your report is having a bad day, bad week, bad month, and what you say could just touch a raw nerve: we appreciate your time, appreciate ours.

3. Avoid sweeping judgments

OK, so you are having a problem, perhaps even a serious one, but hey, we want to hear that our project sucks no more than you want to be told that your life sucks; if you really think our project sucks than go somewhere else: you are wasting your time, do not waste ours.

4. See if someone has not already reported your problem

Please use the Bugzilla query page to see if your problem is not already logged. That is not much to ask; if you cannot spare the time it takes to help us, we might not want to spare the time it takes to help you.

5. Give us something to work with

Your report needs to be specific: this is, step by step, what I did; this is what happened. If you cannot be specific enough so that you yourself can reproduce the problem following your bug report then either need to spend some more time to find out what the cause of the problem is, or do not report it: our time is just as precious as yours, let’s not mutually waste it.

28 November 2004

Of trees, this time of the notional kind

Spent most of my free time this weekend working on the MergeDocuments feature of AbiWord. The original implementation was really not meant seriously, so I disabled it for the 2.2 release. The new implementation is going to use the XyDiff algorithm and to utilise it to its best, some changes to the piecetable are needed. I have got these ready now, but the commit will need to wait until after the 2.2 branching.

I need to implement the XyDiff from scratch, because the available GPL implementation (a) uses C++ std lib, which we do not allow; (b) it has additional dependencies we do not want; (c) it is designed to read in an xml file, while I want it to work with our piece table instead.

XyDiff operates on the xml tree, and so to start with, I decided to implement a class template for AW that would allow us to access data stored in a linear stream in a tree-line fashion (traversing over branches, or siblings, etc.). Committed the first version of it earlier today (ut_tree.h).

With the PT changes in my local tree and a generic tree template I can now start working on the XyDiff algorithm itself; it all depends on how much time I will have in the coming weeks. Things are getting busier at work, and most of the days when I get back I do not have the energy for much. But the semester will end in 3 weeks time !!!

I have planted the last few bulbs this afternoon, and started training my new climbing rose. There is not going to be much to do in the garden until the spring now (although the very warm November caused some bulbs that vere not supposed to come up until February/March to start shooting up; I hope they will survive the winter — I could add here some cliche about global warming, but will not).

The rest of tonight I am going to spend with a book.

23 November 2004

The trees have landed, wrapped in lies

Well, my trees arrived sometime today (found them at the back of the house). Unfortunately, I was not able to leave work early enough to plant them tonight; will do that first thing in the morning. It became clear that the chap I spoke to last night at the AmTrak depot lied to me about the reason why the package was not delivered, claiming there was not address, just a name, on the label. In fact, it is quite clear that the handwriting on the label traces original printout. I really cannot stand being lied to — if people screw up why do not they just say so? I am not sure what to do about this, but really do not feel like leaving it alone.

22 November 2004

More on Asserting

Well, the assert code proved little trickier then anticipated. First of all, the new dialog had to be made ‘task modal’ otherwise mouse movements over our parent windows resulted in messages pumped the app que, and in some cases these could generate more and more assert windows (when I got 300 of them at one point, I realised it could not be ignored); but with some inspiration from the WINE list, this could be worked around — that is the beauty of Open Source, the learning curve can be so much steeper. And so finally, the new assert is much more usable than the old one, or at least that seems to be the IRC consensus.

Apart from struggling with the assert, I had to assert myself with a courier company, which was supposed to deliver my trees on Friday, and they still did not arrived. They eventually found the package in their warehouse, so hopefully tomorrow; just hope the fruit bushes will survive the delay, and the ground does not freeze by then.

21 November 2004

Taking the ass out of the assert

Spend some time over the weekend designing a custom assert handler for the Windows version of AbiWord. The default win32 implementation corrupts memory, probably using a sprintf without checking buffer boundaries, or something like that. Real pain in the ass, if you pardon the pun. The new assert handler is a bit smarter too, allowing to disable a particular assert for the rest of the session. As soon as the AbiWord files are tagged for the forthcoming release, will commit it into the tree. (It will be good to have this new version of AbiWord out; much work has been done since the previous major release, both in terms of features and stability and we have a good application there.)

We had a couple of cold days this weekend and I am glad that the brief freezing spell is over for now; I have some fruit trees coming this week that need to be planted, and quite apart from that frost is a nuisance when it comes to the commuting. But on the other hand, couple of weeks of hard frost and we could get some winter climbs in soon — some people are not happy no matter what.

Well, the weekend is nearly over and a busy week is ahead, logging off for now.