Ten Open Source Projects Worth Keeping Track Of

I was supposed to be dissecting Karrigell tonight and see whether it's easy enough to wrangle into my NewWikiMigration strategy, but I came across an old set of notes and thought it best to finish them. Writing is far more relaxing than watching the crap on TV and fuming over my iMac G5 saga (gosh, how I wish we had a real Apple office in Portugal...).

Although I'm not an Open Source zealot, I like the overall concept and keep track of a few interesting projects now and then. Besides large, ponderous things like OpenOffice, Mono and Gnome, there are quite a few smaller and more interesting things that manage to hold my interest, and I've selected ten that you can use on your desktop or as part of your toolkit on a daily basis.

So here goes:

1. newspipe

newspipe needs little or no introduction if you've been following this site for a while. I think it's the best RSS reading solution out there, period, mostly because it fits RSS feeds seamlessly into my daily routine by the simple expedient of delivering them to me by e-mail. I've contributed a few bug fixes and ideas as well as a minimal phone front-end that I use daily through my Blackberry, and have been away from it for a while simply because it works fine for me as it is.

Its only real trouble (apart from a duplicate items bug that has to do with file locking in my box) is that it's effectively invisible, so I think it deserves a lot more exposure.

And with exposure comes more testing, bug fixes, suggestions, etc. It would be interesting to see someone else contribute to it, help Ricardo revamp feed storage, add threading, maybe even complete the Bayesian classification I started months ago but never finished.

So, to summarize, it needs:

  • Users. Lots of them.
  • Testing with as many e-mail clients as possible.
  • New ideas, spinoffs, etc. Experimental stuff that can be folded back in, URL-based threading, Technorati integration, maybe a standalone Mac package with a GUI to set preferences.

2. Growl

Lots of people have been raving about Growl, which is nearing a 0.6 release. It is one of my essential Mac OS X utilities, and I've done a bunch of things with it, as well as still having an outstanding list of stuff I'd like to do with it.

There are, however, a few things I think it really needs, and some of them it needs pretty badly:

  • HTML notifications (or at least support for the A HREF construct, via something like URLTextView). I have a patch for this by Scott Lamb, but I've been too tired to open Xcode of late (scripting and writing relax me, and opening a full-fledged IDE tends to feel too much like work).
  • SIP support. Or, rather, a SIP-based network protocol for notifications, instead of its current binary approach. Lots of people persist in thinking that HTTP or another TCP-oriented approach is in order, but all of them forget that sending a UDP packet is the only feasible strategy in environments like a PHP script, where you can't have something delay processing while waiting for an acknowledge or spawn a new thread to do it for you.
  • A more Zen-like approach. Less plugins, less options. A single floating bezel format would probably do (like the current Smoke plugin).
  • A Gnome analog. There is no centralized notification system in Gnome, and what there is is miles behind Growl.
  • Competition. There's plenty of room for similar efforts, and more than a few people have talked about forking the code and doing an experimental "lite" version with the features they want.

Gnome folk rightly point out that D-Bus is there for the taking, but my point is not about inter-app notifications, or making an applet do display dinky little popups for my own purposes. It's about exposing that to the average user, by:

  • Unifying UI notifications by adding a single way to display them
  • Adding a Preferences applet to let the user see which applications are notification-enabled and set, in a single place, which notifications ones he/she wants to see, and
  • Having a simple, standard notification API and network protocol (preferably SIP-based) that developers could hook into. D-Bus is just too geeky at this point.

3. Freemind

I've been posting about Freemind now and then, and this is one application I'd love to see getting a complete Mac OS X makeover. I haven't seen the 0.8 betas yet (the one I tried crashed and burned in Mac OS X), but if you're looking for a mindmap application and can tolerate Java (I can, but only barely), then look no further.

It runs flawlessly on Windows, where the kludgy interface doesn't bother me much. And it has a nice clean XML file format, neat, intuitive visuals and very quick and efficient editing, but is simply not a very good Mac OS X citizen. At all.

So here's what I think it needs:

  • A real Mac OS X GUI (replacing toolbars and controls with Cocoa bindings, support for network drives/iDisk, decent key bindings, etc.).
  • Printing and exporting to SVG (in the works), Flash and PDF (a given on the Mac, but might be doable in a cross-platform way).
  • Support for embedding images and HTML inside the XML document as base-64 encoded data.
  • A Flash viewer to view and navigate mind maps online (the applet is just too unwieldly on older PCs).
  • Maybe some competition or a native Cocoa port, as long as it used the very same file format.
  • As a longshot, WebDAV or XML-RPC support for collaborative editing.

4. monotone

Update: My criticism of darcs below has almost exclusively to do with the fact that it requires a Haskell installation, and that is an unacceptably crufty dependency to install under any OS - and no, I will not use pre-compiled binaries for Haskell. monotone has far simpler dependencies, and, like Subversion, I can compile all of it from source just about anywhere.

Yes, I've been using both CVS and Subversion for a while now. Much less Subversion than CVS, actually (old habits die hard, and I don't want to waste time figuring out the subtler aspects of Subversion right now), but monotone is conceptually much closer to what I want from a version control system, with the advantage that, unlike darcs, I can actually use it on all the environments I work with.

I haven't used it much, though, but so far I think it needs:

  • Exposure (more people should try it)
  • Documentation (oodles, although what exists is readable and to the point)
  • A Web front-end able to deal with its philosophy (this it needs very badly, in my honest opinion). In fact, something like number 5 below would be just the ticket.

5. CVSTrac

If those newfangled source control systems aren't your cup of tea and you are sticking to trusty old CVS, CVSTrac is something you should go out and get now. It runs on everything I've tried so far, and is trivial to install compared to its Subversion-oriented cousin Trac. You can have a pretty good idea of that it does by clicking on the CVS link atop this page - it's my own custom build, more or less integrated with this site (still using the older site design, though).

Besides CVS repository browsing, it has basic issue tracking, a built-in Wiki and a feather-like footprint. It's written in C, but is one of the best examples of C programming I've seen in years, and makes for a killer on-the-spot project web for small workgroups.

Here's what I think it needs:

  • A complete overhaul of its HTML output to bring it kicking and screaming into the CSS era.
  • Markdown support for its Wiki and annotations.
  • A default set of diff and revision graph scripts.
  • Nothing else. It's damned near perfect as it is, if you're not fussy like me.

6. QEMU and QemuX

Yes, Virtual PC is out there, but there's a lot to be said for having alternatives. QEMU mostly works at this point, although I cannot yet consider it usable to, say, run Visio on a Mac. And the only real way to have a GUI for it right now is QemuX, so I'm bundling them together here.

Here's what I think it needs, besides improved stability and performance:

  • Documentation. User-level, full of nice screenshots and HOWTOs.
  • A clean, up-to date and optimized build, complete with installer and front-end. There are a couple of people out there already doing that, but my guess is that a bit more help would be handy.
  • A completely bug-free (and perhaps not brushed metal) version of QemuX with a clear, three-step wizard for creating, configuring and installing a Windows virtual machine - something that can be used the first time around by people with a near-zero geekness factor.

7. pxes

Now this one is one of the most underrated projects out there. And one of the most damned useful ones, too. Although I loathe modern incarnations of the "thin client" concept like the SunRays, simple multi-purpose terminals that can use RDP, VNC and X are just the ticket for schools and other institutions.

I, for one, would love having a roving Terminal Services or Citrix ICA desktop environment that I could use from anywhere on the planet for corporate work (intranet, e-mail, internal apps that I can't use from my "non-standard" Windows XP configuration, etc.), and my guess is that with IT costs being cut across the board in all sorts of companies, we'll be hearing more along these lines soon.

After all, at current hardware performance/price ranges, you can deploy one new 2.8 GHz PC with one or 2GB RAM to act as server for each dozen or so clients (and my guess is that this ratio would work for average office workers even if they used Gnome and OpenOffice). Just add RAM and network ports, and you're set.

pxes does the client side of things cleanly and neatly, but there are a few things it needs:

  • Wireless support. This is just crying out to be used in all those old laptops out there. Stick a dirt-cheap 802.11b card in a laptop barely able to run Windows 98, drop in the CD, and presto.
  • A four-step boot CD build wizard, so that people can avoid spending hours building CDs from scratch. Make it IT-friendly, don't require a single command line to be typed. Pick what your terminals will access, what sort of network they will access it through (add or remove drivers as needed), set regional settings, and burn. If you require people to compile custom kernels or download umpteen packages just to get the wizard running, it's useless - takes too much time for your average small IT admin.
  • A server deployment kit. One that lets you create and maintain mirrored/cloned servers with centralized home directories (on an NFS or Samba file store), migrate users from one machine to the other, allow for fail-over, etc. Just being able to clone a base desktop setup would be great. Make it Fedora and Gnome-friendly, while you're at it.

8. VNC

Oh yes, it's still alive and kicking. Unless you've been living in an IBM mainframe shop for the past decade I don't think it requires introduction, so I'll dive right in to what it needs:

  • A native, fully i18n-aware official Mac OS X client. I still haven't found a single VNC client that supports international keyboards decently and the new 4.0 protocol. People suggesting Apple Remote Desktop without having paid for it need not submit any comments - I know it's out there, but won't use it at either the legal (too expensive for home) or illegal (too obviously wrong) price. With the Mac mini out, Apple would do well to release a free "Home" version of it with limited features for people who want to use it as a headless home server.
  • A login/session manager with persistent disconnected sessions, without all those XDM/inetd kludges. I want VNC to be like Microsoft's Remote Desktop - a single TCP port for all sessions, a login prompt, and session reconnection. The current paradigm (multiple ports or a single port without session resume) is simply broken beyond usability.
  • Competition. An Open Source RDP server would be very nice indeed, provided it could be done without infringing on Microsoft intellectual property.

9. Zoë

Update: Enough people have written and commented about Zoë "not being open source" to deserve some kind of feedback. I don't give one whit about the fact that it uses a Creative Commons License instead of the GPL (nor do I hold the GPL to be gospel, having been BSD-oriented since I ever bothered to think about it). The source code is available and it's free to use and modify for your own purposes, and that's enough for me. Licensing zealots need not apply for further comment.

Yes, even with Spotlight in the horizon, alternative ways to search your e-mail make sense, especially if you're like me and can be using a Mac one moment and Windows the next, with your mail in a gigantic IMAP store. Zoë did most of it right a year back, but it's sad to go back and notice that:

  • It still has quite a few IMAP bugs.
  • It still deals poorly (or at least not in the best of ways) with HTML mail and attachments.
  • It still requires you to either import everything into it and live with it as repository or double your storage (which is dumb, period).
  • It still won't import from mbox or maildir.
  • It persists in, for whatever reason, having quirky limitations such as requiring authenticated SMTP from localhost (breaking most common ways of piping and batch forwarding messages).
  • The UI needs a major overhaul. Really. Please.

10. Dowser

Last but not least, we come to Dowser, which has become my personal search assistant of sorts. I have it running inside screen on my home Linux box and tunnel to it to ensure I have my complete search history wherever I go.

It's Zen-like brilliant, fast and amazingly useful if you have to back-track while researching things. I've added it to both my Safari and Firefox search bars, and would love to see it evolve further.

Here's what I think it needs:

  • Lots more users and exposure.
  • A few bug fixes (mine tends to choke occasionally on some Google queries and leave database locks hanging around).
  • A better way to manage the local cache and batch remove things from it.
  • A new Mac OS X app bundle that doesn't say "TinyTinyEdit".
  • A blue skin. I like the green just fine, but the Mac is just... I don't know, blueish.

And that's about it, I think. One of these days I'll revisit this and see what sort of progress was made (and what other small Open Source apps are worth spending your time on).