Jay Berkenbilt's NOVALUG Presentations

At the May, 2005 meeting of NOVALUG, the Northern Virginia Linux Users Group, I gave a presentation about GnuPG and keysigning. The presentation covered some how-to information about key signing and some more explanatory material to try to teach people how this all works. You can download the slides here.

At the May, 2004 meeting of NOVALUG, the Northern Virginia Linux Users Group, I gave a presentation about my experiences migrating from Red Hat Linux to Debian GNU/Linux. You can download the slides here. The slides end up being a somewhat unpolished but hopefully useful comparison of a few aspects of the two distributions. It contains some information I wish I had known when I made the switch in December, 2003.

At the December, 2002 meeting of NOVALUG, the Northern Virginia Linux Users Group, I gave a presentation about iptables. You can download the slides, notes, and sample iptables configurations from my iptables presentation.

At the April, 2001 meeting of NOVALUG, the Northern Virginia Linux Users Group, I gave a presentation about my synchronization tools also mentioned below.

At the May, 2000 meeting of NOVALUG, the Northern Virginia Linux Users Group, several people gave presentations on various mail packages. I spoke briefly about some tools I'd written that I use for my own mail. Many of these tools are tightly integrated with my login environment and would be hard to extract. However, some of the tools pretty much stand alone. I have made these tools available "as is" for people to look at, play with, steal, etc. As far as I'm concerned, these can be considered in the public domain, but please be courteous about their use. As time permits, I will hopefully add some additional packages to this page as well.


Jay Berkenbilt's Open Source Software

DISCLAIMER

NOTE: THIS SOFTWARE IS PROVIDED AS IS. Insert standard disclaimer stuff here. I wrote this software for my own use. I am making it available in case others may find it useful. I don't claim that it will be useful to you or that you will not get ill when you read the code. I hope that you will find it useful, and that maybe you'll even use it or modify it to suit your needs. I was hoping to write some nice documentation sometime, but I finally decided not to wait for that to happen before putting it up for public consumption. I am more than happy to answer questions or receive comments about these utilities. You can email me at ejb at ql dot org.

Command-Line PDF Manipulation Utilities

One of my open source projects, QPDF, is a collection of command-line PDF tools that can be used to linearize (web-optimize), encrypt, and decrypt PDF files. It can also be used to inspect the innards of a PDF file, to transform it between having compressed object streams or not, and various other more advanced uses. The casual user who occasionally wants to create a web-optimized PDF or add or change password protection on a PDF file may find these useful. Developers who are generating or trying to understand PDF files will also likely find it to be very helpful. You can download QPDF from http://qpdf.sourceforge.net/. If you are a Debian user, you can also install the debian qpdf package from your debian system.

Automated Test Framework

I have developed a simple but powerful automated test framework called QTest. It is a test framework designed for testing code that has been designed for testability. It has its own website, qtest.qbilt.org, to which I refer you for additional information.

Object-Oriented Build System

I have also developed a build system called abuild, also with its own website, www.abuild.org. Abuild is what you might call an object-oriented build system. It is designed for building large systems that include many software components, possibly written in multiple languages and for multiple platforms. I call it object-oriented because information about how to include a given component in your build is actually encoded within the component. Abuild manages these interfaces and the dependencies between components at the component level. I refer you to the website for additional information.

Synchronization Tools

I have a package called the Q Synchronization Tools that I have written gradually since the early 1990s, but which has been quite stable for several years. This package allows you to write a file containing a list of the name, size, modification time, modes, ownership information, and file-specific data such as number of entries for directories, major and minor device numbers for character and block devices, or target for symbolic links for collections of files. You can control what it does by using filter files. Using these tools, you can easily enable yourself to keep multiple files synchronized across multiple locations. I use this to keep my home directory, or parts thereof, synchronized across probably close to a dozen sites.

Please be aware that these are power tools. They can be dangerous if not use properly. They are quite complex at first, and they are not well documented (yet) other than in the source code. However, a number of people are using them successfully, so if this piques your interest, or you learned about it at the April meeting, please feel free to grab a copy. I'm always happy to answer questions about this software. There are other tools out there that are similar to mine. The program "rsync", is similar, but requires a live connection. It uses efficient checksum-based difference computation to make synchronization very efficient in this case. My tool is probably still the most useful for keeping multiple sites synchronized when the sites cannot be physically connected by a network or dialup line. These tools include a utility called make_sync that creates a synchronization package that can be applied at another site with apply_sync, and various other tools. (In case you are wondering, "Q" is my favorite letter. What can I say? Some people don't outgrow these things.)

patmv

patmv is a short perl script that lets you rename files in bulk using an arbitrary perl expression (pattern). The idea was inspired by an example program that came with the perl 5.000 distribution, though I have expanded on the concept in this program. Common examples uses include changing a bunch of file names from upper case to lower case or doing a pattern substitution in a bunch of file names, but there are many more applications. The distribution includes a manual page with several examples. It helps to have some perl programming knowledge to get the most use out of this program, but a non-programmer can still do useful things by following some of the examples in the manual page.

Mail Software

Anal-retentiveness (with a hyphen)

$Id: index.html,v 1.10 2008-06-16 01:13:24 ejb Exp $