U.S. Air Force Academy

Class of 1965



This site started as a result of a series of e-mails between classmates of CS-24 during the summer of 2010 in preparation for the upcoming 45th reunion of the USAFA class of 1965. All the gory technical details for geeks and other interested people is at the botom of this page here.

Early in the summer Bob Giffen did his usual 5-year reunion call to guys he stays in regular contact with and sent out a list of his contact info.

I wasn't going to be able to make it to the reunion but wanted to show my support so I floated the idea of a CS-24 wiki to help keep the group in contact. The idea seemed to e acceptable so I started investigating and time passed....

I had a goal of having something to show by the time of the reunion and I was not happy with the wikis I found. I tried:

and looked at others. Wikipedia has a good summary and additional links for finding out all you ever wanted to know about wikis, but the selection is overwhelming.

I was running out of time and decided I would put together a nice looking montage of our group. Since some of our classmates in CS-24 who didn't graduate had been attending reunions, I decided that the group should include all who started with us in the fall of 1961. So I started with the 1961 Polaris which, unfortunately, doesn't have our class by listed by squadron. I fooled around with my scanner but wasn't getting good results because of my scanner and because of the binding preventing getting whole page coverage.

By reaching to the recesses of my faint memory, I added the names I thought I remebered to the original CS-24 to the roster of graduates. After kicking the list out on the e-mail circuit, and getting input from Roy Bridges, Harry Harrison, and Brian Cullen, we came to the consensus that 31 of us were in CS-24 in the fall of 1961. (By the way, CS-24 and, I believe, all six squadrons in Fourth Group were newly formed that fall). As stated on the front page, Lee Allgood was a special case--he started in CS-3 but came to us later. So I used my license to put him in a picture as a snapshot of 31 very young men at a very special time in our lives. And Lee can also be put in a picture of CS-3--the magic of mechanical time warps!

The next task was to locate or determine the fate of all 31. Bob's list had some outdated info, so we started there trying to get a response from everyone. To make a long story short, though the power of the innternet and the cell phone, we found and made contact with or confirmed the status of all but one guy. Three were found after no contact for over 45 years: Bill Peavy, Dave Kreimer, and Denny Vasilik!. And if anyone has heard from Charlie Huff, please let him know we're still trying to find him.

Now I had a definite group to work with and started into getting suitable pictures. Bill said he had a good scanner and agreed to do the scanning. I looked carefully at the Polaris and found that I could separate the needed pages by cutting the threads and removing the appropiate sections of pages. I made sure all pages had numbers and then sent them to Bill. We experimented with various scanning parameters, eventually settling on gray scale tiff files at 1200 dots per inch. Bill found that best results and file size dictated scanning the tops and bottoms of a page were best. That had another benefit: the names were clearly there identifying the pictures.

We found the files were huge, about 74 Mb per 36-picture page part so we needed to find a practical way to transfer the files. I knew of the existence of free file sharing sites and, by googling it, found this one: <http://transferbigfiles.com>. It made the sharing easy, even for such large files. The total transfer size was about 1.5 Gb (not counting do overs for various editorial reasons).

Here is the pretty much final product, a pdf file suitable for printing and framing. Office Depot can print it on nice paper for three or four dollars. I have the process programmed so I can do the same for other squadrons easily once I get the pictures ready and agreement on who should be in the group.

Technical Details

I do all development work on my laptop, a company-provided Dell Latitude E6500 with 4 Gb of RAM. It's dual boot: Ubuntu 10.04 LTS (primary) and Windows XP operating systems (both 64-bit). I use my own networked server, an Intel quad-core host with 8 Gb ram running 64-bit Debian Lenny 5.1. It has three hard drives: 750Gb main disk, a swappable 250 Gb disk, and a 1 Tb drive. The latter two are used for backing up the main disk.

All source code, and this web site, is version controlled using bazaar. My company code uses bazaar locally and subversion through a VPN link.

The public web site, <http://usafa-1965.org> is hosted on my cloud server, which I call vh1, I rent from <http://www.rackspacecloud.com>. The server also runs Ubuntu 10.04 LTS. The web server software is nginx.

The automated part of the process is divided into several programs (all ASCII text files which can be viewed with any text editor, such as WordPad on MS WIndows):

update_web_site.sh bash copies files to local web site; uses rsync to update my cloud server
make-montage.pl Perl the driver for all input and output
CL.pm Perl a Perl module to contain names and associated data; auto-generated when needed
CL_ORIG.pm Perl a Perl module containing my original CS-24 names and associated data

I use make-montage.pl to both collect information from my "database" and to generate web pages and PostScript pictures (which are turned into pdf with ps2pdf). The program uses a Perl module from Graphics Magick to convert the tiff files to png files and scale them to the appropriate web size based on the known density of the tif files of 1200 dpi, their actual pixel dimensions, and an assumed PC screen density of 72 dpi.

The pictures

The scanned pages come in two parts, top and bottom. The number of classmates on a page part vary from 11 to 36. I made 27 directories, one each for the 27 page halves. The pictures are on pages 186 through 199, a total of 14 pages. Each page has two parts except for page 187 which has just a bottom part due to other data on the page. I work one directory at a time. I use gimp, a free program similar to Photo Shop, and open the page scan. The first time I use the list of names and copy them into a text file, encoding them as I explain elsewhere. The list of names then becomes a bash script that, for each name, copies the page file to a named file with a ".tif" extension. I then close the page file and gimp and exceute the script to generate the individual picture files. Next I use gimp and open about four person-named files at a time and rough crop each to the man's name on the file. After carefully checking that all files are cropped (the sizes of each go from over 30 Mb down to about 2 Mb after rough cropping), I delete the page file (which is just a copy of the original I keep for use again if need be).

The database

The database source consists of the directory structure and the individual person-picture tiff files. The source includes encoding of the each person's picture file to allow for proper printed spelling.

The initial input is not divided into squadrons, nor does it identify deceased members nor give nicknames, all of which I need for producing pdf pictures for CS-1 through CS-23 similar to that of CS-24. So I use an auxiliary file in which the encoded names are listed and I add nw data as I get it. The list is merged with the automatatically generated list and CL.pm is regenerated along with another list of names that do notyet have any data other than the Polaris base data.

File name coding/decoding


Given a hypothetical Polaris name like "Dumbsquat, W.W. Jr." I encode his tif picture file as "dumbsquat-ww-jr.tif". From that I can extract all the information I need intially.

The formats are shown in the following table. The format is designed to be handled by a simple translation algorithm. The encoded name meets several criterial I have for file names:

Although not important for the decoding algorithm, The reason for the lower-case only is for consistency and ease of typing. The bad news of the Windows world is the horrible lack of consistency in file nameing and I long ago decided to stick to lower case except in very special cases (which I cannot think of any reason for at the moment). Note that I have not checked the file names for Windows, and I don't think all the special characters are legal on a DOS or NTFS file system.

Examples of name encoding and decoding
Printed nameEncoded name
D'Alessandro, S.d,alessandro-s
De Groot, F. J.de_groot-fj
McGorry, J. P.mc^gorry-jp