It seems that every techie blogger is sharing his or her list of essential applications, and is inquiring what everybody else is using. Coincidentally, I’ve received four personal emails this week from people who probably don’t even read blogs, and they’ve asked me my personal opinions about what software I recommend. So who am I to buck the trend? Forthwith, my list of current essential software (at least for today):
- Text editing: My first choice is definitely Emacs. Depending on my mood and what system I’m on, you’ll catch me using GNU Emacs or XEmacs. This “kitchen sink” of text editors goes back decades, and its maturity and range of functionality (as well as complexity) shows it. Besides text editing, it handles file management, FTP, news reading, mail, wiki stuff, planner/calendar items, web browsing, code writing, IRC, instant messenging, shell/OS interfacing, coffee making, etc. Not for the faint of heart, but once you’ve learned how to use it, you’ll never actually need another application.
That being said, sometimes Emacs is overkill. I still use vi or vim for super-quick editing (such as config files), or TextEdit (on Mac OS X) if I need a quick drag-n-drop.
- Web browsing: Firefox, without a doubt. A lean, mean and extensible web machine. With a few extensions added (current favourites: Gmail Notifier, Adblock, Web Developer, BugMeNot, Diggler, and Image Zoom), this browser does everything I need it to do, exactly how I want it.
A web developer does need other browsers to check compatibility, have multiple identity sign-ins, etc., so for these purposes I use Safari (OS X), Mozilla, Internet Explorer, Camino (OS X), Epiphany (Linux), Opera, Lynx/Links (Linux) and whatever else is handy.
- Mail: For web-based mail (which I need for mobility), Gmail is the best service I’ve ever seen, bar none. (For the reasons why, see my previous post.) For email clients, I use Evolution (Linux), Mail.app (OS X), Mozilla Suite and Thunderbird, though I’d have to give my nod to Thunderbird for being my favourite of the bunch. I have also used Outlook, Outlook Express and Entourage, mainly to keep on top of the Microsoft world, but none of these have presented me with any bonafide reason to stick with them (although the Entourage Project Manager does have some nice features… too bad it slows my systems to a crawl). SpyMac does provide a really good webmail account, although not nearly as full-functioned as Gmail, and as an added bonus, you can also use the account in Thunderbird or whatever client you wish. Recommended, if you don’t already have such a mail account.
- Instant Messenging: Gaim on Linux and Windows, and Fire on OS X, because they are Open Source (i.e., free) and let me speak to all my friends, no matter if they are using AIM, MSN, Yahoo, ICQ, Jabber, IRC, and who knows what else. (You try running multiple “traditional” clients at the same time, and watch your system resources get eaten away to nothing.) Both are filled with neat bells and whistles that make tracking your buddies and conversations much less of a chore.
- File transfer: Most of the time, in true geek fashion, I use the command-line ncftp client, which seeminly comes pre-packaged with every Linux distro, and is available via Fink on OS X. The rest of the time, I’ll use whatever is handy, whether it’s a stand-alone client like Transmit, Fugu or CuteFTP, or a built-in transfer system like Dreamweaver’s. Special recommendation: Filezilla for Windows.
- Calendar/Planning: I need multiple systems to sync with my Palm Tungsten E –my primary source of planning and scheduling– without messing up entries, duplicating items, or randomly deleting things. The best combination I’ve found so far uses the Apple Mac OS X iSync/iCal on my G4 and Powerbook, and Evolution on my Linux boxes. The Mozilla Calendar project is very cool, and lets me synchronise various machines, but so far it doesn’t sync with my Palm. Once it does, it will certainly be my planning application of choice.
- Contact management: Palm for my hub, Apple iSync/Address Book on Mac, Evolution on Linux, and Palm Desktop on Windows. (Experimenting with Thunderbird for the latter.)
- Graphics: Ah, there are multiple applications I use, depending on the need and the machine I’m sitting at:
- Adobe Photoshop CS, on Mac OS X and Windows boxes, when I need photographic retouching or bitmap graphics work
- The GIMP, on Linux, for same; also available under Windows and OS X as well, although I often fall back on PS there because I also use…
- Adobe Illustrator CS, for my OS X and Windows illustration and page layout needs
- Inkscape and Dia for my Linux illustration and diagram needs
- Adobe inDesign CS and Scribus for my publishing needs on OS X/Windows and Linux, respectively
- ImageWell: This free little image-handling application just blew me away with its cleverness: behind a simple little interface, it handles two-click drag-n-drop resizing and uploading to remote servers… perfectly attuned to blogs and website development, and a heck of a lot faster than toggling between Photoshop and an FTP program
- Apple iPhoto, for organising, importing, printing and viewing my thousands of digital pictures on my Mac
- Office Suite: OpenOffice.org, for almost everything. I fall within the 90% of people for whom OpenOffice is a perfect (and free) replacement for Microsoft Office. Microsoft Office 2003 (Windows) and Office X 2004 (OS X) definitely have their strengths –especially the latter– but the bloat and cost aren’t really justified for what I do. I occasionally try other applications like AbiWord, Mellel, AppleWorks, WordPerfect Suite and Gnumeric, but OpenOffice provides everything I need (with little I don’t), and so I keep coming back to it. It does help to own a great book like the OpenOffice.org 1.0 Resource Kit, though.
- Text processing: LaTeX. Rather than using a word processor, I much prefer to use LaTex, Emacs and AUCTeX (an Emacs add-on), for almost all my reports, specifications, dossiers and other (non-collaborative) documents. *cough* *geek!* *cough*
- Note-taking: Ah, my eternal quest. I quite like some hiearchical outliners like Tinderbox, and also some “notebook”-style applications like NoteTaker and Microsoft OneNote, but their lack of cross-platform availability makes it difficult to make and transfer notes wherever I am without the fuss of constant importing and exporting. For ages, I’ve been toying with my ideal of the perfect outliner/notetaker, and I think I might write up some specifications for a Java-based network-aware application when I get a breather. In the meantime, I use my Palm and its wireless keyboard as my “notetaking hub.” Syncing with MacNoteTaker (OS X) and gpilot (Linux) on my main computers, I’m able to have quick access to all my notes in standard text format whenever I want, and can synchronise full directories of them. As my father used to say, “Better than a kick in the teeth.”
- Web design: It depends on the site, and how much of it is dynamic or code-driven. I often do initial designs in Dreamweaver MX+ or GoLive CS, and then do further coding in Emacs. Really large sites, however, I stick mainly with Dreamweaver, since I find it the best with site management.
- Web development: (by this, I’m referring to dynamic development) Zope, Python, Perl, PHP, Apache, MySQL and *nix (Linux/OS X/Solaris/etc.) are my tools of choice. Zope is perfect middleware for large-scale sites and heavy prototyping, and has never let me down when I’ve had to do something big and complicated under a tight deadline. It’s Open Source, extended by hundreds of great add-on “products”, easily extendible using Python, connects to MySQL and other databases flawlessly, and is easy to learn (I even used it to teach web programming and databases to beginners).
- Web-based applications: Way too many. The chief ones I’m using today are WordPress for blogging, Gallery for my photo gallery, and twiki for my wiki. I’m also implementing COREBlog and ZWiki, setting them up for educational purposes. Learning more about Moodle is definitely on my to-do list.
- Audio: iTunes for OS X and Windows, and Rhythmbox and xmms for Linux. I have so many albums ripped that a music management system like iTunes is a virtual necessity.
- Video: vlc is a wonderful cross-platform video player that works on all my systems, and has been able to play every single video file I’ve thrown at it so far, no matter what strange combination of codecs and file formats are involved. Also has to the ability to display subtitles (I like foreign films), play DVDs and VCDs, and play files from over the network. MPlayer OS X 2 (OS X) and mplayer are also recommended, and sometimes seem a little smoother than vlc. For video editing (mainly on the Mac), I prefer iMovie for quick jobs, and Final Cut Pro for more intense editing sessions.
- Programming: NetBeans + Java, Emacs + everything else, especially my favourite language, Python.
- Backup: rsync all the way. For true geeks. (I’d also throw UNIX “dd” into this category, which tends to leave mere mortals quaking, and which has been known to appear in my more surreal nightmares.)
Whew. Punters, take note: whenever possible, I use freely-available Open Source software. Not necessarily because I’m a cheapskate (although my wife might choose to differ on this point 😉 ), but rather because I believe in the philosophy behind the movement. I also believe in open standards and open formats, because years from now I don’t want to find that I can no longer read my data: this has happened to me one too many times, either because formats change, I haven’t paid for endless upgrades, or because the software company went out of business.
Most commercial applications have very good Open Source alternatives, and I tend to switch over to these applications as soon as possible (e.g., OpenOffice.org vs. Microsoft Office, the GIMP vs. Photoshop, Gnumeric vs. Excel, Gaim vs. MSN Messenger, Firefox vs. Internet Explorer, Evolution vs. Outlook, etc.). Although these applications are generally programmed initially for the Linux platform, most are making their way to Windows and Mac OS X too. If you haven’t tried them, go ahead: you have only a few hours to lose, and quite a lot to gain –including the cost of expensive software licences.
(Well, I wouldn’t recommend applications like Emacs and rsync unless you’re very technically inclined, but then you would probably know how to use these already.)