May 17, 2004

How to get the old Firebird icon back in Firefox

When Mozilla Firefox was released, it came with this lame icon of the back of a fox's head. Everyone I know liked the old icon better, so I replaced the icons in the firefox.exe file with the old Firebird icons.

Firefox IconWorse ThanFirebird Icon!

I've posted it, along with install instructions, online so you can download the modified firefox.exe.

Posted by keith at 11:11 PM | Comments (11) | TrackBack

May 04, 2004

James Gosling makes silly Linux comment

James gosling was interviewed by Asia Computer Weekly, and said

"One of the biggest problems in the Linux world is there is no such thing as Linux. There are like 300 different releases of Linux out there. They are all close but they are not the same. In particular, they are not close enough that if you are a software developer, you can develop one that can run on the others."
He's totally wrong; almost every Linux program runs on every type of Linux, and I think most people who use Linux would say that different distributions existing is not one of the biggest problems.

The only programs that won't run on all kinds of Linux are programs which are tied to the specific layout or functionality of a certain Linux distribution. (For example, GnoRPM is relevant on Red Hat and other RPM-based systems, but not on Gentoo Linux.) This reminds me of Java, where most applications will run on all platforms, except applications which depend on the specific OS with native code or Runtime.exec calls.

It's frustrating to me that the people making important decisions about Java don't seem to understand what open source is about. I'm tired of hearing:

  • The JDK will fork into a billion incompatible implementations
  • You can already look at the source and submit patches to Sun (and wait for a few 2-year release cycles before it's merged in)
Have most people thought about what these mean? "The JDK will fork" means someone will take the JDK source code, and change it from being compatible (which it is currently) to being incompatible. Who would make these kinds of changes, and why? I imagine that almost everyone would want their modified JDK's to be compatible with Sun's. And if this guy's version wasn't compatible with Sun's, who would use it? I think most people would be turned off by the incompatibilities and stick to Sun's or some other spec-conforming JDK.

So it seems like if someone made this awesome JDK that fixed every single bug, and added every feature people have been dying for, except that it broke some of the specs for already existing JDK, then maybe people would use this incompatible version. But if this new JDK was better than Sun's, why should people use Sun's, or try to be compatible with it, except for backwards compatibility reasons? Anyone who was scared to try this new JDK could stick with Sun's and everything would be okay. But until that happens, it seems like every "fork" would stay compatible with Sun's JDK. That's what I think, anyway.

I think that eventually Java will be all open source, but it doesn't look like it will happen very soon.

(Here is the Asia Computer Weekly article with Gosling.)

Posted by keith at 03:40 PM | Comments (19) | TrackBack

May 02, 2004

GNOME Panel source code

I'm trying to modify the GNOME taskbar so there's a maximum width of taskbar items (so when I have less than 4 items, they don't each take up 1/2 of the width of my screen).

window-list.c in the gnome-panel package is 1,100 lines long. There are 150 blank lines, and according to SLOCCount, 860 lines of code. This leaves 90 lines of comments. However, some of these contain more than one line; there are actually only 36 comments in the entire file. These comments are distributed throughout the file for things like:

/* move window when unminimizing: */
tasklist_update_unminimization_radio (tasklist);
g_signal_connect (G_OBJECT (tasklist->move_minimized_radio), "toggled",
		  (GCallback) move_minimized_toggled, tasklist);
Additionally, a single 150-line function appears to draw the taskbar to the screen.

I use GNOME products every day, and I like them, but I feel like something about GNOME attracts bad or lazy programmers, or something like that. I've seen other GNOME code that looks just as bad. Also, I spent a lot of time with the Gaim code when I was writing joscar, and it was maybe the worst code I've ever worked with.

There's no specific point to this entry, I'm only posting about this because I'm frustrated and I hope that someone will read this and document their code a little better. I feel like if GNOME were friendlier to Java or C#, these bad C programmers would go away, and be replaced by people who are into Java and C#, which, in my experience, are people who are into writing good quality, well-thought-out, well-documented code.

GNOME is accessible from Java via java-gnome, and from C# via GTK# and Mono, but I think the core GNOME applications like the Panel and the session manager will always be written in C, and they probably shouldn't be.

Posted by keith at 10:58 PM | Comments (7) | TrackBack