“Professional service
that won't make you nervous”

Macintosh  Perl  Linux

Perl Projects

Here are a few of the various small projects I created for my own use, mostly, that I've decided to make available to the general public, due to their general nature. They serve as some simple examples of what I can do, and as well it is my hope that some of you might find them equally useful.

Additionally this also tends to garner suggestions for enhancements that I had not originally thought of, or suggestions for other projects altogether, as well as bug-catching and squishing. :-)

Both TailFilter 0.76 and Modulereport 1.9 have clearly stabilized at their current releases. I haven't had an update request or a bug report in ages, and both of them have been running quite solidly for me under daily usage. One of these days I'll get around to re-releasing them as a "point-oh" (N.0) release version with no additional changes, just to confirm their general stability.

A while back, I released an update to my RPM Description Generator package, that allows it to also scan thru a directory of .rpm files, and provide links to them for people who maintain online repositories for apt/yum, and of all the programming I've released, this one has seen the most activity according to the web-logs. This program makes it much easier to see which RPM packages are which, while still letting one easily download them via the web, in addition to the usual methods (apt/yum). You can see it in action here. Many thanks to che, from irc.freenode.net (see the FAQ) who gave me the initial inspiration for doing this, and some much needed testing and feedback. RPM package maintainers should find this extremely useful.

Tailfilter

A Perl script for Linux iptables and ipchains firewall log monitoring, which transforms the normal log output into something you can read at a glance, and can also alert you when new items hit the packet log.
Released: Mar 3, 2003; revision: 0.76currently stable, and in daily use on my system.

Time::Elapse

A small Perl module I wrote to experiment with tied variables, and to give me relative time approximates when repeatedly downloading quantities of file updates and other similar repetetive reporting trivia. (This is a complete CPAN-ready distribution archive, by the way, and is also available from CPAN itself.)
Released: Dec 12, 2003; revision: 1.24_02currently stable

CGI::NoPoison

This Perl module is also a complete CPAN-ready distribution, basically enabling one to more readily test for the Poison Null-Byte problem in user's incoming data when using CGI->Vars.
Released Dec 7, 2005; revision 3.11

WWW::Mechanize::TinyURL

Additionally a CPAN-ready archive, though not available from the CPAN itself, this Perl module makes it easy accessing TinyURL.com via a scripted interface. Bundled with the distribution are example scripts: an XChat plugin, and a shell script for the linux command line.
Released: May 18, 2005; revision 1.03

modulereport

A program I wrote to ease my admin duties a tad by collating the installed Perl modules in a list that is more easily scanned through, and aiding in locating which modules are in need of updates from CPAN, or where CPAN is out of synch.
Released, Nov 5, 2003; revision 1.91currently stable, and in daily use on my system.

RPM Description Generator

A one-off short perl program to generate a nicely formatted output list of names and full descriptions for all installed RPM packages or a directory of RPM files, for overview purposes. Apt/Yum repository maintainers, this is your tool!
Released, Dec 21, 2003; revision 1.0currently stable (unless someone suggests or submits some revisions)

showio

A one-off short perl program that someone in the #redhat channel had asked me if I could whip up for him, to inspect the active network interfaces and show the packet traffic stats in human-readable form.

Other Perl Usefuls

crontab2english

Converts the output of crontab -l to comprehensible english, so you can be sure you've done it correctly. Great little util to have around if you often use crontab to automate script execution. -- by Sean M. Burke

loco

loco (short for log colorise) is a complete rewrite of Michael Babcock's 'logcolorise.pl' done to make adjusting the output far simpler. Basically it is for the purpose of colorizing a tail of /var/log/messages for easy reading. Requires the Term::ANSIColor module be installed. -- by Jules Stuifbergen

Vim useful

Whilst trying to find a convenient way to automatically convert things like n-dashes (–), and the fancy quote marks (“”) to their html-entity equivalents, I managed to come up with the following shortcut for vim to assist in the process.

nmap <leader>utf :.!perl -MHTML::Entities -Mutf8 -lne 'utf8::decode($_); print encode_entities($_, "–—“”’‘…");'<CR>

Added to your .vimrc file, this little gem enables you to correct any of the entities named in the function from their utf-8 counterparts, to their entity forms. You may encounter this sort of thing if you've ever copy-and-pasted a word document's text into an html paragraph, and suddenly seen odd-looking characters reflected in the browser window content which don't look at all like they should.

Simply position the cursor on the line you wish to test, make sure you're in normal mode, and type \utf. Voila! This additionally works as a vmap (as well as an nmap) for correcting a visual selection in the vim window.