hello, dammit.

A Long and Winding Road

It's happened again. I set off to investigate one specific thing, and wind up learning a whole lot about things in which I wasn't the least bit interested originally.

I'm looking into installing Mailman for one of my virtual domains. First I set off looking at alternatives to Mailman, as I have an unnatural fear of Python. I looked at Enemies of Carlotta, SmartList, and a host of other solutions. They all had some (perceived) short-coming, and since I'm already modestly familiar with Mailman administration, I decided to install Mailman onto my workstation. (`apt-get install mailman` is such a wonderful thing!)

To properly support my environment, I need to configure Mailman to interoperate with Postfix virtual domains. For some reason, I became concerned that Mailman might be a performance drain on my system. The Mailman FAQ suggested mounting my mail spool with noatime, so off I went Google-ing for "Postfix noatime". I found this thread on the Postfix users' mailing list, which I followed to the end, re-learning much about SCSI and RAID filesystems that I'd forgotten (and none of which is directly appropriate to my paltry IDE-based server).

Another Mailman FAQ addressed memory consumption, and how to diagnose it. This re-introduced me to vmstat, and I learned that new Linux versions (kernel 2.5.41+) support a -a option to vmstat that displays active/inactive memory. Not quite sure of the difference, I Linux Google-ed for "vmstat inactive memory", which led me to this discussion, which helped me better understand why my server looks to be using so much memory:

$ free
             total       used       free     shared    buffers     cached
Mem:       1035568     974844      60724          0      34752     561812
-/+ buffers/cache:     378280     657288
Swap:       971924          0     971924
$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0  58188  34752 561880    0    0     1     7    2     3  1  0 99  0

I'd been worried that my system was running dangerously low on RAM but the new -a switch to vmstat, with the previous explanation about "inactive memory", makes me feel much better:

$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free  inact active   si   so    bi    bo   in    cs us sy id wa
 0  0      0  58396 229728 586144    0    0     1     7    2     3  1  0 99  0

This whole process happens to me again and again. I set off to investigate mrtg to monitor my network performance, and that leads me to rrdtool, which in turns has me pondering what kind of script to call from cron: sh, perl, command-line php? Do I really want to run an SNMP daemon on my system, or can I get by with some fancy shell scripts? Heck, while I'm monitoring, why stop at network throughput? Why not monitor Apache performance (on a vhost basis, no less!), or Postfix performance?

Global Village

One of the things I most enjoy about participating in the Free Software movement, and something that is uniquely facilitated by the internet, is the global scope of conversation. Just today a fellow from the Estonian Literary Museum sent me an email enquiring about my NeoMail modification. It took literally no time at all for me to answer his question in the affirmative, but in that time my world has been greatly expanded! I'd never heard of the Estonian Literary Museum before, but now I know that

The Estonian Literary Museum (ELM) is a national scientific and research institution administered by the Ministry of Education of the Republic of Estonia. Its task is to collect, preserve, study, and display the national cultural heritage of Estonia.


Fifteen years ago I worked in a grocery store. One of the people who frequented this store had a bumper sticker on their car that said in white block letters on a green background "Where in the world is Estonia?" It was a question I asked myself aloud every time I saw that bumper sticker. The email today immediately brought that question back to the forefront of my thoughts!
Wikipedia: Estonia
Estonia - Official State Web Center
CIA World Factbook: Estonia

In a similar vein, my parents spent the last ten days in Croatia, my mom attending a conference there. It's an area of the world that I never thought about too much, but now I'm very interested in travelling there based on my parents' description and photos. This morning on the Debian Non-Profit mailing list I read about an institute in Croatia offering a residence program for Open Source developers!

The mailing lists to which I subscribe are filled with smart people from all over the world. It's such a terrific experience to be part of such a global village.


Yesterday was the second annual OhioLinux conference. This was my first time at this event, but my second Linux / Open Source conference. The very first conference I attended was OSCON 2002, in San Diego. That was an awesome experience, but I didn't get as much out of it as I could because I didn't really know anyone there. I didn't do much social networking, and didn't really go out of my way to meet people.

OhioLinux was a completely different story, though. Jesuit and DrBacchus from #wordpress drove up from Kentucky for the event, so I spent most of the day with them. I also ran into a number of familiar faces from the Central Ohio Linux User Group, which was a pleasant surprise.

Overall the conference was okay. The introductory keynote was a rambling, confusing, boring speech. A handful of attendees were both in the conference hall and in #ohiolinux on, were the keynote was mercilessly lambasted. Indeed, the IRC discussion was on several occasions more interesting than the scheduled presentation. And though most of the chatter was goofiness, it proved extremely handy to be able to ask someone sitting in the other room to report on the goings-on in that presentation. Out-of-band conversations inside the presentations were common at OSCON2002, too (and probably most geek conferences, any more), but this was my first personal experience with it. It was fun, and definitely helpful.

As DrBacchus notes, several of the speakers and presentations were rough around the edges, but I'd take that over glossy marketing any day. Only the Asterisk and Novell guys seemed to be blatantly pushing their sales agenda, whereas the other talks (that I attended, at any rate) were geared almost exclusively toward education.

DrBacchus gave two presentations, "Optimizing Apache" and "What's so Great About Apache2?", both of which were informative and easy to digest. DrBacchus is a terrific speaker, and a great guy to boot! The talk titled "Using Open Source Tools to Solve Big Problems: Email" piqued -- but quickly lost -- my interest. I'm sure for some it was a good introduction to email server management and spam mitigation, but for me it was mostly justification that what I've been doing all along is largely The Right Thing(TM).

I only caught a portion of maddog's closing comments, but what I heard was powerful. "Linux is community," he said. Absolutely. It was great to talk shop with fellow enthusiasts. It was great to put faces to names. It was great to share the energy with the other 600 attendees. I can't wait for another opportunity to do this again!

After the conference ended, there was an informal "party" at Dave & Busters. I arrived late, but had a great time with Jesuit and DrBacchus, especially watching them play the trucker game!

Here's the complete set of photos for the day.

Blogs and Wikis

Krzysztof Kowalczyk makes an argument for bundling a wiki with a blog. I agree wholeheartedly with his endorsement of wikis. I've used a few, and installed two of them myself, and I think they're terrific. But I don't think that wikis should be bundled with blogs (especially WordPress) by default.

First, blogs and wikis serve different puposes. Wikis can be used as a publication engine -- see the Wikipedia as a perfect example -- but the kind of thing you'd publish on a wiki is fundamentally different from the kind of thing you'd post on a blog. The power of wikis is the interconnectedness of all the data: you're only one click away from any other page on the wiki. That's why a wiki makes perfect sense for an encyclopedia, or a knowledge base, or random notes collections. Blogs have a certain interconnected-ness, what with trackbacks and pingbacks, but blogs impose more continuity ... my comments here will be linked to Krzysztof's site; but if someone else blogs their response to my comments, the connection won't be passed on to Krysztof automatically (unless the blogger specifically elects to trackback or pingback him as well as me). If someone uses my comment form below to comment directly on this post, Krysztof will never know unless he comes to visit. Blogs have a linearity to them that wikis don't.

Second, blogs have an implicit power structure that results from the limited selection of authors. A blogger chooses who posts top-level entries to his blog, restricting everyone else to mere "commenter" status. Commenters rarely get the ability to edit their comments; the blog administrator(s) have the sole power to edit or remove comments. The power structure ensures that a blog's readers are always in the position of respondent, and never initiator. In order to initiate, one must control their own blog. Wikis are completely different, though, because (usually) anyone can post and edit. Wikis level the playing field a bit, because any visitor can create new directions for participation. Visitors can correct their own comments, as well as correct the comments of others. Instead of one-to-many communication from a blog, wikis support many-to-many communication, where all participants are authors, editors, and readers. Although the wiki administrator still has absolute power, and wikis can be configured to restrict who can post, constraining wiki operation in this way vastly limits the utility of the software. If you're denying wiki features to people, why use a wiki at all?

Third, wikis lack much of the distribution conveniences of blogs: syndication feeds, trackbacks, and pingbacks. To really use a wiki, participants need to go to the wiki. A blogger can read aggregated blog entries in a feed reader, then post replies to an entry on her blog and alert the source that she's responding (trackback or pingback) without ever visiting the source blog. Blogs allow conversations to be carried out while maximizing each participant's convenience because blogs are predominantly one-to-many publications. Blogging in aggregate approaches many-to-many communication, but there's a lot more infrastructure involved to support that. Wikis gracefully support many-to-many communication by constraining the necessary infrastructure: the wiki is the hub through which all conversations are routed.

Integrating blogs and wikis probably doesn't have much appeal to too many people, since blogs and wikis really serve different purposes. The kind of people who want to use a wiki will largely be able to do so (or figure it out) for themselves. Integrating wikis within a blog package unnecessarily complicates the core package, increases support requirements from the development team, and may possibly bloat the package with features that people don't use.

(hat tip: Blogging Pro)