As a consultant to small businesses and non-profit organizations that are too small to have any IT staff of their own, I need to be able to support a diverse array of desktops and servers, platforms and file formats. I've been able to do it exclusively with Linux since 1998. Here are my must-have Linux desktop applications.The four applications that open automatically when my IceWM session starts up are Jpilot for my Palm PDA, Sylpheed for email, Firefox for the Web, and a terminal window. These are all "connector" apps for me -- Jpilot keeps me aware of my appointments and to-dos; Sylpheed and Firefox keep me connected to people and information in the human world; the terminal connects me to the servers I manage remotely. Other must-have applications include OpenOffice.org.
Jpilot works flawlessly to synchronize Palm OS PDAs with my Linux desktop. All the basic functions are there: calendar, contacts, memos, and to-dos. In addition, it has the Keyring plug-in that keeps all my client and personal login information (account, user name, password) synchronized on PDA and desktop, and Synctime, which keeps the clock on my PDA synced to my NTP servers. The combination of a Palm OS PDA and Jpilot gives me rapid access to all my working information, whether I'm in the office or on site, and I can back up the entire PDA to my desktop with the click of a button. It also supports the note tags of DateBk5 from Pimlico Software, so my special appointment types are displayed correctly.
Sylpheed is a fast and configurable email client that incorporates some nifty features, the best of which is integration with Jpilot! Sylpheed can pull email addresses from the Jpilot address database. For me, this means I can store all my contact information in just one place -- my PDA. When I enter a new contact, in either the PDA or Jpilot, without any re-keying that information is everywhere I need it -- my PDA, my PC, and my email address book.
Sylpheed has all the usual features of a modern email client, including multiple account management, POP and IMAP support, filtering, pre- and post-processing, and configurable menus. Right-click on an attachment and I can run any command on it. Sylpheed handles large message folders quickly, which makes finding that message a client sent a year ago (or was it two?) a snap. I do wish it could search through all folders and sub-folders at once; at present it is limited to searching one folder at a time. Since my messages are sorted into folders by client, that's not a huge problem for me.
Most of my small business clients haven't moved to Linux (yet!). OpenOffice.org provides the file format compatibility I need to interact with them. OOo opens and saves non-native file formats with aplomb. The basic office documents and spreadsheets that small businesses use daily are no problem for OOo's filters. In more than six years of exchanging documents with clients, not one has ever even known I wasn't using the same office suite as they, unless I told them!
Yards of copy have been written about Firefox since its 1.0 release. Let me add my voice to the many -- it performs! I need nothing this browser can't give me. Tabbed windows, ad blocking, and find-as-you-type page searching bring my productivity to its peak when doing Web research.
Gnome-terminal is my current choice for a shell. Gnome-terminal provides multiple windows, and you can open them in tabs, much like Firefox's tabbed browser interface. My IceWM startup script calls gnome-terminal as
/usr/bin/gnome-terminal --tab --tab --tab. This starts the program with three tabbed shells already open. Each window or tab can have different properties for colors, fonts, and scroll settings. When a smaller memory footprint is required, RXVT is great (but then, one can always do a Ctrl-Alt-F1 to the text console, too).
Secure SHell (SSH) is my reason for running Gnome-terminal. The free version, OpenSSH, when properly configured, is the Swiss Army knife of secure remote connectivity. If you are still using telnet or FTP, stop! Go to the OpenSSH site and read the FAQ, then start using SSH for your remote connections. With SSH I can have a console window on any of my clients' Linux servers; with port forwarding I can use X applications remotely; and with SCP and SFTP I can easily update files. (gFTP has a handy SSH2 protocol option.)
Another beautiful remote admin tool for Linux servers is Webmin, a Web-based interface for system administration, including daemons and services, user accounts, filesystems, logs, analyzers, monitors -- the list is extensive. It runs its own mini Web server on a configurable port number, so it works even on servers without Apache running. You can restrict connections to using SSL to improve security. While Webmin is a server-based tool, it makes quick work of day-to-day system maintenance chores from my desktop browser. Unfortunately, Webmin and OpenSSH don't work for all my clients' servers. For the Windows machines I need to access remotely, rdesktop fills the bill. With it I have a remote desktop that's about as good as sitting at the server.
There is a pattern here. The Linux kernel and the free GNU development tools have allowed developers to assemble a wonderful operating system with a "toolbox" philosophy -- one tool for one task. It's the beauty of Linux, the BSDs, and other free and open systems. In much the same way, open source allows me to build a custom toolbox of apps and utilities that meet my clients' needs. I enjoy having purpose-built, lean and mean tools on my system. (OK, OpenOffice.org, lean and mean? No, but it's much improved since
earlier versions, and it works.)
With all these best-of-breed tools at my fingertips, how do they help me serve my clients? Here is an example scenario that I have experienced more than once. A relatively new client emails me a Word document describing an error he is getting on his networked desktop PC. (Since he is new, my advice about open file formats hasn't taken root yet.) I right-click on the attachment in Sylpheed and choose to open it in OpenOffice.org. I see the problem, and it's going to require me to access the client's server.
I want to connect to the instance of Webmin running there, but the server is not in DNS and I need to know the IP address. Two clicks on the address button in Jpilot brings up the client list, and one more displays my notes for this client, which contain his static IP address. I copy and paste the address from Jpilot into the location bar above a new Firefox tab (I was busy doing research before the message arrived, and don't want to interrupt those sessions). Adding the port number (":nnnn") to the end of the IP address, I press Enter and get the Webmin login screen. I enter the account information and log in. (If I hadn't remembered the login details, I could have looked them up in Jpilot's Keyring.)
A couple of clicks take me to the particular server properties page I need in Webmin, where I make and apply the change to the .conf file and restart the service. Back in Sylpheed, I reply to the client that the problem is fixed, then watch the server log files in Webmin to see him successfully get past the previous error.
What are your must-have Linux applications? Write an article of less than 1,000 words telling us what essential apps you use and what you do with them. If we publish it, we'll pay you $100. Please use proper spelling, grammar, capitalization, and punctuation!