Membership Roster File Notes
This is a help page that describes the files that are made available to users. Two primary kinds of files are provided: CSV and PDF.
CSV -- is a Comma Separated Value file and it is a useful format of data that is processed sequentially by a program, a script utility, database utility, or Microsoft Excel. More information on using CSV files is found below.
PDF -- is an Adobe Portable Document Format file that can be viewed by your browser or downloaded to be printed or saved.
CSV File Format Description
- Each line in the file is terminated by a line-termination character. Unfortunately, the various operating systems have not agreed upon a standard but for the most part you can convert from one format to another. I explain line terminators below.
- Each line describes the information for a single entry (a cousin). The individual fields or values are separated by a comma. This is why it is called CSV, comma-separated-value.
- The fields, in the order they appear, are: Member Number, Call Sign, Name, City, State, Zipcode, and Flags. If an * appears in a field then that means that there is no known value for that field. In all cases this is because the call sign is not defined in the FCC ULS database. The Flags field is explained below. For most cousins this field is null or blank.
- The entry lines are ordered by member number from first (member 1) to last.
Flags Field Values
SK Indicates that member is a silent key. NF Indicates that the call sign is not found in the FCC ULS database. This usually means that the call sign has expired or was cancelled a number of years ago. If a call sign is recently (last few years) cancelled or expired an entry is maintained in the ULS and you can still derive information. NA Indicates that the call sign is not active. An in-active call sign is one that is usually expired or has been cancelled for one reason or another. RX Indicates that the call sign has been reassigned to someone else. This indication is sort of a guess on my part in the logic that I built into my ULS processing program. Basically, if I find the call sign in the ULS database but other indications point to this not being the same person as our member then I mark it with the RX indicator. These are possibly suspect though, an RX may be a perfectly valid cousin.
Line Terminator Games Programmer's Play
An ASCII (text) file usually consists of lines of text. Each line of text is terminated by what is called a line-terminator character or characters (sometimes two characters are used). Every programmer has their personal favorite, mine is the Unix/Linux style which is a single LF (line-feed) character known to programmer's as the '\n' character.
A line-terminator is important because without it, or without recognizing the correct character, a file that is supposed to be made of many lines may appear as a single line that stretches out to infinity or fills your screen depending on how it is that you are looking at the file. Because of this problem, if you open a text file that has Unix style line-terminators on a Windows computer using Notepad, you will not see any lines. Everything is bunched up together.
The CSV files I create are text (or, ASCII) files and they have lines that are terminated by the Unix style line terminator. That is because I create these files using scripts and programs on my Apple Mac computer which is a Unix system. All Mac OS X versions are based on the CMU Mach Kernel (Unix) operating system. The older Mac programs running OS 9 (and older) are not Unix and they use a different line-terminator as explained below.
Line Terminator Characters
Unix/Linux/MacOSX: LF The single character known as the Line Feed character, denoted by '\n' in most programming languages, is used for most non-Windows systems. Windows 98/NT/XP: CRLF Windows requires two characters to mark a line termination. This is the Carriage Return character followed by a Line Feed character. It is denoted by '\r\n' in most languages. This line termination is unique to Windows and Windows derivative operating systems. Apple Mac OS9: CR Older Mac computers running the Pre-OS X operating systems, such as System 7, OS 9, and so on, use a single Carriage Return character '\r' as their line terminator. You don't see this one as much anymore.
Generating Member Roster PDF and HTML Files
Generating the PDF Files
As you might guess, I do all of my work on an Apple Mac computer and therefore I have a tendency to use Unix like utilities and software. Instead of using something like Microsoft Word to generate the Member Roster document, I use LaTeX (pronounced "la-tech") which is a mathematical typesetting language that itself is based on TeX. Note that the X in the word LaTeX and TeX is not an X at all but rather the Greek letter chi and I am too lazy to use an alternative Greek font.
I use the following steps to create the PDF file:
- Using a Python program, I read the Member Roster CSV file, and
- ...the LaTeX input file is generated from the CSV data, and
- ...Using TeXShop (a LaTeX utility), I generate the PDF file.
Note that this PDF generation work is still in development progress. As of today, Sunday April 29th, I have generated a crude and sloppy-formatted table of member names.
Generating the HTML File
The members roster web page is a huge table with over 1400 members and each member takes about 10 lines of HTML so that is about 14,000 lines! I am certainly not editing that by hand. I keep a member roster data file in CSV format (the same one described above that you can download). I use this CSV data file as input to a Python program that generates the appropriate HTML commands for each member. This program can be instructed to generate the file in reverse order (last member to first) or forward order (first member to last). My current preference is reverse order as it seems more useful in that most members that check in to the net are usually within the last 100 new members (with a few important exceptions such as Jim, W7ZHQ, member number 400).
Checking the Member Roster With the FCC ULS Database
The FCC Universal Licensing System Database is available for download from the FCC web site. These particular set of files are updated on a weekly basis.
Periodically, I will check our member roster against the latest version of the FCC ULS database. I download the latest files and then I convert several of the files to a format that is more condusive to processing. Yes, I have a Python program that does this conversion and re-organizing work. Then, I use another Python program to read in the member roster CSV file and update the address information using the FCC database information. If your current QTH is not correct in the FCC database then it will not be correct on the member roster so keep the FCC informed of your movements (as you are required per your license). I do this validation against the FCC database about once a month or so.