I run a couple of Internet-facing servers for my website, side projects, and the like. I also have the pleasure of a home Internet connection that isn't always the best. (Don't we all!) It's useful to be able to monitor network conditions to specific servers or addresses -- usually to determine that my home connection is to blame.

There are numerous solutions for monitoring networked computers (Nagios, Munin, MTR in a screen session), but one stands out as being really good at visualizing network latency.

SmokePing -- written by Tobi Oetiker of RRDTool notoriety -- monitors network latency and visualizes it with a number of useful graphs. There are a lot of ways you can configure SmokePing to monitor and present network latency, but it's pretty dang helpful right out of the box.

Installing and configuring SmokePing is pretty straightforward for most Linux distributions, but I had a hard time finding a good example of how to do it on FreeBSD. So, here are the steps I took to get an Apache and SmokePing stack running.

I'm learning more about powerful tools like sed and awk while taking a break from my task management app project. One-liners are great for many reasons -- they're easy to stick in your .bashrc or .zshrc file as aliases or to incorporate into functions.

This particular one-liner simply traverses a music directory, organized as Artist/Album/Songs, and dumps it out in a pretty list.

In part three of my task management framework endeavor, I begin to flesh out the user experience that the implementation apps will try to accomplish.

I first want to determine how to handle task deadlines in a way that is intuitive, natural, and predictable for the end user.

This is part two of my quest to make a task management framework that is simple and extensible. In part one I included a list of high-level requirements. I also noted that I plan on implementing the framework in two reference applications, written in two languages, to help me self-evaluate the framework I've created.

This update focuses on the first draft of the serialization format, which is effectively the heart of the framework.