Since my last post on essential applications was rather well-received, and I’ve found a few dozen requests in my mailbox inquiring about my choice for web-based applications, I thought I’d share a few of the programs that I’ve found very useful over the past few months. I say, the past few months because I’m constantly trying out new applications, and often implementing ones for friends and clients that I subsequently find invaluable.
The following applications serve many different purposes: some are entirely personal, some are for educational uses, some are for collaborative documents and workspace, and some are just for fun. All of them, I have found essential at one time or another, and each one has helped me solve certain problems that arise in my work and life. Note that every single one of my installed applications is Open Source, and thus completely free. They are UNIX-based, and should work on both Linux and OS X. (You Windows users might be able to run some of these, if you are accustomed to installing and using environments like PHP, Perl, MySQL, ImageMagick, etc. If you don’t know what I’m talking about, you’re probably going to experience some major pain and frustration if you try to install them.)
- Blogging: I first tried Movable Type 2.6x (after jumping through all the convoluted technical hoops to install it), and had published all of two entries when I found out that the next version was shrouded in questions regarding cost, licenses, and extensibility (such as making plugins). As a result of these issues, I started investigating other options, and found that many MT users were switching to the PHP-based WordPress. I downloaded and installed it in mere minutes, and I’ve been happy with it ever since. There are quite a number of templates and plugins to play with, although the only one I’ve really used is the Image Browser plugin. Note that WordPress is currently not designed for multiple blogs (although multiple users is fine): I hear this will be rectified in a future version.
- Wiki: As all three of my regular readers would no doubt have noticed, I’ve a big fan of wikis, such as the Wikipedia. When it comes to running my own personal wiki, I use two different applications in two completely different ways. For general super-fast notekeeping, I use Emacs with emacs-wiki.el mode. (Note: only nerds need apply… this is definite geek territory.) It uses the full power of emacs as a text editor (/kitchen sink) to edit a local wiki. With a press of a button, it can publish all the wiki pages to a webserver so that other machines can access the pages via a web browser. For an online wiki, I’m currently digging twiki. It strikes just the right balance of simplicity and flexibility for me. Since I use many different machines (and operating systems) in many locations, this wiki has served as my web notepad. Any time I write or find something that I’d like to be able to access anywhere, I jump into the wiki, add the material with a cut-and-paste, and jump back out again. I’ve also found it helpful for basic project management (such as to-do lists and project logs), contact info, writings-in-process, and lists of resources. When I have to work on a collaborative document of any type, I simply create a new web, grant my collaborators the permissions to use it, set up some blank documents within a contents tree, and away we go. Beats whipping a Word document back and forth, in my humble opinion, and it’s far easier to use when more than one or two people are involved.
- Photo Gallery: My own personal photo gallery is running the aptly-named Gallery, a PHP-based system that is both easy to use and quite powerful. I really enjoy the Java-based upload utilities. If I wasn’t already using Gallery on my own server, I would probably be using Flickr, which I have just recently discovered. (There are a lot of cool features there, no doubt about it.) Another option would have been the SpyMac photo gallery, which comes as part of every free SpyMac account along with the 1 Gb email, blog, storage space, and other toys. If you’re not a system administrator, and you want something that “just works”, I’d seriously advise you to check out these latter two options.
- Learning Management System: The more I experiment with Moodle and its approach to social constructionist pedagogy, the more I like it. I’ve already published a dummy course on my closet server, and have seen how easy it is to add material and utilise community-focused modules to enhance the learning experience, such as wiki pages, journals, forums, workshops and much more. If you’re looking to implement any type of online course or training, you owe it to yourself to give this a spin. There’s even a Moodle “course” to learn Moodle basics. I should take this opportunity to mention that I’ve recently stumbled across another LMS called ATutor, but I haven’t had a chance to play with it yet.
- Bookmark Management: Until the “roaming bookmarks” code becomes part of the stable Mozilla, which will allow multiple Firefox browsers to share bookmarks from a shared server, it’s still a bit of a pain to try to keep bookmarks in sync across multiple machines. Sure, if you pay for a .Mac account (I gave mine up a few months ago), you can keep your Safari sync’ed. But suppose you don’t want to fork over your cash for a dotMac account (I didn’t consider it worth the cash), or you’re not using Safari and Mac OS X? Well, you could whip up some fancy scripts to interface your bookmarks to a CVS server. Ouch. You could use a few third-party applications to try to keep them in sync, but you risk some serious corruption issues. Ouch. Or you could use del.icio.us. This bookmark service not only allows you to have an account where you can store bookmarks through web-based forms, but you also get to see what others are sharing with similar tags (analogous to simple category meta-data). I found a Firefox extension at delicious.mozdev.org that allows me to post current pages to del.icio.us and use a sidebar to fetch and use them. I recently added a new tag for “wordpress” and found plenty of other sites that people had added with the same tag, leading me to discover some cool new sites. I’ve only been using this service for a week or two, but I’m finding it very handy. That being said, only this morning I stumbled across SiteBar (along with a related Firefox extension). Whereas del.icio.us is more of a social bookmark manager where you share your bookmarks with others, SiteBar performs more like a traditional personal bookmark manager that you can use to share your marks among your various browsers and machines. I’ll be taking it for a spin within the next few days, and will let you folks know how it goes.
- Email: My favourite web-based email service, by far, is gmail (which, unfortunately, you need an invite for). Second favourite is SpyMac, because it not only gives you webmail, but also POP3 access (allowing you to use a good email client like Thunderbird) and a full 1 Gb of storage space. Hotmail and Yahoo are way down the list because of the endless spam, clunky interfaces, and “Got a date, loser?” ads. If I had to run my own web-based email application, I’d probably use SquirrelMail, but thankfully I haven’t needed to do anything like this for a couple of years.
- Middleware: [geek alert!] Although I use various languages for different strengths (and find programming in some far more preferable to others), sometimes you just need a big, cuddly, rapid-prototyping web development platform. I’ve been through a number of these, but keep coming back to Zope. Zope is a web development system that runs atop Python (and therefore on almost any system), has hundreds of add-on products, and can connect to almost any database. The built-in scripting language, DTML, is extremely easy to use, and all the development occurs within an intuitive browser interface, thus allowing you to work from anywhere. There’s a kick-ass portal add-in for it called Plone, a blogging engine called COREBlog, a wiki add-in called ZWiki, and tonnes more. Because of the way Zope is designed, all these various products can generally interface with each other through very simple scripting. Although I occasionally hit a wall using plain DTML, since it can use Python (and Perl) scripts in conjunction with the DTML and products, there’s virtually nothing I find that I cannot do, and very quickly to boot. I used Zope when teaching beginning web developers, and they were able to create fairly complex applications within weeks. That stands as a strong testament to the design of Zope, rather than to my teaching ability.
If you’re not a system administrator, or don’t have access to your own server (or a friend’s), you can probably find hosting providers offering services such as WordPress, Zope, Gallery, Moodle and Wiki software for free or low cost. Many sites also have demo installations or “sandboxes” that you can use to experiment with.
Well, that’s my list for today. As always, I appreciate your comments or suggestions.