WMgMon is a generic monitor applet for WindowMaker and Afterstep. It can display CPU, I/O, memory, and swap usage, as WMMon does. It can also display the result of other programs, as WMScript does. The result can be displayed as a gauge, a histogram, a percentage, a number, or any combination of those. WMgMon's advantage is that it lets you configure what's displayed in its configuration file so that you can tailor it to your preferences and easily extend it by adding new monitoring functions and new scripts.
Please do not reinvent the wheel *too* often.
Let me begin with my own experience. I wrote a simple program two years ago that did not exist on the net. I published it on freshmeat and got an e-mail saying "hey, I just made public the same kind of program". I had a look at that program, but it wasn't addressing some important issue I was concerned about and couldn't without important modifications, so I kept on with my own. Since then the other program pretty much won as it developped faster and now also does what my program was doing. My program is still maintained, but developement stalled.
Yersterday, I saw the fifth announcement of a new program that does the same... again. Why didn't those authors look for an equivalent program before coding ? Why did they start over instead of contributing to an existing one ? They obviously knew about freshmeat, so why didn't they begin by searching on freshmeat for a program that would do what they needed ?
My answer is that being an author is *cool*. Free software used to be about sharing code to get there faster and do not spend time on "solved problems", it is more and more turning to be "I'm cool, I maintain free software on the net". People want to see their name appears on freshmeat or other places. Who cares if it already exists, who cares if I could get the same result in a tenth of the time by hacking an existing one, I'll make a new one, a better one, and I'll be cooler than the other guy who wrote the former one, I won't even look at what he did, others will contribute to my stuff, I won't !
Bottom line is that you get tons of bad ICQ clients, tons of window manager applets doing the exact same thing and an endless list of "new library for roasting CDs", "new library for standard C++ classes", etc. And you get those and not new kernels because they are easy to code, hence are the shortest path to get your name on the billboard.
Some will say that this brings freedom of choice. I doubt it: when you look for a specific kind of program, you end up using one of the two or three major ones (most dowloaded ones), as you want something that works, not something that you'll have to hack to get working. I would agree that sometimes it gets necessary or useful to start from scratch and forget about the old code base, but most of the time, trying to implement something that's missing to another program will make it more generic and turn it into a solid base and make it even easier to add other missing features.
Diversity and some form of competition are good and motivating, but endlessly duplicating the same effort is wasting precious time, as tons of things are still missing. So please fellow hackers, let's cooperate some more and get there faster, contributing is *cool* too !