Focus on Software

David A. Bandel

Issue #73, May 2000

mcdl, disc-cover, cpuid and more.

The other day, I was working on a client's system and noticed the /usr/src directory filled with every 2.2.x kernel ever released. When I asked the administrator about it, he responded he always keeps up with each new stable release just in case there are any security-related problems with the old one. (Okay, I'll buy that.) When I asked him why he didn't just download the patches and apply them, he said he didn't know what to do with them. I'm finding system administrators aren't the only ones who don't understand the patch process, as I've sent instructions to a couple of maintainers of very large packages who didn't supply patches.

Those of you with small disks or slow Internet connections can appreciate the problem of downloading 16MB files each time there's a 2KB change. While I'm sure many of you don't notice the impact on the Internet, it's there. Imagine 10% of the folks running Linux (over one million users, if you believe the latest figure of 10 million plus users) wanting to upgrade at the same time. The 2.2.14.tar.bz2 is over 12MB. A patch file from 2.2.13 to 2.2.14 is 1.4MB. That's nearly an order of magnitude difference, and that is significant in both disk space and bandwidth. This amount of traffic would swamp the kernel.org servers as well as several major routers. If you start with new pristine sources each time you compile, you have to go through and recreate your kernel configuration (make [menu|x]config). If you patch up, that rather lengthy step is not needed. Using patch files saves everyone time, so save some bandwidth and patch the code.

mcdl: http://rsd.dyn.mil.wi.us/~rsd/code/mcdl/

mcdl provides a fast, easy way to catalog your CD collection automatically, using a MySQL database. The lookup is performed once over the Internet to CDDB sites. A GUI interface is planned for access/lookups/manual input of data. This is just the back end, but those of you who can use an SQL server (or an SQL monitor like xmysql) should find this useful. It requires the MySQL server, Perl, Net::CDDB module, discid, DBI and MySQL modules.

disc-cover: http://www.liacs.nl/~jvhemert/disc-cover/

The disc-cover utility will create a print file to print a CD cover for a jewel case. You can include an image file for use on the front cover. It uses a connection to a CDDB site to get the information for the song titles, but a manual mode is available. It can also print extended information, but you need to control the quantity of extended information manually or the layout will be destroyed. It requires the MySQL server, Perl and the FreeDB module.

cpuid: http://people.qualcomm.com/karn/code/cpuid/

Do you have any systems sitting around in which you're not sure what they have? Maybe you want to compile in support for mtrr, but only on systems that support it. This little utility will tell you all that and more. If you have more than a few systems around from different manufacturers or different models from one manufacturer, this utility will probably come in handy. It requires glibc.

fdupes: netdial.caribe.net/~adrian2/programs/fdupes-1.1.tar.gz

fdupes is a program to find and remove duplicate files in the directory provided on the command line (required). You must have write access to the specified directory. It requires glibc.

quotenotifier: http://www.bogus.net/~torh/

This Perl script can be run from cron or the command line, and will provide the current price of a stock or alert you when the stock goes above or below thresholds passed to the program. You'll need to know the stock's ticker symbol, since no search facility comes with the script. It requires Perl, the Getopt::Long, LWP::Simple and Mail::Sendmail modules and recommends cron.

freq: http://www.bangmoney.org/projects/freq/

This utility reads the lastlog and displays numbers of logins for all users. This is modifiable in several ways. You can include FTP users with shell account users, if you wish. A good informational tool. It requires Perl.

fphdb: http://www.lehigh.edu/~ajr4/fphdb/

This is a very polished, professional order and estimation program for a printing company. Customer, Product, Paper, Shipping, Order and Job Manager screens access a MySQL database. It requires a web server with PHP support, MySQL and a web browser.

phpLanParty: http://lanparty.hypermart.net/

Want to host a few rounds of Quake? Or another networked game you'd like to invite friends to play? Well phpLanParty will let you announce these games in advance, and players can sign up for them. Makes hosting network games easy. It requires a web server with PHP support, MySQL and a web browser.

GNU Pilot LogBook Pro: ftp://ftp.stampede.org/skibum/

This pilot logbook is designed after the Professional Pilot Logbook with which most pilots will be familiar. What you don't need to do is worry about the totals. This is well-laid-out and has a “Remarks and Endorsements” box, allowing you to enter as much data as you want—unlike the actual book, which is very limiting. Medical information isn't implemented yet, but should be added soon. It requires libgtk, libgdk, libgmodule, libglib, libdl, libXext, libX11, libm, glibc, pilot's license and airplane (last two optional).

David A. Bandel (dbandel@pananix.com) is a Linux/UNIX consultant currently living in the Republic of Panama. He is co-author of Que Special Edition: Using Caldera OpenLinux, and he plans to spend more time writing about Linux while relaxing and enjoying life in the “Crossroads of the World”.