Unix History 2000, Software
This page lists some unix software i use or am expert of, along with commentary. This page is largely written in 2002, gathering my experiences as a unix sys admin and web server programer from 1998 – 2002. Some software listed here are outdated (no longer popular, unique, maintained, important…etc). To preserve some history, the writings on this page are largely not updated. Links are provided to wikipedia for ease of checking the software's current status. This page is mostly of historical interest.
(Part of the purpose for writing this page was that, even just 6 years ago, info on the web is not as rampant today, and back in the dot com days around ≈1998 – 2002, many top software in unix are still not well known even among professionals, and usually there are just one or very handful of good software in a particular niche. However, today in 2007, the info on the web is massive, to such a degree that a few second search in Wikipedia will find the article about particular software need and the available software for it, with lots of quality references and links to home pages, specs, commentaries, books, and so on. And also, for any particular niche tech need, there are often far too numerous quality offerings, far more than even a professional in that niche can keep up. (For example, wiki systems, blogging systems, revision control systems, file sharing systems, encryption systems, …))
Network related software
Apache Web Server
Apache HTTP Server is a load of crap. The shittest software touted as the the most popular web server. Its spaghetti directives is sufficient to induce vomit. Do you know the etymology of Apache? If you have read their FAQ, you'll know it's patch-patch-patch - a-patchy — the standard unix approach to things. The unix folks not only are not ashamed of such name, but are proud of such literary folly.
Stronghold (software) is a commercial version of Apache with HTTPS support. Notable is its well-written online documentation. You'll learn a lot about Apache or web servers even if you don't use Stronghold. Stronghold was a product of c2net.com, which got bought by Red Hat somewhere in 2001.
ProFTPD, a FTP server. It's supposedly a replacement for the default ftpd of unixes. Why we need a replacement? Because the unix ftp sux in so many aspects. I'm no networking expert to speak for any sides, but i trust proftpd folk's words and have installed proftpd instead of using the default fptd on Solaris.
On unixes it usually comes with a ftp client. On Mac, there's the infamous Fetch (FTP client). On Windows, there's WS FTP among others. In particular, 1999 era web browsers also support ftp; Internet Explorer or Netscape both do. Ftp clients mean software that does the ftp protocol. Basically it means programs that allow you to download software from the net. On Mac or Windows, you can drag or drop from your FTP program a folder or bunch of files to download to your computer simultaneously. On the super powerful unixes, that cannot be done. One has to know a plethora of inane commands. Specialized tech arcane commands isn't a problem, but inane commands are. Even with plethora of commands, it is not possible to download a directory or a selection of files, and NO, there's no easy way to write a unix script to do it either.
xinetd. In unix, there is a background process called inetd. (as InterNET Daemon. (daemon is unixers's lingo for background processes.)) Whenever there's a incoming traffic, inetd receives it, checks the port number, and send the signal to the program that is designated to receive on that port number. xinetd is intended to supplant inetd. On their website, it's another source to learn just how lack of thought the coding monkeys of unixes are.
xinetd is the default server for OS X 10.3, however, it is being replace by Apple's own devices in OS X 10.4 (2005)
OpenSSH — ssh server and client. SSH is fairly a standard. If you need ssh, go with OpenSSH. (SSH is a suite of protocol for secure, encrypted communication. Basically a secure version of telnet. SSH stands for Secure SHell. You know that in unix lingo, a “shell” means the command line interface to the OS, but Secure Shell isn't really a shell. It's a protocol. In general, the naming of things in tech field isn't as what they seems, but this is particularly so with perennially inane unix.)
Samba software implements Microsoft's SMB (Server Message Block) protocol, which is now CIFS (Common Internet File System). Basically, it allows one machine to access another machine's files easily as if it's local. In Windows, you simply go to the Network Neighborhood icon to access remote machine's disks. In unixes, you fuddle and befuddle then pray that your Nightmare File System don't halt your entire network.
Mail and Weblog Processors
Some weblog analytic reporting tools..
Here's some email processing programs:
MHonArc is a program that turns a mail archive (mbox text file) into a website (html). There are many other programs that does similar things, but mhonarc is the one i've used in 2000.
MH. The standard unix email archive format is one huge text file called mbox. mbox is fret with problems. Do you find yourself in occasion need to parse this file? to split this file into each individual email? to otherwise manipulate? Your solution lies in mh or nmh programs that stands for Mail Handler or New Mail Handler.
See O'Reilly book MH and xmh: Email for Users and Programmers, by Jerry D. Peek.
Window Systems and Emulators
Cygwin is a entire unix architecture that runs in Microsoft Windows. With Cygwin, you can install and run any unix software as is, including shells and X-Windows. Its like unix on Windows. Highly recommended for unix geeks. Red Hat Inc bought cygwin around 2002.
X-Windows. Officially “The X Window System”. It is the graphical user interface technology of all unixes. Unix diehards are accustomed to look down on graphical interfaces. They like command-line driven interface. Unixers presumes that command-line interfaces give them more control, precision, and efficiency. This lines of thinking has been passed down in the unix communities, because good graphical user interfaces or quality programing languages are hard to come by. They either cost money to acquire or time-consuming to design. Unixers do not like that. The system that thrives thru sprawling guerrilla development by fleeting students is the disparate programs that runs on command line. Therefore, command line ways of doing things proliferated and became the cultural norm. Since command-line necessarily make things harder, there's the macho element going for it among peers. However, because images and graphics are inevitably necessary or superior than text for human beings, the adoption of graphical interface by unixers is a matter of time. The unixer's preference for things free, made the badly designed X-Windows another “standard” in the unix world.
sudo. Heard of sudo? It's a make-do to cover unix's super-stup-id root==god permission system. Extreme pain in the ass to manage, but supposedly better than everyone becoming god.
Lynx is a text-only web browser. As late as 1995, you can still hear unix diehards clamoring about how lynx is superior to graphical browsers of unwanted features. These days you don't hear them that much anymore. Most of these people are dead, or dying. It's call evolution. If you are working in unix through their criminally primitive telnet, it's helpless that sometimes one must resort to lynx to grab a file or so. Stupidity beget stupidity. The year 2001 we are supposed to have HAL-like computers whom can read lips, but the unix folks insist on text terminals and badly-hacked commands codes and gets giddily smug when Perl's DWIM feature guessed something right. (DWIM stands for Dim Wit I Am, and pronounced Dim Wit. It is a fashionable locution of the Perl republic. Trumped by priests like Tom Christiansen.)
Revision Control and Data Syncing
Concurrent Versions System, is a classic revision control system, used by almost all Open Source projects around 2000.
CVS, like unix, is a backwater technology that holds a entire tech field by momentum. Non-textual or non-line-based textual languages and engineering's progress are bound by its insistent textual manifestation; sans graphics, sans automation, sans intelligence and you can't do a thing about it because the mob hogs on to free stuff.
Book: Open Source Development With CVS (1999) by Karl Fogel. Comes in PDF and several formats. This book is rather more beginner friendly. Hot coders may find this wordy.
Subversion is a modern CVS, done by much of the same developers as CVS, and following CVS ways.
There are quite a few other systems now, some of these are distributed (meaning: no central server):
Rsync is a fantastic command line tool for syncing a directory from one machine to another. (however, the traffic only goes one direction)
Unison is a fantastic tool for syncing directories on two machines. The difference between unison and rsync is that unison does the sync in both directions. That is, if the new files are both in machine A and machine B, and you want the updated files copied over to the other machine, then you must use unison.
For a tutorial, see: Linux Tutorial: 2-way Sync Files using Unison.
GCC stood for GNU C Compiler. It was the grand-daddy of all FreeSoftware, along with emacs, both written by the Free Software Foundation's founder Richard Stallman, started in the early 1980s. Today, GCC stands for GNU Compiler Collection, which handles compilation of many imperative languages.
GNU Privacy Guard (GPG). The name is chosen as a pun to the famous software Pretty Good Privacy (PGP) by Phil Zimmermann. Phil Zimmermann is a personal privacy advocate, who fought with the USA government for common citizens's right to use encryption software. Nevertheless, the software PGP created by Zimmermann is free but not FreeSoftware as defined by the Open Source/FreeSoftware community. Thus GPG is born as a replacement of PGP. One has to love the naming of things in the unix community.
MySQL. Do you know what's the most popular “$free$” SQL database on unix? That's MySQL.
If you are the unix simpleton type, then MySQL is your type of database. Features like transactions, views, sub-select, propagation are few integral parts of database. MySQL support none of these (as late as 2000), yet trumpet itself the fastest database on earth, and has the audacity to have a comparison chart on its website head-to-head with many commercial DBMS (Database Management Systems) such as Oracle and kiss their own ass to lead in stability and feature and speed.
PostgreSQL, is the antithesis of MySQL. A real database management system, and is licensed under GPL. As late as late 2000, MySQL tried to correct its errors and has some of the correctness features and changed it's license to some GPL compatible or the like. People of good sense please stick with postgresql.
A fairly complete Oracle doc of many tomes come in a CD. Oracle these days are free for personal use. (this is a indirect consequence of Richard Stallman's FreeSoftware movement.) You can probably order the CD cheaply somewhere on their site. For example, it comes with Sun Ultra5.
GIMP (GNU Image Manipulation Program), is a bitmap image editing program, similar in function to that of PhotoShop. Free, but also much inferior in quality.
ImageMagic is a command line program that batch process images, such as converting between formats, scaling, cropping, imprinting copyright, or finding the width and height of graphics. Absolutely wonderful.
Besides ImageMagick, i also use optipng.
I love emacs.
I use emacs daily to do programing in Perl and Java, unix directory navigation and file manipulation, shells (i run Oracle sqlplus inside emacs), ftp, email, read newsgroups, and occasionally web browsing (it has a built-in web browser). And, i also use features like built-in calender, and the superb build-in RPN calculator, syntax coloring, macro features, hex-editing, and write some small lisp functions to manipulate text.
Emacs is known as self-documenting extensible text editor. Emacs contains a documentation system similar in concept to HTML but a lean version of. For example, emacs that came in Linux system has documentation of all Linux man pages inside it, as well as complete documentation for emacs itself and tutorials.