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

My new laptop

Well, I finally bought a new laptop, an Averatec 3715, for $799 at Sam’s Club. I needed a powerful enough machine to do some serious developement work, but at the same time something small and light weight enough that I could take it along anywhere and everywhere. At 4.2lbs this 12-inch ultralight is exactly what I was looking for. It’s tiny on the outside, but inside it’s got a 1.8 GHz processor, 512MB of memory, and an 80GB hard drive (or in other words, it doesn’t lag at all behind any low end larger model I might have bought instead).

I love the looks of it too. The battery life is a little lower than I maybe would like, but if you turn the screen brightness down a bit you can get a good two hours between charges, which I can live with.

Happy Birthday

… to me!

Bad

Bad: Getting a parking ticket.
Really bad: Getting a parking ticket while driving my boss’s car.
Worse: Getting a parking ticket while driving my boss’s car and then almost wrecking the company car four hours later.

Amazingly, I still have a job. :)

Free tech support

My aunt called me last week. I really like her, but I was never as close to her as some of her other neices and nephews, so I was rather surprised that she called. It turned out she had a computer problem, and that after she called some of those other neices and nephews and they couldn’t help her, she decided to call me. Now, I’m usually fine helping people out with computer problems, but when she started off with "My Internet Explorer is broken…" I knew it wasn’t going to get very far. I tried to explain to her that I haven’t used IE in like five years, and even then I only did it because I didn’t have any other choice. She asked what I use. "Fire what?" (she had never heard of it). I told her to go to mozilla.org, but she couldn’t spell mozilla correctly. "M-O-Z-I-L-L-A" She said she’d look it up. I wonder if she ever really did….

Rejection Letter

This email came while I was at work today:

Sept 6, 2005
 
Thank you for applying for the position of ***************** with ************************.

We had a good response to our posting at *************************, and many of the candidates had fine credentials, such as yours.  Although your experience and skills are impressive, the hiring committee has chosen a candidate whose qualifications are more suited to our specific needs at this time.

We appreciate your interest in *************************** and wish you success in fulfilling your career expectations.

Sincerely, 

************ *************
Human Resource Coordinator

The funny thing is, I called them last week to tell them that I had to cancel the appointment I had set up for an interview because I had just been offered (and accepted) a much better, higher paying job at another organization. I thought that would be enough to remove me from the potential candidate list, but I guess not.

Good thing we’ve got a college education behind us

There are signs plastered all over campus this week advertising that the disability resource center needs volunteer note takers to help some disabled students. The last part of the sign reads [sic] "Volunteer note takers will receive a ten dollar gift certificate for the bookstore; at the end of the semester, for each credit of the class." So, let’s imagine that the person who wrote this is so grammatically impaired that he really thinks the use of the semicolon and the comma in that sentence is correct. It probably wasn’t an english major after all. Still, don’t you think that if you had written an ad that you were going to make 300 copies of and post where the entire university would read, that you could ask someone to proof read it real first?

Not Funny

There is an article in the university newspaper whose front page blurb reads “Special Olympics Floods Campus. See page 4.” Probably somebody thought that was funny, making a pun on current events with the word “flood”. I for one am not amused. I consider that neither funny nor appropriate. I don’t know who wrote that line, and that’s probably a good thing (for him).

Give Blood

What I did this morning… 

I Donate. Do you?

Back to School

Well, I’m back at Utah State, fully immersed in all the fun and excitement of college life.

You can tell a lot about a Computer Science professor when he introduces himself by telling you what open source projects he has founded or been on the leadership boards of. 

In another class, the professor was talking about distributed system programming, and made reference to internet web servers as an example of such. Then there was an exchange that went something like this:

Professor: You want one piece of your distributed system to run independently of the other, so if you have a webserver and it’s talking to-what’s the latest browser they’ve got out there?

One student: Deer Park! (?)

Professor: Well, I’m not really familiar with that one…

I guess I really shouldn’t have been surprised. We’re all nerds here after all.

Next Page »