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.
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.
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.
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.
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.
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 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.
grabmail -v ads-domain-1/jay/ejb@exchange -n -m "|qprocmail"which I have aliased to
exchange.
The -n tells grabmail to leave messages on the server.
This works fine for downloading my mail. However, some of my messages
are meeting requests. I can't process meeting requests in my
Linux-based environment very well, so I have to use Outlook Web for
that purpose. If I see something that looks like a meeting request, I
can deal with it in Outlook Web. Then, I can run
exchange -delseento delete all the messages that I've previously downloaded. Then -m "|qprocmail" pipes each message through qprocmail which is a very short script I have that runs procmail with certain commandline arguments and environment variable settings. I prefer to run procmail manually than to have the system do it, so my procmail recipes file is not in the standard location. If I want to peek at new messages without marking them seen or deleting them, and if I just want them to go into a temporary file, I can run
exchange -peek -m /tmp/mto achieve the desired result.
$Id: index.html,v 1.10 2008-06-16 01:13:24 ejb Exp $