The Preferences Toolbar

As many of you know, I used to develop a XUL browser extension known as the Preferences Toolbar. The original idea for such a thing was not mine, but as the person who thought of it lacked either the knowledge, time, or will to actually implement such a thing, I took it upon myself to do so.

The original preferences toolbar had ten or so built in preferences, displayed as checkboxes on the toolbar from which the corresponding mozilla preference could be enabled or disabled. I was completely taken back by how successful it was. I started getting dozens of emails every week telling me how great the toolbar was. I heard from not only programmer and mozilla hackers, but also from PhDs and corporate executives, people who called the PrefBar things like “the best extension ever written,” and “this is what I have been waiting for since the Internet was invented.” The PrefBar was even featured on the cable network TechTV during a show about new technological trends. This was, needless to say, the closest I ever got to being famous.

The second version of the PrefBar was a complete rewrite. This time the toolbar was completely customizable, with dozens of checkboxes, buttons, links, menus and other widgets configurable to do just about anything. In addition to the over two dozen built in buttons, users could add their own through an easy to use graphical interface. (This was, I should point out, before customizable toolbars existed in what would later become the Firefox web browser; that made the PrefBar the first fully customizable XUL toolbar ever built).

If the response to the original PrefBar had been big, the reaction to version two was huge. I believe it was, for a time, the most downloaded XUL extension in existence. Although plagued with naming problems, the Phoenix (later Firebird, then Firefox) project was starting to take shape, mozilla’s market share was creeping up, and it looked like everything we had been working for for so long was about to become a reality.

As luck would have it, it was right about that time that I had to take an extended hiatus from mozilla and XUL work. It was in the Spring of 2003, and I had just found out that I would shortly be leaving for Brazil, where I would be living until the latter half of 2005. I don’t need to go into the details here, other than to say that I knew that I would be unable to do any work on any of my then existing projects (including the PrefBar) during all that time. Knowing how popular the extension was, and how many people relied on it for everyday web browsing, I wanted to try to make sure that PrefBar development continued in my absence.

I understood then, as I understood now, that if I were to put the PrefBar in anyone else’s hands, it probably would still be around when I got back, but it wouldn’t by mine anymore. Still, I felt that, for the good of the world, that was the right thing to do. I did not, however, feel comfortable leaving the tool in the hands of any single other person that I knew. Instead, I created a mozdev project called prefbar.mozdev.org, moved the PrefBar source over to it, and then began asking around to see if I could find someone who wanted to be the project leader in my absence. With only a few days left before my departure (from the US and from the mozilla world), I found someone willing to fulfill that role. I do not know his real name, but he went by the screen name clav. I also found one other individual (although I have since forgotten who it was) who was interested in working on the project.

In one of the last emails I sent him before I left, I told clav that he need not consider that the PrefBar was still mine. I knew how difficult it would be to maintain a project always wondering if the person who started it would like or agree with the decisions you were making or the direction you were taking, and I came to the conclusion that having such issues would be detrimental to the PrefBar project. Rather, I told him to do what he saw fit until I returned, at which point we could (if he still wished to help with the project) work on it as a team. Clav thanked me for my sencerity, and I left for South America hoping that all none of the thousands of PrefBar users out there would be disappointed or left without a compatible update during my absence.

Now, fast forward two years. Upon returning from Brazil, I looked up the PrefBar project, and was pleased to see that several new versions had been released. It appeared that things were going exactly as I had wanted them to. I did not, however, immediately attempt to contact clav or the other developers, because I was still in the process of getting things setup in my new house, new computer, new job, etc. I had plans to return to PrefBar work as soon as possible, my goal being the first part of 2006.

Now, here’s where it gets interesting. About a month ago, I started getting emails and comments on my blog asking when I would have an updated PrefBar that was compatible with Firefox 1.5. Even though I had not yet attempted to get back into the PrefBar project, people had apparently remembered that I was the one who started the tool and sought me out to ask about future updates. One individual even said that his wife, who is visually impaired, cannot normally use the Internet without the PrefBar’s ability to quickly turn on and off website defined colors.

I returned to the prefbar mozdev page and saw that there had not been a prefbar update since September. I also noticed that clav was no longer listed on the project members page. Instead I found only my own name, and one Manuel Reimer (who I did not know). Not being in contact with Mr. Reimer, and not knowing if he was even working on the PrefBar anymore, I grabbed the latest PrefBar build from mozdev and set out to make the changes necessary to achieve compatibility with Firefox 1.5. This wasn’t as easy as it would have been two years ago, since even though the PrefBar functionality had remained mostly unchanged, much of the backend code had been rewritten. However, I was able to come up with a version that worked, even though it was very much a hack, not a real quality release. I then sent an email to Manuel Reimer, using an address that I found on mozdev, telling his who I was, how I had hacked together Firefox 1.5 compatibility, and asking that we get together some time to talk about the status and future of the PrefBar, in order that I might be able to get back onto the development team.

Three days after having posted my PrefBar update hack, I still had not received a reply to the email I had sent to Mr. Reimer (although he later said he sent one, so it’s possible it got lost somewhere). I also noticed (when someone pointed it out to me in the blog comments) that there was now an official PrefBar release for Firefox 1.5 on the mozdev project page. Realizing that this release was likely of much higher quality than mine, I posted to my blog again suggesting that everyone download that build instead of mine. I also sent another email to Manuel Reimer, letting him know that I wanted to start working on the PrefBar again (hopefully in cooperation with him, and anyone else that might have been working with him), and suggesting that we get together on IRC to talk about it.

This time, I got a reply from Mr. Reimer. In response to my saying that I wanted to work on the PrefBar team with him, he wrote the following:

If there is one thing I don’t need now, then it is someone who wants to get credit for the work I did. This was the biggest fear I had the whole years when I did many hours, days, weeks (months?) of work for PrefBar. Currently anything works well and PrefBar development has beenalways fun. (I hope those sentences don’t sound too hard. I’m german and my english isn’t perfect. And I want to be frank with you). Currently I’m the only one who works on PrefBar. With update to 3.x I had rewritten nearly every line of PrefBar code. This is also the reason why my name is on most files as “Initial developer”.

Through this email and a very long conversation IRC later in the day, I learned a bit more about Mr Reimer and the PrefBar project. I seems that shortly after I left, Manuel found the mozdev project and contacted clav asking to join in as a developer. This was done, and he started fixing bugs and adding features. Shortly thereafter, clav (for reasons I do not know) left the project, leaving Manuel Reimer as the sole and only developer. For at least the last year and a half, Mr. Reimer was serving as the owner of and only person on the PrefBar project. As such, he had during this time full power and control over all new features and code that went into the tool.

Manuel, of course, had not been involved in the conversations that clav and I engaged in when I first started the mozdev project. He had not heard my promise to not attempt to forcefully “take back” the prefbar upon returning, nor had he made clav’s promise to work on it with me as a team when I eventually did so. He likely knew very little about me other than the fact that I had started the project, developed it for several years, eventually left, and that I was due to return in the fall of 2005. Through conversing with him on IRC, I learned that Mr. Reimer had gotten the idea that when I returned I was going to attempt to do exactly what I had (in reality) explicitly promised not to do, that is, attempt to kick out other developers and run the PrefBar myself. His comments to me about not wanting someone (that is, me) trying to “take credit for the work he did” was based on this belief and opinion about me.

I must say explicitly that I am not the person Manuel thinks I am, nor am I trying to do what he (apparently still) thinks that I wish to do. I am not trying to “steal back” the PrefBar for myself, nor am I trying to get credit for any of the work that he had done on it in the last few years.

I intend to retain my side of the bargain, but I expected that the other side of the deal would be maintained as well. The problem, however, is that Manuel Reimer, I now know, has no interest in working on a team with anyone. After almost two years of having full power and control over the program, he does not wish to give up any of that power to anther team member. He suggested that I could work on the PrefBar project, as long it remained clear that the PrefBar was “his” now, and that he would have full authority to make all decisions regarding any and all important issues. In other words, I have been invited to return to my old project, as long as I do so under complete subjection to the will and ways of Mr. Manuel Reimer. My suggestion that, with a little empathy and humility on both sides, we could work as equal partners, 50-50 if you will, was rejected, with him insisting that someone had to be in charge (”every project needs an owner”) and (obviously, since he’s had it to himself for so long) that owner should be him.

I am now in somewhat of a difficult place, not knowing what would be the best or correct thing to do in this situation. I find the way I have been treated by Mr. Reimer to be more than a little bit impolite and inconsiderate. I understand and appreciate the much work he has put into the Preferences Toolbar in the last few years, and am in no way attempting to take credit for this work, nor prevent him from continuing to do so in the future. I am aware also that his lack of advanced English skills makes it more difficult for him understand the points I am trying to make, and easier for him to misinterpret what I say so that it falls in line with the idea of me that he currently has in his head. However, I do not think it should be so difficult for him to understand that as the creator of the program and of the mozdev project, I do have some right to expect that the agreement under which the latter was originally organized be maintained, the which agreement created a project comprised not of one totalitarian ruler and his subjects, but a team of equal partners. I maintain my belief that, with a little respect, empathy, and humility on all sides, such an arrangement is not only practical, but the best way of so working.

I appeal therefore to the wise readers of this blog for opinions and suggestions. What would be the correct thing to do in this situation? Should I continue my attempts to convince Mr. Reimer to accept work as a team, agree to work under his authority, or initiate a fork of the project, allowing myself and Mr. Reimer to go our sperate ways and develop two different tools according to our own skills and priorities? The last option is one that I wanted (both two years ago and today) to avoid at all costs, but it seems that it may soon by the only one left. I will say, however, that if there is a fork, I will insist that the name “PrefBar” and the prefbar mozdev project I started two years ago remain with me (along with any other developers that wish to work on the team).

In saying all this, I do not wish to appear rude, power hungry, or false in any way. It is still my hope that this situation can be resolved in a way that won’t leave anyone feeling left out or cheated. However, because of the large number of inquires I have received regarding the current status of the PrefBar, I thought it only fair that interested parties know the current situation. I will post an update when I have one. Until then, your ideas are welcome (and requested) in the comments section.

Aaron Andersen