As many of you know, I am trying to fade into the background. However,
on this issue, I feel that I must speak up. The issue isn't the mime
type on a web page, but rather the concept of options. Please try to
understand that I am coming from almost seven years of experience
dealing with this subject on this project. What I am saying is not due
to some ideology, but from practical experience.
Adding an option is always a delicate balance. For every person who says
"Why don't we just add an option?", there is another who says "Why do we
have so many ridiculous options?" Believe me, my inbox has been filled
with these pointer/counter-point arguments for a *long* time.
So, the philosophy that Alex and I used to drive the project with was:
"Have the program do the right thing, and only add an option when
there is consensus, and there is no better alternative."
Now, you may ask "Why not just add options?". Well there are several
good reasons. These are:
1) Too many options overwhelms the user. Most people just want things
to work. They don't want to have to twiddle with things forever.
As a personal note, this is why I do not use KDE. Every time I've
tried it, I've had to spend forever tweaking it to get it to work
right, and then my setup was different from everyone else's setup.
I would rather that it just worked. (please, no kde vs. gnome
2) Code is hard to maintain. Adding options makes code ugly, hard to
read, and hard to maintain. This leads to bugs. I'm speaking from
years of experience. Many, if not most, of the times when we've had
a major bug, it has come from the addition of an option. The more
options, the more difficult a program is to test. The more
difficult to test, the more likely there will be bugs.
3) Documentation. Look at some of the descriptions for the existing
options in the UI. We have very little space, and very little
ability to describe what the option does. Also, look at the manual.
Very few options are documented. So how does the user know what
things are supposed to do?
In most cases, adding an option is the lazy way out of a problem. And
one for which you will pay dearly for in the future. The correct thing
is usually to ask yourself, "What is the right thing to do in this
So, as an example, let's examine the current issue. Some people are
annoyed that the media page includes the Mime Type. In the grand scheme
of things, this is a very minor issue. We have literally hundreds of
issues like this (and, therefore, hundreds of potential options). The
quick answer is, "Let's add an option to allow you to hide this!" And
when the next person comes along and says, "I don't want thumbnails on
this page." or "I don't want references on this page", or "I don't want
sources on page X", what do we do then?
So instead, let's look at the issue. The first question I would ask is:
"Why do we need Mime Types on this page?"
If I had to answer this, I would say:
"We need mime types to help the user understand how to view an
object when the media type is not obvious, or when a user
may not know how to view the type."
A good example would be for a word processing document. Will I be able
to view it? If not, why? However, if I'm told that the document is in
OpenDocument format, I may know if I can view it, or I will know how to
find a program that will allow me to view it.
Another example would be video. Under Linux, I may want to know if the
document is MPEG (easily viewable) or WMV (not as easily viewable).
However, if the document is an image, chances are, the type does not
matter. Just about everyone can view just about every format. And
chances are, your web browser is already displaying the image.
So, in reality, the mime type only adds value when the format may not be
obvious, or may be non-standard. And guess what? If you look at most of
the generated web pages, we have a lot of images, but fewer of the other
types of files. So, the vast majority of the time, the mime type is not
As a second question, we need to ask ourselves:
"Is the MIME type the right thing to display?"
In other words, does it help the user to know that the type is
"application/vnd.oasis.opendocument"? Or would it be better to say
"Open Document Text". And isn't "Flash Video" better than
So, looking at this issue, I would resolve it by saying:
"The MIME type should not be shown for obvious file types, such as
images or text documents (image/* or text/*). For other formats, we
should display the files type in a readable form if possible, falling
back to mime types only when the system does not provide a
descriptive name for mime type."
By adopting this approach, no option is needed, and GRAMPS appears to
"do the right thing" for the user. It only displays the information when
the information provides value.
On another matter, and in the long term, even more important - Brian
Matherly is now the project manager for GRAMPS. This means that he has
to make the tough calls. And guess what - there will be times when you
disagree with him. In fact, on any given issue where he has to make a
decision, probably a little less that half the people will disagree with
him. When he decides something that is counter to what you believe, he
is not doing it to spite you. He has valid reasons, whether you agree
with them or not. And chances are, he's probably being more objective,
thinking about what benefits the project in the long term.
Also keep in mind - While OSS projects are open and free, successful
ones typically are not democracies. I cannot think of a single major
*successful* project that is run in that manner. Linus makes the
decisions for Linux, and if you read the linux kernel mailing list, he
rules with an iron fist at times. Similarly, Guido Van Rossum is the
"Benevolent Dictator for Life" of the python project. The GNOME project
has the "GNOME Foundation" to guide it. A project needs someone to make
the tough decisions. And it is a thankless and difficult job. So please
support Brian. He is a very smart guy, and a very fair guy. He will
listen to your arguments, and then decide what is in the best interest
of the project. But please, respect his decisions.
Believe me, project manager is a very tough job, and at times there is a
strong desire to just walk away and fade into the background ...