The abridged version of Doug McIlroy’s summary of the Unix philosophy is usually given as, “Write programs that do one thing and do it well.” As we all know, GNU’s Not Unix. Accordingly, GNU doesn’t really live up to this Unix philosophy stuff. Neither does GNU software.
Case in point: GNU emass emacs, the bloated editor-turned-snakeoil-cureall.
Don’t go away, I’m not going off on an anti-emacs rant. Why would I? I use it probably more than any other application other than my browser. But I’m also not deluding myself that it’s as massively anti-Unix as an application can be. A more Unix approach would’ve been what you see in the BSDs with simple little programs kind of gluing the whole thing together. The GNU approach builds and builds and builds so that things sometimes seem much more convoluted — and less elegant — than maybe they should be. But hey, it’s free as in beer and freedom.
GNU emacs doesn’t do just one thing, and it probably doesn’t do very many things well (at least for casual computer users). Sure, it’s a powerful text editor. But it’s also become a catch-all for all kinds of uses. It’s the proverbial kitchen sink. It’s a text editor, file manager, compiler, etc., and comes with so many tools that many other applications aren’t necessary if someone actually wanted to go all Thoreau and trim their use down to one application. I’ve written before that I’m a big fan of org-mode, which I use for everything from scheduling to producing quick formatted documents from an outline (my DSL hard drive page was formatted in org-mode; the HTML version looks better on my own server than on WordPress.com’s because I had to remove most of the styling and formatting). I also use a variety of other modes for various markup languages and for creating documents.
One can also add on any of the many bytes of elisp available from others, or write something from scratch. I’ve gone that third-party route with mew (and wanderlust) — even though emacs already comes with other e-mail user agents — and weblogger.el for posting to wordpress. I’ve also written and found other things, including interfaces to other programs. Some of these, like a mode to interact with gnuplot, have been very useful for work. Others further keep me focused within emacs so I don’t even have to leave it to do something. Or is it anything?
I decided that I wanted something that would give me more liberty with my music collection and with streaming audio, so I installed mpd (music player daemon). I’ve used it before and appreciate its simplicity and ability to be configured as I see fit. Like many other Unix-oriented programs, it requires another program (client) to function. I first installed mpc, which suits me just fine since I’d been using mocp (music on console) basically as a command line program; even though mocp can be run via its curses interface, I think it gets in the way and is just too clunky to use — it’s much easier to run mocp via various aliases (or even menu entries as I showed once before).
Back to emacs — could I control mpd within emacs? Of course. There are a few options. I first did the quickest: execute shell commands (mpc) from within emacs. Then I thought about adding MIME associations in dired, but that would’ve taken more time than I wanted to spend (especially with setting up various options for adding something to a playlist, playing immediately, etc., and that still did nothing to provide an immediate control to pause, stop, play, next, etc.). I decided to look around and I found something that appealed to me, and it’s called mingus.
I downloaded the code, set it up in my .emacs, and voila. It immediately showed my streaming audio in the status bar. I looked at its online help and stopped the current stream. I’d already set up in a playlist with three jazz podcasts I downloaded the other day. I decided to load that playlist and select a track.
I have a few things to tweak with respect to mpd-related directories but so far so good. Add music and podcasts to yet another thing I’m doing and/or controlling from within emacs. You average Distrowatch readers probably can’t control very much from gedit (or whatever that notepad clone is called), can ya. Nah. Didn’t think so.
UPDATE (2010-02-12): Set up more playlists while ago.
What up, juggalos? I also just added the firemacs add-on to firefox/iceweasel. I have conkeror installed, too, and I think from first impressions that I really prefer conkeror. Maybe I’m just more used to it.