Copyright (c) 2004 Toomas Karmo. Revision history: 20051113T055029Z/version_0001.2003 (made minor corrections); 20051112T235216Z/version_0001.2000 (added several further paragraphs, in part by creating Sections 9 and 10); 20051108T052252Z/version_0001.0000 (finished base version); 20051106T060513Z/version_0000.9000 (added still more material and started polishing); 20051105T200949Z/version_0000.0450 (hastily replaced bare logic blueprint with some unchecked first-draft prose); 20051105T060616Z/version_0000.0400 (hastily added still more material); 20051103T051922Z/version_0000.0100 (hastily added lots of material to the base version, in the realization that the essay was already getting readers on the Web); 20051011T210021Z/version_0000.0010 (started the base version). Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2, or any later version published by the Free Software Foundation. In the terminology of the License, this document has no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. The definitive machine-readable copy of this document is in the 'Literary' section of http://www.metascientia.com. A copy of the License is included in a hyperlinked section, entitled GNU Free Documentation License, of the machine-readable copy.

No-Frills GNU/Linux:
Imposing Order
on Filenames
and Directory Hierarchies

For the reader in a hurry, here's an overview with hyperlinks to the relevant sections, further down the single ultra-long page (you're reading its initial paragraph now) that displays this twenty-thousand-word essay.

The first section, 'About This Essay' and the second, 'Basic Workflow Concepts', lay foundations. The third, 'Filenames: Case, Sort Order, and Related Issues', is likewise foundational, talking about conventions governing a fundamental chore, the naming of directories (in Microsoft and Macintosh terminology, "folders") and their contents. The fourth, 'Allowing a Degree of Untidiness in the Home Directory', argues that there is no need to keep one's home directory tidy, provided an appropriate "Big Four" of subdirectories is present to impose order on what lies below home in one's filesystem hierarchy. The following four sections, namely the exceptionally long 'Organizing the Maintenance Area' and the shorter 'Organizing the Public-Documents Archive' and 'Organizing the Private-Studies Area' and 'Organizing the Client Area', explore this Big Foursome of handy directories. I finish with short sections entitled 'Further Reading' and 'Acknowledgements'.

1. About This Essay

How can we keep files on our GNU/Linux workstation in good order, so that we can easily find what we are looking for? Nowadays, with GNU/Linux coming into more and more widespread use, the question touches the full range of professionals: not only the natural scientists on faculty at the universities, but also such people as freelance nonfiction book writers; journalists; lawyers; public servants; and of course, now even more than at the 1990s dawn of GNU/Linux, software developers. Further, the question is of interest to the student embarking on university studies and to the information-technology manager counselling end users (as when such a manager, having been engaged by a government deploying many tens or hundreds of lean-and-mean GNU/Linux machines for its administrative cadre, is asked to specify an end-user training curriculum). Finally, the question is of some interest to the architect of the large, customized XML-driven "Document Management Systems" and "Content Management Systems" now being rolled out within large organizations, notably within today's international business corporations.

Although I write in the first instance for Unix-, notably GNU/Linux-, aware readers, much of my analysis proceeds at a level of abstraction high enough to make it neutral among operating environments. The contemporary Macintosh OS X environment combines a user-friendly GUI facade with a BSD Unix interior. It it therefore possible in OS X to invoke a command-line prompt and handle files, including directories, very much in the way sketched here for GNU/Linux. In Microsoft, one has the option of pulling up a window with a "DOS prompt", communicating with the machine in a language developed in the 1980s as a sort of reworked Unix subset. In any kind of Mac or Microsoft work, moreover, and also in today's sophisticated corporate XML-driven browser-interfaced intranets, one can apply many of the concepts in this essay at a GUI level (remaining mindful in such an application that the GUI end user tends to say 'folder' where the traditional Unix-trained workstation owner says 'directory').

To make issues concrete, we take a possible real-life scenario. A GNU/Linux workstation owner in natural science may be wondering how to file all the following items:

We will not address this specific scenario in what follows. But a few readers may later, having finished and digested this essay, wish to revisit the scenario, taking it as a simple comprehension exercise and working out how the listed items are to be filed. Any readers who are unsure of the correctness of their answers or for any other reason wish to talk about electronic filing are welcome to contact me by e-mail. An appropriate subject line is any string containing both no-frills GNU/Linux and filenames.

In much of what follows, I will be displaying examples from my own workstation. I have for the most part resisted the temptation to tinker with the examples, beyond making a few ((SNIP)) edits and in one rather sensitive case forging or hacking (as I there warn readers) the displayed timestamps. One temptation to maintain the bella figura I have, all the same, indulged to the hilt. I normally type in haste, at a speed in English of, to one significant figure, 70 words per minute. In consequence, I make some error, some philosphy for philosophy, some reductoin for reduction, in easily every fifth line. Most of those errors I have corrected, applying the spell-checker not only to my words in this essay but even to the examples displayed from my real-life workstation environment.

2. Basic Workflow Concepts

2.1 Basic Workflow Concepts:
The Fourfold Division

We start by considering a single governing concept, designed to impose a degree of order on the looming chaos of workstation activity. If we engage with the exact natural sciences, with the life sciences, with humanities, with technology, with law, or with some similar intellectual field, our activity tends to oscillate between study and service. We study a subject, whether broad or narrow; on the strength of that study, we contribute some service to a "matter" or "project", whether big or small, for what may in a loose sense be called a "client"; we study again, whether in that same subject or in some other; and we again contribute some service, whether to the same client and project, or to a different project of the same client, or to a different client altogether.

The workstation is kept in order by mirroring this natural oscillation. We therefore set up two separate working areas, or collections of files. On the one hand we have an area for preparatory studies. On the other we have an area for client service.

The preparatory-studies area is for its part best set up as a pair of domains, with on the one hand an area in which we simply archive our private copies of published digital documents, on the other hand an area in which we actively work on our private-study notes. Into the former sub-area we put such things as the Richard Gray digital spectral-classification atlas (duly downloaded from a North Carolina astronomy server) in PDF or PostScript, or the Credit Lyonnais Securities Asia 2005 'Sun Screen II: Investment Opportunities in Solar Power' small-book PDF (duly downloaded by clicking on a hyperlink in the Web site for photovoltaics trade journal Photon), or conceivably some ArXiV physics preprint from the ArXiV server. Into the latter sub-area we put such things as our notes on 'Sun Screen', perhaps accompanied by our copy-and-paste notes from some Web pages mentioned in 'Sun Screen'.

Although the distinction between published documents and private-study materials is often unimportant, it comes in handy just often enough to be justified. Quite apart from legal issues surrounding the disposal of a deceased workstation-owner's estate (we are going to encounter those recondite issues below), there are practicalities of quick-and-dirty archiving. For instance, we may be leaving town temporarily, in haste, and may need to take along from the workstation some modest, 900-kilobyte, notes on environmentalism. (Here "take along" might mean copying the notes via FTP to some public, universally accessible, space-limited server, or sending them somewhere in an e-mail attachment of manageable size, or putting them onto a ZIP drive or a floppy.) Bad luck may have it that whereas our private study notes are terse, we have downloaded some megabytes' worth of PDF publications from a source such as Greenpeace. What we want is a small, quick-and-dirty *.tar file, constituting a complete archive of all and only our private-study environmentalism notes. In our rush to catch the train, we do not wish to fuss with an explicit exclusion of the PDF material when we invoke tar. It is the clear separation between published and private-study materials that lets us get away with a simple invocation in the style tar -cf quick_and_dirty.tar the_overall_enviro_studies_directory, bypassing the intricacies of tar --exclude=.

One further area is necessary. We need a place on our workstation in which we store maintenance materials - that is, materials needed to keep our workstation running properly whether we happen to be undertaking private study today or, on the contrary, happen to be serving a client today. Here are two examples of such maintenance materials:

We think of this further area as foundational, i.e., as logically prior both to studies and to client service.

We thus have a fourfold scheme (appropriately implemented on the workstation with four directories right below the home directory):

2.2 Basic Workflow Concepts:
Some Demarcation Issues

We now examine three tricky demarcation issues arising from this fourfold scheme.

(A) Here is a problem case involving material that could go into either the first or the second of the four main areas. (Admittedly, it is a made-up case rather than one I have encountered in running my own workstation.) Most of the software on our workstation comes (let us suppose) from the international Debian GNU/Linux project and consequently has its documentation meticulously archived at install tine by the Debian package-installation scripts in /usr/share/doc, under conventions ultimately documented in a published piece of project legislation, the Debian Policy Manual. There is no point in fussing further about the filing of such documentation. We may, however, some day find ourselves forced to install some commercial GNU/Linux software outside Debian, with documentation separately packaged. Where, now, should such documentation go? Does it belong in the maintenance area, along with, say, the vendor's digital authorization key and our own notes on what had to be done at install time to get the software working properly? Or does the documentation belong by contrast in the public-documents area, like an ordinary downloaded book on computers?

This tricky case is resolved by looking not at the contents of the documentation but at our intention in storing it. If the documentation will be discarded when we stop using the software, then it belongs in the maintenance area. Some software documentation, however, we keep because it takes on a life of its own, as a reference work. For instance, the documentation on a symbolic-computation package may contain some background information on Fourier transforms or matrix inversion, helpful in our general mathematical reading, and therefore worth keeping even if that specific software tool outlives its usefulness and gets replaced with a symbolic-computation package from some competing vendor. In such a case, there are various ways to proceed. (a) We may file the problematic manual within the maintenance area but with a symbolic link inserted in the public-documents area as a reminder. Alternatively, we may, as a not-interestingly-different variant on this tactic, file the problematic manual within the maintenance area but with a zero-byte descriptively titled reminder file, a "human pointer", say FOR_matrix_inversion_SEE_ALSO_matlynx_docs, created at the command-line prompt with the incantation touch FOR_matrix_inversion_SEE_ALSO_matlynx_docs. These two approaches are appropriate if our main interest in the manual is as a resource for our software, with its work-of-mathematical-reference aspect a strictly subordinate consideration. We then take it that if the software is uninstalled, we may delete the manual with a clean conscience. That deletion will simply leave behind a broken symbolic link, or a no-longer-quite-apposite zero-byte human-pointer file, as a reminder from uninstall time onward of the mathematical textbook we have lost. (b) In the less likely event that the manual is useful first and foremost as a mathematical textbook, we will file it in the public-documents area, but with either a symbolic link or a human-pointer zero-byte file in the maintenance area. In that case, we will retain possession of the manual at software uninstall time. We will take it, further, that if the manual proves inaccurate as a mathematical reference, requiring to be thrown out, then we may delete it with a clean conscience. That deletion will simply leave behind in the maintenance area a broken symbolic link, or a no-longer-quite-apposite zero-byte human-pointer file, as a reminder from purge time onward of the software-maintenance resource we have lost. (c) If we really cannot decide which aspect of the problematic manual is the important one, we will file a copy of the manual in both places, soothing our uneasiness over the ensuing redundancy with the reflection that document engineering sometimes pays the price of redundancy to achieve an overarching goal of safety.

(B) Next, we consider a problem case involving material that could go into either the second or the third of our four main areas. (This, unlike the case just disposed of, does come up, over and over again, in my own work.) Let us suppose that we are surfing the Web for information on wind turbines and that we compose a lot of notes on what we read. There is no demarcation problem with these notes themselves, since they clearly belong in the private-studies area. But let us now imagine that we also copy and paste, as plain ASCII text, many slabs of prose from many different Web pages (as it might be, the sites of these wind-turbine vendors and those wind-energy public-policy advocates), putting everything into one big ASCII foo.txt file. Is foo.txt a public document? Or is it, on the contrary, a set of private-study notes?

To this I answer: Not really a public document. My reasoning is that in compiling the scrapbook, the workstation owner has added value, extracting interesting parts of Web pages out of longer pages and putting the selected texts into some more or less deliberate order within foo.txt. A conceivable lawyer's test makes the issue clear. Upon the workstation owner's death, is foo.txt a simple chattel, to be disposed of in a manner analogous to the disposal of a published book sitting on a wall shelf? Or does foo.txt form, on the contrary, part of a literary estate, to be archived and guarded and treated with due respect for information security, its disposal becoming a delicate task analogous to the disposal of a drawerful of private handwritten papers? The latter interpretation is clearly favoured. Admittedly, there are grey areas. If scant thought had been put into the selecting and organizing of the foo.txt materials, one might be tempted to dismiss the file as a mere public document. But on the whole, the temptation is to be resisted. The case is a little like the messy candy-box of magazine clippings, brochure fragments, and even ripped-out book pages in the drawer of a deceased professional. The contents of that candy box should be presumed to form part of a literary estate, and should therefore not be disposed of casually: the guiding presumption must be that it is not, so to speak, the used book dealer down town but rather the archivist of the University of Bluechapel, under the guidance of a formal confidentiality review, who deserves to get the potentially-ever-so-revealing box.

(C) Finally, we consider a problem case (one arising in a minor way in my own work) involving material that could go into either the third or the fourth of our main areas. Let us suppose the workstation owner to be enrolled as a student in the course CHEM105, in the summer of 2006, in the University of Brownfields. Many electronic files get created as work in that course proceeds. Lecture notes, for instance, are downloaded from the lecturer's Web site. Past exam papers are downloaded both from the lecturer's own Web site and from other sites, including sites outside Brownfields. Problem sets are worked not only with pencil and paper but in some instances also with electronic "notebook" files written by symbolic-computation software. Various administrative notices, about such things as the tutorial timetable, are received as ASCII e-mails or as PDF files from various sources, including the lecturer's Web site and the teaching assistant's e-mail account. Matters are made still more complex by the fact that the workstation owner has already studied the intellectual content of CHEM105 to some extent in the summers of both 2004 and 2005, using textbooks including, and yet not confined to, the official CHEM105 textbook. Moreover, the same intellectual content is liable to be revisited, with private note-taking, even in 2020 or 2025. Does this entire heterogeneous assemblage of materials get filed in essentially one place?

I give a two-part answer to this question. (a) The files that relate to the administration of CHEM105, with CHEM105 conceived of as a chore undertaken for the university rather than as a building up of one's private intellectual capital, are files for the "CHEM105 project", with the University of Brownfields as client. (b) The files that relate to the actual learning of chemistry, whether in the coursework summer of 2006, or in the preliminary-reading summers of 2004 and 2005, or in the refresher-reading years after the course is over, all belong together, in a basic-chemistry section of the private-studies area.

So much, then, for the basic philosophy of filing. In my own practice, I have not found more than a tiny handful of tricky cases, even though I have now spent perhaps six years evolving my present system. Still, various issues concerning the details of filing may, depending on the workstation owner's exact circumstances, call for supplementary private documentation. I for my part do have a philosophy-of-filing rulebook, called NNNN____guiding_policies.txt and stored in the uniquely appropriate place, namely the maintenance area, although I have so far not had to put into it any hard-cases law. We will take a closer look at NNNN____guiding_policies.txt in Section 5 below.

3. Filenames: Case, Sort Order, and Related Issues

The Second Extended filesystem traditional in Linux makes pathnames case-sensitive and in addition allows them to be long (running to as many as 256 characters). We can put both features to work, encoding a significant amount of information within the names themselves.

Upper case, in particular, deserves to be handled as a powerful, rather special tool. It makes sense to reserve upper case for encoding information about the place the given item occupies in some larger set of directories or ordinary files on the workstation and to reserve lower case for encoding information about the contents of the item (the files under it, if the item is a directory; the significance of the text, numbers, executable instructions, images, or sounds it contains, if the item is a regular file). So, for example, it makes sense to prefer correspondence_unesco over correspondence_UNESCO as a directory name and to prefer correspondence_unesco_2006.txt over correspondence_UNESCO_2006.txt as a name for a file containing plain-text e-mail transcripts.

What, on the other hand, about a file whose purpose is to back up a file of plain-text e-mail transcripts? (Such backups are a precaution against accidents in which a text-editing utility ends up corrupting the original file. Some command-mode typos, in particular, can lead to disaster with the otherwise very helpful text editors in the vi family.) In this case we consider a first step to an acceptable naming style to be correspondence_unesco_2006.txt_BAK rather than correspondence_unesco_2006.txt_bak. Admittedly, we should in strict logic prefer a timestamped style such as correspondence_unesco_2006.txt_BAK200510112T152200Z. I will say a little more about timestamps later in this essay, and I discuss that topic in depth in my companion essay 'No-Frills GNU/Linux: Timekeeping, Timestamping, Timelogging'.

Upper case is particularly useful in a string of letters placed at the beginning of each of a number of items in a single directory, to ensure that the GNU/Linux directory-listing commands ls and dir generate rationally structured screen displays. Here is an example. Imagine that, as part of our effort to learn about renewable energy sources, we are studying wind power. Then our private-studies area may well contain a plain-text, *.txt, file on turbines; another such file on the lead-acid batteries typically used in the small off-grid installation to store charge from the turbine-driven generators; and a third such file on the "inverters" typically used to produce alternating current for home appliances from the battery bank. If we name these files turbines.txt, batteries.txt, and inverters.txt, we get an illogical sequence in the directory listing:

-rw-------   1 verbum   verbum    1920 Sep  4 21:20 batteries.txt
-rw-------   1 verbum   verbum    3141 Sep  1 21:33 inverters.txt
-rw-------   1 verbum   verbum    2718 Sep  4 23:25 turbines.txt

The problem here is that the investigation of wind-power hardware logically starts with upstream components, notably turbines, continues through intermediate technologies such as batteries, and finishes with such downstream components as inverters. Somewhat more satisfactory is the use of sort-ordering prefixes A, B, and C (with a suitably large number of underscores; it is convenient to think in powers of two, and so to say to oneself 'two, four, eight, …' in deciding on such numbers):

-rw-------   1 verbum   verbum    2718 Sep  4 23:25 A____turbines.txt
-rw-------   1 verbum   verbum    1920 Sep  4 21:20 B____batteries.txt
-rw-------   1 verbum   verbum    3141 Sep  1 21:33 C____inverters.txt

However, this does not allow for the possibility of interpolations. It could be that as our studies progress, we find an unexpected need to interpolate a file of notes on generators between the notes on turbines and the notes on batteries and to add notes on preliminary wind-survey methods before the notes on turbines. Several years of experience have shown me that problems are kept safely at bay, no matter how complex the work in hand may be, if the sort-ordering prefix is written with four letters, rather than with one, and if a generous use is made of letters towards the middle of the alphabet (so that files can be added easily to the beginning or the end of a directory-listing sequence should the need suddenly arise). Working along these lines, we can name our files in the style

-rw-------   1 verbum   verbum    2718 Sep  4 23:25 DNNN____turbines.txt
-rw-------   1 verbum   verbum    1920 Sep  4 21:20 INNN____batteries.txt
-rw-------   1 verbum   verbum    3141 Sep  1 21:33 NNNN____inverters.txt

It is now easy to update our notes later, say to

-rw-------   1 verbum   verbum     963 Oct 14 12:01 CNNN____surveys.txt
-rw-------   1 verbum   verbum    2718 Sep  4 23:25 DNNN____turbines.txt
-rw-------   1 verbum   verbum    8302 Dec 10 01:13 FNNN____generators.txt
-rw-------   1 verbum   verbum    1920 Sep  4 21:20 INNN____batteries.txt
-rw-------   1 verbum   verbum    3141 Sep  1 21:33 NNNN____inverters.txt

The exact choice of letters is arbitrary. The only point that matters is the final ordering we see when we generate a display by, for instance, issuing the command ls -l at the command-line prompt. With the sort-ordering prefixes fully four letters long, and stuffed for the most part with letters from the middle of the alphabet, we rest assured that emergency interpolations will remain possible for quite a long time:

-rw-------   1 verbum   verbum     963 Oct 14 12:01 CNNN____surveys.txt
-rw-------   1 verbum   verbum    2718 Sep  4 23:25 DNNN____turbines.txt
-rw-------   1 verbum   verbum    2718 Dec 30 13:25 ENNN____drive_shafts.txt
-rw-------   1 verbum   verbum    2718 Dec 30 13:40 EPNN____gears.txt
-rw-------   1 verbum   verbum    8302 Dec 10 01:13 FNNN____generators.txt
-rw-------   1 verbum   verbum    1920 Sep  4 21:20 INNN____batteries.txt
-rw-------   1 verbum   verbum    3141 Sep  1 21:33 NNNN____inverters.txt

In many real-life situations, it is pedantic to try to make directory listings clean. It probably does not matter too much in what order our workstation lists the files in a directory that contains, as in this example, only seven files, where the content of those files is nothing more elaborate than flat-ASCII study notes. However, there are situations in which the rational ordering of directory listings does become important. As an imaginary example, take a contract job for a commercial client, in which we build a small Web site for a firm selling stencilling and stamping equipment to industrial customers. (Hypothetical though this example is, it closely mirrors a situation in my own work at the end of the 1990s, as I was directing a two-country team in the assembly of a Web site for an overseas government agency.) Imagine that the site is small enough to allow all XHTML files to be kept in one directory. The site is built from the usual index.html, plus twelve other XHTML files:

CNNN___e-mail_and_phone_list.html
CPNN___courier_directions.html
GNNN___our_history.html
GPNN___our_philosophy_of_service.html
MNNN___prepared_inks.html
MPNN___custom_ink_formulation_services.html
PNEN___portable_stamping_machines.html
PNFN___nonportable_stamping_machines.html
PSNN___stencil_machines.html
RNNN___consulting_services_marking_machinery.html
RPNN___consulting_services_marking_consumables.html
XNNN___this_www_site_tech_notes.html

This hypothetical client has imposed the requirement that all the XHTML content outside the index.html homepage be reachable in a single homepage click. People who study the cognitive psychology of software interface design warn developers to avoid presenting the end user with more than a relatively small number, roughly half a dozen, of simultaneous choices, unless those choices have somehow been segregated into groups. (The cognitive psychologists then remind the software or Web developers that the requisite grouping can be achieved in various ways: for example, by varying the vertical spacing, or again by presenting each group of buttons in its own distinctive colour. In a real-life multi-person Web construction project, the abstract demarcational ideas would be worked out by the editor-cum-content-manager, with implementation at the level of whitespacing and colouring left to the graphic artist.)

We accordingly select our sort-ordering prefixes to mirror the groupings which we shall be instructing our graphic artist to achieve in laying out the page. First come two files for contact information, which we have here coded with sort-ordering prefixes CNNN and CPNN. Prefixes such as CMMM and CPMM would do just as well. But we avoid a pair of prefixes such as AAAA and AAAB, in case the commercial client suddenly requires us, later in the life of the project, to add content somehow logically prior to the two files embodying contact information. Next come two files talking about the human side of the firm, isolated in our coding with prefixes whose initial character is G. The next three groups (M, P, R) present the client's core advertising message. Two of the three files in the P group are named rather subtly, to indicate to the business-writing team on the project that they contain tightly linked stories, for two contrasting types of industrial machinery. The filenaming leaves the possibility of interpolation open (since between PNEN and PNFN one can fit some such sort-ordering prefix as PNER or PNFD), yet not invitingly open. At the very end comes a file named with the prefix XNNN discussing such issues as support for CSS-blind browsers. In the name for that file, we prudently use the prefix XNNN rather than ZNNN, so as to allow for the possibility of the client's suddenly adding material that has to come still later in the underlying business-writing logic (perhaps, for instance, some legal boilerplate that covers the entire page, including even the at-the-moment-supposedly-final remarks on browser support).

Top-down planning is useful in a complex task such as a Web development project. By first deciding on the filenames, including the groupings inherent in their names, we start at the appropriate place, with the forest rather than the trees. It is once we have decided on a proper scheme of filenames that we fill in details. In particular, in a Web development project, the sort-ordering prefixes make it possible to keep *.txt and other subsidiary files, needed as the project takes shape, cleanly associated with their *.html counterparts. Chaos is thereby avoided when, for instance, a business writer hands a story in *.txt or *.doc or *.rtf format over to an XHTML specialist for formatting, or when the XHTML itself is created in a couple of varieties for appraisal and critique within the team:

CNNN___e-mail_and_phone_list.html
CNNN___e-mail_and_phone_list____raw_from_client.doc
 
CPNN___courier_directions.html

GNNN___our_history___interview_notes.txt
GNNN___our_history____draft01_from_writer.rtf
GNNN___our_history____draft02_from_writer.rtf
GNNN___our_history.html …

In actual filenaming practice, strings like draft01 and draft02 are not always sufficiently informative. If there are five drafts, it can be useful to have the filename remind us which draft it was that emerged from Monday's brainstorming session with the commercial client over morning coffee, and which reflected, rather, some late-night Internet research, towards the end of the week, into the client's competitors. The need to keep the filenames informative is best met by using numerical timestamps. For details, the reader is referred to the second section of my companion essay, 'No-Frills GNU/Linux: Timekeeping, Timestamping, Timelogging'. Here it suffices to make the very quick remark that a time such as 23:52:05, in the normal civil time of Toronto, on 2005 October 13, is in the careful notation of the International Organization for Standardization (ISO) written 20051014T035205Z, and that an acceptable low-precision, date-only, variant on this timestamp is 20051014 or (depending on how pedantic we want to be on the difference between the closing hours or 2005 October 13 and the opening hours of 2005 October 14) 20051013. We can thus write our filenames as

GNNN___our_history___interview_notes.txt
GNNN___our_history____draft20051010T150403Zfrom_writer.rtf
GNNN___our_history____draft20051014T035205Zfrom_writer.rtf
GNNN___our_history.html 

or, if less precision is needed, as something like

GNNN___our_history___interview_notes.txt
GNNN___our_history____draft20051010from_writer.rtf
GNNN___our_history____draft20051013from_writer.rtf
GNNN___our_history.html

4. Allowing a Degree of Untidiness in the Home Directory

We are all tempted to accumulate junk in our home directories. I will argue here, taking my own setup as a case study, that this temptation is not worth resisting.

At the present instant, that is to say the instant referred to by ISO timestamping conventions as 20051103T000730Z, the simple ls -1F command reveals an embarrassing 123 items in my home directory. (Here ls means 'List the files, including those files that are directories, beneath the current working directory, provided these files are not "hidden" in the sense of having names that start with a dot.' There are many "hidden" files of a utility character, such as the shell-configuration file .bashrc and the text-editor-configuration file .exrc. The incantation ls -1, with its numeral 1 rather than the more often used letter l, means all of what was just said, but with the further proviso '…and put that listing into a single column on the screen, not into two columns.' Finally, the incantation ls -1F means all of what was just said, including the proviso, but with the second proviso '…and display a slash after the name of any file that happens to be a directory.') Here are extracts from the 123-item list:

    05086revision1pt3.pdf
    … 
    ANNN____maintenance/
    … 
    David_Jimson.letter.1
    Desktop/
    ENNN____library_of_public_docs_etc/
    … 
    GNNN____studies_private/
    HP-PhotoSmart_P1215-hpijs.ppd
    … 
    NNNN____clients/
    … 
    ZZNN____quasijunk_eg_informal_baks/
    ZZZX____utter_junk/
    … 
    mail/
    … 
    t 
    … 
    t__lambda_central
    tbh
    … 
    tt
    ttt
    tttt
    tttt_Prandtl
    … 
    win2000Pro.cfg

Inspection of those extracts reveals how home-directory jetsam tends to accumulate.

The file 05086revision1pt3.pdf is from a client project that saw me copyedit a little physics. In the course of the project, I received this file from the client as a workflow input. (In strict fact, I have changed the filename slightly to preserve client confidentiality, while keeping the overall filenaming style unaltered.) Does the presence of this item in the home directory mean that something has gone wrong? Not really. I actually keep 05086revision1pt3.pdf as an appropriately situated leaf on a tree rooted in my master clients-and-projects directory. Evidently, however, I found it useful to put a temporary copy of that file into my home directory for ease in viewing it with some such tool as (GNU/Linux) Adobe Acrobat or xpdf and then forgot to clean up.

The directory ANNN____maintenance is one of the Big Four already discussed. It is the repository for all aspects of maintenance, of course organized into a big tree of sub-directories, sub-sub-directories, sub-sub-sub-directories, and so on. So it, unlike 05086revision1pt3.pdf, is unreservedly welcome under the home directory.

The file David_Jimsson.letter.1 came from Heaven-knows-where. (Here again, I have altered the filename a little, to preserve someone's privacy, while keeping the essence of the filenaming style.) Coming from a trivial stream of correspondence, it lacks archival value. If David Jimson were someone I am helping with some grave problem, for instance if this David were someone I am counselling or in some other way supporting, he would count as a (perhaps non-paying) client, and his file would be in my client area, filed under the appropriate David Jimson project. As things actually stand, though, I must have obtained the file as an attachment to a trivial chit-chat e-mail, must have parked it in my home directory because I was processing the day's e-mail in a rush, must have taken some such simple action as sending a reply e-mail, and then must have forgotten to clean up.

The directory Desktop was not created by me at all but by some piece of GNU/Linux software. Consequently, I cannot safely delete it, and cannot even - at any rate, cannot without a troublesome investigation of the software configuration possibilities, by looking into the software manual - rename it. The directory is intended for a window manager or session manager that I do not normally invoke, but that I keep available as a standby resource. (Normally, I use the lean-and-mean FVWM window manager, which has its own configuration files, quite separate from this mildly unexpected Desktop area.)

The directories ENNN____library_of_public_docs_etc and GNNN____studies_private are the second and third of the Big Four, and so again are unreservedly welcome.

The printer-description file HP-PhotoSmart_P1215-hpijs.ppd is a further embarrassment. It belongs elsewhere, altogether outside the /home directory hierarchy, wherever a Debian GNU/Linux collection of printer-describing *.ppd files is supposed to reside. Since I got my HP PhotoSmart 1215 inkjet printer working with stable-branch Debian GNU/Linux 3.1 (the "Sarge" branch), and since the printer does not look for a *.ppd file in an end-user home directory, this item can be deleted without causing printing to fail. And yet I forgot to delete it.

The directory NNNN____clients, being the fourth of the Big Four, is again unreservedly welcome.

Although ZZNN____quasijunk_eg_informal_baks and ZZZX____utter_junk are not among the Big Four, they do have a certain importance and legitimacy. The former is supposed to sweep up stuff that might prove mildly useful some day and yet has through poor housekeeping accumulated in the home directory or in some other not-quite-appropriate place. The directory ZZZX____utter_junk is what its name says.

A moment ago, I remarked that David_Jimson.letter.1 and HP-PhotoSmart_P1215-hpijs.ppd should have been deleted. In fact, however, it might have been better to have moved then into one or the other of the two directories just mentioned. Deletion in GNU/Linux does not make it straightforwardly possible to get a file back again, and I might, just possibly, be wrong in my present assessment that there is never going to be any use for those Jimson and PhotoSmart materials.

The availability of ZZNN____quasijunk_eg_informal_baks and ZZZX____utter_junk suggests a reply to the critic of GNU/Linux who objects that here, in contrast with the Macintosh and Microsoft interfaces, a trashcan is lacking. The reply is that we can if we wish implement the rm, or "remove", command not as the dangerous ELF 32-bit executable /bin/rm but as a special user-crafted bash script or bash function, specifically as a wrapper for /bin/rm and /bin/mv, generating a user-friendly dialogue at the command-line prompt when the command rm foo.bar is entered:

    "Remove" foo.bar in what sense: 
    1. by moving it with /bin/mv into 
       ~/ZZNN____quasijunk_eg_informal_baks? 
    2. by moving it with /bin/mv into 
       ~/ZZZX____utter_junk? 
    3. by deleting it irrevocably with /bin/rm?
    Please make your choice 
    by typing the appropriate numeral. 

Next, we have the files t*. I write 't' for 'temporary': these are all junk files, strictly needed only for a few seconds as I work on some bigger file. I do almost all my writing with a text editor rather than with one of those file-bloating "word processors" that keep appearing in GNU/Linux in imitation of the proprietary operating environments. I find the best text editor to be some member or other of the venerable vi family, since that family is lean and mean, and in addition is well documented. (I have the Hewlett-Packard vi book on my shelf and may some day add the O'Reilly offering, which I now find available in, dramatically enough, a sixth edition.) Working in such an editor, I often issue commands like :12-15w! ~/t for 'Please overwrite the current material in home-directory file t with the contents of lines 12 through 15' and :578r ~/t for 'Please read the current contents of home-directory file t into the file herewith being edited, making the insertion just after line 578.' This gives the effect of a Microsoft or Mac scratchpad. It then proves, of course, useful enough to have multiple scratchpads, in a workflow in which one sometimes says not :12-15w! ~/t but :12-15w! ~/tt or even (for a delicate situation which I guess involves the copying-and-pasting of some lines of text referring specifically to choice of "central lambda", in other words of mid-spectrogram wavelength) :12-15w! ~/t__lambda_central.

Finally, we have win2000Pro.cfg, as a trace of my work performed with Microsoft tools. The mission requirements of a certain paying client induced me some years ago to create a Microsoft area within my GNU/Linux desktop, as a a VMWare virtual machine, and in that area to boot up Win2000 Professional in tandem with Microsoft Word for one project, and in other projects to use the Microsoft-based book-indexing package CINDEX. The various Microsoft-formatted client inputs and client deliverables I archived not in the VMWare virtual-disk file but in the canonically prescribed clients-and-projects area within Debian GNU/Linux.

How worked worked up should we get by such an accumulation of junk? I answer: Not very. If we wish to list our Big Four directories, so as to recall their exact names, and in the same process to list other useful directories such as the Two-Graveyards-from-the-Land-of-ZZ, we can use appropriate wildcarding. Secure in the knowledge that we have put ____ into the filenames of the Big Four and the ZZ Two, and that few or no junk files have such names, we throw the -1 and -d switches on a wildcarded ls invocation, as follows:

  $
  $ls -1d *____*
  ANNN____maintenance/
  CNNN____tools_apparatus_etc/
  ENNN____library_of_public_docs_etc/
  GNNN____studies_private/
  NNNN____clients/
  ZYNN____dotfile_baks/
  ZZNN____quasijunk_eg_informal_baks/
  ZZZX____utter_junk/
  $  

(The second of these two switches means 'Please list only directory names of the form *____*, i.e., please refrain from listing the contents of such directories.')

What is happening with directories CNNN____tools_apparatus_etc and ZYNN____dotfile_baks on my workstation? We have not pondered these so far, and yet they look rather important!

Important they are, in the former case for me personally, in the latter case probably for anyone. The directory CNNN____tools_apparatus_etc mirrors my own particular physical circumstances, reflecting the fact that in my cramped living quarters, I have not only clothes and books but even boxes, containing such things as electronic measuring equipment and lenses. Not too many readers of this essay will be in my precise poverty-stricken situation. Nevertheless, I explain, since the explanation provides an opportunity to make, or rather to recapitulate, a big point, of interest to most readers. The point is that to keep track not only of computer files but of storage boxes and (what is for most people, including me, mission-critical) cardboard filing folders, one can integrate pointers to real physical objects with the ordinary files on the workstation. I do this in a manner I have sketched in what is logically a predecessor of this essay, namely in the final section, 'No-Frills GNU/Linux in the Noosphere: Details from a Debian Implementation', of my long 'No-Frills GNU/Linux: Philosophical Foundations'. But for emphasis, I now recapitulate the points made there with the fresh example of CNNN____tools_apparatus_etc.

Inspection of this directory reveals the following:

  $
  $pwd
  /home/verbum
  $cd *tools*apparat*
  $pwd
  /home/verbum/CNNN____tools_apparatus_etc
  $ls -1
  CNNN____maths_and_drafting_and_drawing_inventory.txt
  CNNT____maths_and_drafting_and_drawing__CARTON/
  NNNN____electromag_and_electronics_inventory.txt
  NNNT____electromag_and_electronics__CARTON/
  PNNN____optics_inventory.txt
  PNNT____optics__CARTON/
  RNNN____chemistry_inventory.txt
  RNNT____chemistry__CARTON/
  $

The *.txt files are presently zero-byte files, created with commands such as touch CNNN____maths_and_drafting_and_drawing_inventory.txt and serving as reminders of the places into which it may some day be desirable to put a detailed inventory of my physical possessions, in plain ASCII.

The four zero-byte files CNNT____maths_and_drafting_and_drawing__CARTON, NNNT____electromag_and_electronics__CARTON, PNNT____optics__CARTON, and RNNT____chemistry__CARTON, on the other hand, correspond to four big cardboard boxes, known in the stationery trade as 'Banker's Boxes', in which I keep such things as my graduated chemistry-lab cylinder, my digital multimeter, and a couple of cheap lenses with associated optical-bench mounts. The boxes (or three of them, at any rate; I keep goofing up in small ways) are correspondingly labelled in black ink, with wildcard asterisks to reduce the burden of label-writing and label-reading. In particular, the lowest of the labelled boxes, and therefore the one hardest to retrieve from the metre-high stack, is labelled RNNT____*chemistry*.

By keeping track of physical things in this way, I have only to look at my workstation to find a canonical name for the physical item I seek to retrieve for the day's task, and on the strength of that canonical name to figure out where in the hopelessly overstuffed room to reach for the item. Since the chemistry materials come at the end of the filename listing, I can see that the box with the graduated glass cylinder is at or near the bottom of my stack of boxes. Consequently, in the unlikely event that upcoming Observatory gardening, say, obliges me to pack my transport bag with a vessel for measuring five millilitres of fluid, I can put my hands rather quickly on the specific box that has the desired glassware, scanning the workstation and reading just one paper label rather than straining, from an awkward position, to read many such labels.

Why, it may be asked, put chemistry last, by selecting the filename prefix RNNN in place of, say, BNNN? In my particular technical-scientific-intellectual circumstances, chemistry is of marginal importance, in contrast with the rather central topics of optics and electronics. Given my circumstances (other people will be in a different position), it is therefore rational for me (a) to make its directory name come at the very bottom of the ls -1 column and (b) to minimize physical-manipulation time by having its corresponding cardboard box sit below the more-likely-to-be-opened optics and electronics boxes.

My method of keeping track of physical items is only a mild convenience in the case of a one-metre stack of Banker's Boxes. However, the method comes in very handy indeed for keeping track of a continually proliferating stock of cardboard filing folders. The latter point I develop at length in the 'No-Frills GNU/Linux in the Noosphere: Details from a Debian Implementation' section of my companion essay 'No-Frills GNU/Linux: Philosophical Foundations'.

So much, then, for CNNN____tools_apparatus_etc. The directory ZYNN____dotfile_baks is more quickly disposed of. Here I keep, and in some rather similar place many readers may want to keep, timestamped backup copies of such "hidden" files as .bashrc. It is useful, for instance, to take a timestamped backup of .bashrc before editing (such edits happen often, as one keeps adding or retiring aliases or functions, to reflect the changing dictates of one's workflow), and from time to time to sweep up the backups into ZYNN____dotfile_baks:

  $
  $pwd
  /home/verbum
  $cd *dotfile*bak*
  $pwd
  /home/verbum/ZYNN____dotfile_baks
  $ls -a .bashrc*
  … 
  .bashrc____BAK20050604T033441Z
  .bashrc____BAK20050809T192847Z
  .bashrc____BAK20050817T223133Z
  .bashrc____BAK20050818T162243Z
  .bashrc____BAK20050910T183747Z

5. Organizing the Maintenance Area

5.0 The Maintenance Area:
Snapshot of the Top Level

Here is a quick, in fact an eleven-second, tour of the top level in my maintenance area:

  $
  $pwd
  /home/verbum
  $cd *maintenance*
  $pwd
  /home/verbum/ANNN____maintenance
  $ls -1
  AANN____maintenance_policies_etc/
  AENN____tool_development/
  CNNN____headers_etc/
  ENNN____bin/
  NNNN____addresslists_etc/
  RNNN____journals_etc/
  SNNN____facilities_and_projects/
  $

5.1 The Maintenance Area:
Policy Document on Filing Rules

The directory AANN____maintenance_policies_etc is the right place to put a policy document on filing rules, such as was as mentioned at the end of Section 2 above. The time has now come to reproduce most of my own version of this document.

My particular document-of-rules (filenamed, for no profound reason, NNNN____guiding_policies.txt) is rather ancient, dating from 2001. That was the year I sat down and analyzed the problem of filing. I put enough effort into composing NNNN____guiding_policies.txt to make it more or less unnecessary to refer to that file over the next four years. The act of writing, in other words, forced me to think, and indeed forced me to think hard enough to be ram the resulting concepts into longer-term memory.

I would urge my readers not to take this NNNN____guiding_policies.txt as a set of rules to be followed mechanically in their own workstation operations. Rather, it is to be taken as illustrative material, as an example of the general kind of private rule-making that private circumstances may conceivably dictate.

I present my document here directly in its raw point-and-subpoint-and-subsubpoint plain-ASCII formatting, but with a very small number of deletions marked ((SNIP)):

  __basic principles of office layout:
    * L-shaped desk, 
      with 
      + hard-docs arm for reading and writing paper docs 
        (_in {t.karmo} actual practice includes 24 over-desk 
          pigeonholes)     
        __hard-docs arm includes areas 
          - for both papermail-as-yet-unopened, 
            and papers-as-yet-unfiled
            (_in {t.karmo} actual practice, 
              these are 2 of the 24 over-desk pigeonholes) 
          - for folders pulled-and-not-refiled
            (_in {t.karmo} actual practice, 
              these are some of the remaining over-desk pigeonholes) 
      + soft-docs arm with PC workstation 
        for reading and writing digital docs
  __basic principles for soft files: 
    * soft files are kept under some type of Unix
      ((SNIP))
  __basic principles for hard files (folders, books, floppies, CDs): 
    * all hard files which happen to be collections of loose
      papers 
      (_folders of paper, boxes of papers...; but not books 
        or binders)
      are entered in the workstation, 
      with a directory name ending in the string ____HARDCOPY 
      __this directory is never the TOP directory for a single matter
        __so, for instance, if client foo has project
          20011016T152707Z__rooing_the_har_with_green_paper
          and that project so far generated paper files without
          digital files, instead of creating the directory
          20011016T152707Z__rooing_the_har_with_green_paper____HARDCOPY
          we create the directory
          20011016T152707Z__rooing_the_har_with_green_paper
          and UNDER it put some such thing as
          LNNN____useful_papers_including_coloured_stock____HARDCOPY
      __justification: 
        + this helps 
          make it clear at filing time whether to start a new folder
          (box, ... ) or, on the contrary, use an existing folder or box 
          __it is not necessary to go pawing through the shelves
            before taking the decision
        + the workstation can be programmed to list
          all the *HARDCOPY directories, 
          thus generating a full shelflist
        + it becomes easy to see to where        
          the digital files are supplemented with hardcopy files 
        + if a matter starts out being paper-only, and later 
          in its evolution  
          generates some digital files,
          a clear audit trail is kept of what is paper, 
          what is digital, 
          with everything bundled tidily into a directory
          that is neutral as between paper and digital
          __in terms of the example above, 
            ((SNIP))
            parent directory              
            20011016T152707Z__rooing_the_har_with_green_paper  
            is neutral, being capable of having under it
            directories which refer to hardcopy materials AND directories
            which refer to digital materials
    * no attempt is made 
      (_yikes: we live dangerously)
      to allow for possible transfer
      of files from North America to other continents, 
      even though 
      + outside North America A4 supplants 8.5"-by-11"
      + Library of Congress classifications 
        (_used heavily in this formalization: see below) 
        may be exotic on continents other than North America
    * no legal-length filing folders are tolerated
      (_all folders are for 8.5"x11" papers)
      (_recall that record-management professionals in North America
        now deprecate USA legal-length folders)  
    * hard files 
      (_even books, floppies, CDs) are kept as far as possible
      in ((SNIP)) stackable filing crates
      (_available in Toronto from ((SNIP))  ) 
      (_stackable in principle from floor to ceiling) 
      stacked with bottom to wall, 
      with long side horizontal, 
      (_i.e., with short side vertical, 
        i.e., with box in landscape-not-portrait orientation, 
        i.e., with filing folders vertical) 
      with male connectors on crate pointing to floor
      and female connectors on crate pointing to ceiling
      (_mnemonic: "Use missionary position") 
      with each filing-folder tab 
      meant to be read by a person standing to the left
      of the tab, and with the reader's eye moving
      downward 
      (_that ensures that if filing folder were to be placed with bottom
        parallel to floor and long side parallel to line of sight 
        (_i.e., with the plane of each filing folder perpendicular
          to the line of sight) 
        then file tabs would appear as in a standard file-cabinet
        drawer) 
      (_mnemonic: "Stand on the left of the tab and read down") 
      with the sort-order-early files to the left of the sort-order-late
      files
      (_that ensures that if filing folder were to be placed with bottom
        against floor 
        then file tabs would be
        as in a standard file-cabinet drawer) 
      (_mnemonic: "As you stand on the left, 
        you see the sort-order-early files earliest") 
    * those hard files which consist of filing folders
      are marked thus: 
      + on tab official markings, 
        and no official markings anywhere else,
        the tab containing 
        exactly two lines, as per following examples: 
        - ((__EXAMPLE))
          ~/*public_docs*/Q/QB________astron*
          QB51.3 I 72/Anderson IRAF scripts
          ((/__EXAMPLE)) 
          __Library of Congress numbers
            are used to track public documents 
        - ((__EXAMPLE))
          ~/*studies_private*/Q/QB________astron*
          QB981 P424 Peebles Cosomology/comprehension
          ((/__EXAMPLE))
          __Library of Congress numbers
            are used to track private studies 
        - ((__EXAMPLE))
          ~/*clients*/n/nebular_visi
          20000825T010203Z__train_((SNIP))
          ((/__EXAMPLE))
          __ISO CCYYMMDDThhmmssZ timestamps are used
            to track client projects
            __"20000825T010203Z__train_((SNIP))"
              is "Project Train the Staffer ((SNIP))", 
              started 2000-08-25 at 01:02:03 UTC
        - ((__EXAMPLE))
          ~/*clients*/t/toronto_univ
          19980901T120130Z__ast425h/presentation_199902 
          ((/__EXAMPLE))
          __"19980901T120130Z__ast425h/presentation_199902"
            is one big task in the ast425h coursework, 
            started 1998-09-01 at 20:13:07 UTC--namely, that task which
            is the 1999 February seminar presentation 
      + elsewhere any convenient markings, 
        to have mere unofficial standing
        (_for example: pencil annotation at bottom of folder, 
          to facilitate putting the folder into pigeonholes
          over hard-copy desk when folder has been taken
          out of official filing and has thereby
          become  a folder-in-use) 
    * shelf organization of hard files imitates as far as possible
      the hard-drive-directory organization of soft files
    * ((SNIP))
  __basic conceptual organization 
    for both hard and soft files
    reflects workflow from basic maintenance to 
    assembling a library of public docs to studying the library
    to using the acquired knowledge to service a set of clients 
    (_the four-letter identifiers "ANNN", "ENNN", etc in what follows
      are useful for imposing a clear sort order in Unix directory
      listings, but have no deeper conceptual significance): 
    * ~/ANNN____maintenance
      __hard files include equipment manuals, 
        ((SNIP))                
      __soft files include software-tool development files  
        (_for instance, files needed to create
          small Unix sysadmin scripts in bash or perl) 
      __soft files include timelogs, appointments diaries, 
        private financial bookkeeping
        (_but not, e.g., wordprocessing of income-tax letters
          __income tax is a matter for a client, 
            in Canada the Canada Customs and Revenue Agency
            __concept of a client is discussed below) 
      __colloquially in paper filing "~/*maintenance*"
    * ~/ENNN____library_of_public_docs_etc
      __colloquially in paper filing "~/*public_docs*"
      __Library of Congress numbers subdivide this area
      __((SNIP))
    * ~/GNNN____studies_private
      __colloquially in paper filing "~/*studies_private*"
      __Library of Congress numbers
        subdivide this area 
      __((SNIP))
    * ~/NNNN____clients
      __formal studies, 
        e.g., at Toronto University of
        would go here, 
        Toronto University of being a client
      __Canada Govt of Canada Customs and Revenue Agency 
        filings would go here, 
        the government agency being a client
      __colloquially in paper filing "~/*clients*"
      __this area is subdivided alphabetically 
        __so that 
          + Toronto University of is in the t subarea
          + Canada Govt of Canada Customs and Revenue Agency
            is in the c subarea
  __whatever other languages may be used in filing, 
    English is always visible and governing
    (_even when work is being done for, e.g., 
      some Estonian client) 
    (_since English is universally read, 
      this ensures that file ordering will be universally intelligible) 
  __basic organization of mirroring on other hosts
    __where foo is the original version of
      some directory or ordinary file
      on some host, 
      * roo_20010822T013422ZMIRROR 
        is its mirror at 20010822T013422Z
        __we do not require that foo and roo be the same name
          __we normally name mirrors in the style
            UNNN____veritas_MIRROR, i.e., by using the U????____
            portion of canonical namespace
        __we always end a mirror name with MIRROR
          __justification: 
            a mirror is a quite special file
          __we do not END the mirror name with the timestamp  
            __justification:
              we wish to distinguish mirrors from mere timestamped
              backups
      * roo_MIRROR is its mirror if we elect not to make a formal
        record of the time of the mirroring
    __if in the original dir foo contains file bar, har, 
      then it is permissible on a mirroring host
      to create foo_20010822T013422ZMIRROR or foo_MIRROR
      and then to put under foo files bar and har, 
      or even bar without har

5.2 The Maintenance Area:
Tool Development

Our tour of the top level of ANNN____maintenance continues with the directory AENN____tool_development. Here are kept the working files for the development of "tools", essentially just Perl and bash scripts for the workstation. Once a tool foo, typically an executable, is ready to go into production, it might well be filed as ~/bin/foo. However, I for my part file it as ~/ANNN____maintenance/ENNN____bin/foo, having some years ago added to my ~/.bashrc the line

PATH=$PATH":/home/verbum/ANNN____maintenance/ENNN____bin"

to make things like foo work as command-line invocations.

5.3 The Maintenance Area:
Headers

The directory CNNN____headers_etc, that is to say ~/ANNN____maintenance/CNNN____headers_etc, has skeletons for various types of files. The three most important subdirectories of CNNN____headers_etc are ANNN____general_ascii and ANNN____general_html and AZNN____general_tex. Of these three, the two coded html (for Web work) and tex (for the TeX typesetting system) are not interesting enough to be examined here. Of the approximately half-dozen files in ANNN____general_ascii, just one, namely AANN____allpurpose_doc.txt, is worth examining. This file furnishes a time-saving template for an elaborate plain-ASCII essay, such as the occasional analytical report prepared for some pro-bono or commercial client.

Here is that file in its entirety, with the exception of a couple of excisions, marked ((SNIP)), made for reasons of security:

  DOCUMENT-IN-A-NUTSHELL:
  
  AUTHOR 
  __Toomas (Tom) Karmo = {t.karmo} 
  __416-971-6955
  __253 College Street, Box 189, Toronto M5T 1R5
  __((verbum@interlog.com)) 
  __((http://www.metascientia.com))
    __backup (mirroring) server = ((http://www.interlog.com/~verbum))
  
  STORAGE 
  __definitive archived version 
    is in /home/verbum/NNNN____clients tree    
    of {t.karmo} Debian GNU/Linux workstation 
    veritas.((SNIP))
    presently at ((SNIP)) Street, Toronto M5T ((SNIP))
  
  
  REVISION HISTORY (LATEST FIRST) 
  * CCYYMMDDThhmmssZ/version0001.0000
  
  
  DOCUMENT DESCRIPTION 
  
  
  ......................................................................
  ......................................................................
  ......................................................................
  ......................................................................
  
  
  ......................................................................
                        = END OF DOCUMENT = 
  ......................................................................

The heading DOCUMENT-IN-A-NUTSHELL: is (as the colon suggests) intended to start a single line of text, describing the file in the tersest possible terms. Here is a hypothetical example: operating manual for 0.6 m scope. The no-colon heading DOCUMENT DESCRIPTION, on the other hand, introduces a description extending over several lines, in a typical case formatted in point-and-subpoint-and-subsubpoint style. Here is a hypothetical example:

  __general manual for end user of 0.6 m scope
    (_the one in the central dome, main building, ((SNIP)) Obs)
    (_not an engineering manual 
      __there IS apparently some ancient engineering documentation
        on the shelves in ((SNIP))'s room) 
    __to be kept in hardcopy in warmroom 
    __to be uploaded to Departmental server, ((SNIP)) pages
    __incorporates what material from the 1980s manual is still relevant

Concerning the other files in ~/ANNN____maintenance/CNNN____headers_etc, I will here make only the remark that I have such a dull thing as PNNN____baggage_label_etc.txt. That file does not prove useful now, but is perhaps destined to be revisited in some currently unimaginable future contingency calling for repeated intercity flights.

5.4 The Maintenance Area:
Addresses, Commitments, Bibliographies, and Factoids

In the directory ~/ANNN____maintenance/NNNN____addresslists_etc resides my supremely important NNNN____coordinates_etc.txt. That is a general address book, or more accurately a repository not only for postal addresses and courier particulars but also for e-mail addresses, phone numbers, and similar bits of communications-support information, relevant to every aspect of daily work and recreation.

It goes almost, but not quite, without saying that I abstain from viewing the contents of the general address book with such a clumsy command-line incantation as

  less ~/ANNN____maintenance/NNNN____addres
       slists_etc/NNNN____coordinates_etc.txt

(For convenient Web display, I break that incantation, and similar incantations later in this essay, into separate lines here, placing the artificial line break in such a way as to cleave a token.) I instead have a pair of aliases, defined in ~/.bashrc. When, as happens several times during a normal working day, I find it necessary to view the address file, I issue the command coo, as shorthand for the one-line command just displayed in line-broken formatting. When, as happens several times during a normal working week, I find it necessary to edit the address file, I issue the command coow (the w is for 'write'), as shorthand for

  vi ~/ANNN____maintenance/NNNN____addres
     slists_etc/NNNN____coordinates_etc.txt

Here is a representative extract from the file, showing just two of its very roughly one thousand entries:

  ACCESSIBILITY CHECKER (WEB)
  __http://bobby.watchfire.com/bobby/html/en/index.jsp
    __was http://www.cast.org/bobby/
  ---------------------------------------------------------------------- 
  ADVANCE & UNIQUE TAXI PLUS LIMOUSINE
  __for Richmond Hill (DDO gardening etc)
  __van avail
  __905-881-1212
    __also 905-415-9191
    __also 905-472-1010
    __all thee nrs were current 2004-05-16
  

This example helps in two ways to bring out the merits of a plain-ASCII, no-frills approach to the maintenance of an address book. First, it shows how one can insert any kind of information in just about any convenient order, without worrying about logical structures. In some cases, as in the first of the two entries shown here, one finds oneself recording not one URL but two, with the second serving as a comment or footnote on the first. In other cases, as in the second of the two entries shown here, one finds oneself recording not one phone number but a whole string of numbers, with a comment, and in addition putting in a comment (separate from the comment on phone numbers) on what the organization in question is useful for. (In the particular case shown, the comment serves as a reminder that Advance & Unique offers van transport in addition to conventional taxi and that this particular business is therefore worth considering when transporting some awkward load, such as bedding plants from a nursery vendor, to the David Dunlap Observatory.) In still other cases (not illustrated here) one may, having made an entry for the name of an organization, then find it necessary to append a long list of all the people known by name in that organization, adding for some entries in the list point-and-subpoint comments with such things as birthday dates.

A second merit of the plain-ASCII approach is that plain ASCII allows one to perform retrievals in the address book through simple text searches, with powerful and well-documented Unix tools. In practice, I hardly ever end up performing more than a simple text-string search within the less display that is launched by the command-line invocation coo. Still, the doors remain open for Perl scripts or for command-line incantations along the lines of grep foo *barfile*.txt | grep roo.

I write here 'hardly ever' rather than 'never'. The one point in my personal annual round of duties at which I do find a fancy retrieval appropriate comes in November or December, when NNNN____coordinates_etc.txt has to be mined for a list of Christmas-card recipients. At this point, my tactic is to use a little Perl. Individuals getting cards have NNNN____coordinates_etc.txt entries resembling the following (here I change many details to preserve privacy):

  ---------------------------------------------------------------------- 
  BEGIN PAPERMAIL XMAS
  STOKOLSKA, Mrs JOANNA
  23 Larkwhistle Road 
  Heaton Moor, Stockport
  Cheshire SK4 4QF UK  
  END PAPERMAIL XMAS
  __joannastokolska@aol.com
    __current 2002-12 
  .............................. 
  children Pattie, Abe 
  ---------------------------------------------------------------------- 

I pull out details for these individuals with a short, crude Perl script, YNNN____generate_xmas_mailing_list.pl, in ~/ANNN____maintenance/ENNN___bin:

  #!/usr/bin/perl -w
  $we_are_on_a_relevant_line = 0; 
  while (defined($line=<STDIN>)) {
    if ($line =~ "BEGIN PAPERMAIL XMAS") {
        $we_are_on_a_relevant_line = 1;
    }
    if ($line =~ "END PAPERMAIL XMAS") {
        $we_are_on_a_relevant_line = 0;
    }
    if ($we_are_on_a_relevant_line > 0) {
       if($line =~ "BEGIN PAPERMAIL XMAS") {
           print "....................................\n";
       } else {
           print "$line";
       }
    }
  }

Here is a recipe for using the script: (1) Invoke a vi editor on NNNN____coordinates_etc.txt, from any working directory, by issuing the command coow. (2) Within that vi session, take a temporary copy of NNNN____coordinates_etc.txt by issuing the editor command :w! ~/t. (3) Go to the directory housing the script, run the script, and print out the address list, as follows:

  $
  $maint
  AANN____maintenance_policies_etc/  NNNN____addresslists_etc/
  AENN____tool_development/          RNNN____journals_etc/
  CNNN____headers_etc/
  SNNN____facilities_and_projects/
  ENNN____bin/
  $cd *bin
  $ls *xmas*
  YNNN____generate_xmas_mailing_list.pl*
  $./*xmas* < ~/t > ~/tt
  $lpr ~/tt
  $

(Here, I should add, I have used another ~/.bashrc alias, created by putting into ~/.bashrc the line alias maint='cd /home/verbum/ANNN____maintenance; ls -F'.) The result of this minute's work is a not-too-elegant pile of printed paper, with entries such as

  ......................................................................
  STOKOLSKA, Mrs JOANNA
  23 Larkwhistle Road
  Heaton Moor, Stockport
  Cheshire SK4 4QF UK
  ......................................................................

I then cut with scissors along the dotted lines and apply my crude mailing labels to envelopes with sticky tape.

This setup I have used since at least Christmas of 2003, and none of my approximately sixty Christmas-card recipients has complained so far. It's probably not worth the trouble of refining it, but of course refinements, for instance to yield printout on fully professional adhesive labels, are feasible.

Some people resort to relational databases, with a cosmetic front-end to a query language such as SQL, for keeping their private address lists. I have already argued against such an approach in my companion essay 'No-Frills GNU/Linux: Philosophical Foundations'.

Some might contend, even while embracing plain ASCII as a format, that address lists are best kept in a personal digital assistant (PDA). To this contention I reply that PDAs are really useful only to those people who are constantly travelling, most notably to those people who are often absent overnight from the workstation. It is true that one is liable to acquire names, phone numbers, e-mail addresses, and URLs throughout the working day, including those parts of it that are spent away from the workstation, for instance in meetings. But since I, like many or most people, am often present at my workstation during the day, and am only infrequently away from it for more than 24 hours, I have developed a system, which I now explain, involving fewer risks than are created by a PDA.

My system involves keeping on hand a generous supply of blank business-card stock. This material is readily procured even in a very small city, let alone in a megalopolis like Toronto, from jobbing printers who make up business cards. At the start of each new day, I take two fresh cards, writing a timestamped identifier with ballpoint ink in a squashed circle in the upper left-hand corners of each of the four markable surfaces, in the style '20051103 (THU) a', '20051103 (THU) b', '20051103 (THU) c', '20051103 (THU) *'. The first surface becomes the place to keep running notes, for instance from conversations and newspaper reading, from the morning of the day. The second and third surfaces ('b' and 'c') are used for the same purpose, but for the afternoon and evening, respectively. The fourth surface ('*') serves as an overflow area, for the rare occasions on which the three surfaces just mentioned prove too cramped. As a variant, for occasions on which the day is prolonged with a midnight-to-daybreak working shift, I write '20051103 (THU) d' in place of '20051103 (THU) *'. The two cards go into a dedicated breast-pocket cardholder, in flexible plastic, bought as a "pocket protector" at a small-city stationer's.

As the day unfolds, I accumulate minor scraps of information, in each case making a concise and semi-cryptic notation in black mechanical pencil on the card. That notation is itself demarcated in black mechanical pencil with some convenient closed curve, typically a squashed circle. So (to take a purely hypothetical example) if in the afternoon of 2005 November 3 I meet a Dr Jane Doe with e-mail address jdoe@green-university.edu, I write this information in black pencil, in some cryptically terse way, onto the '20051103 (THU) b' surface and circle it.

Later, typically at the start of the next working day, I review my black-pencil annotations, sitting at my workstation with an erasable blue pencil in my hand. (When I last went shopping for coloured pencils, I found a good Toronto art supply dealer stocking the very item already recommended by a good book on the editing of books, namely the 'Col-Erase' wooden pencil. I have found a set comprising the three colours marketed by the Col-Erase people as 'Indigo Blue', 'Tuscan Red', and 'Grass Green' to be adequate for all my various branches of technical work, including time-logging, book editing, and mathematics study. If I were shopping today, though, I would start by considering not wooden pencils but mechanical pencil leads, initially searching with the quotation-marked Google string "erasable color refill leads".) My aim is now to "discharge" or "dispose of" each circled black-pencil item, either (this rarely happens) deciding to forget about the item or (this usually happens) deciding to make some kind of entry somewhere in the workstation. Thus, for instance, on the morning of 2005 November 4, I see from my cryptically terse note that I met Dr Jane Doe the previous afternoon, and recollect (even though the note may not say this) why the meeting was important, and accordingly I create a new coordinate-file entry with my ~/.bashrc-defined coow command:

  DOE, Dr JANE
  __jdoe@green-university.edu
     __address current 2005-11-03
  __met 2005-11-03 in rG office
    __said she has colleague in amateur radio astron
      __said she can introduce us in 2006

Upon discharging the circled item, I fill its circle in with blue pencil, applying strokes heavy enough to colour the area in and yet light enough to leave the black-pencil markings readable. When the entire '20051103 (THU) b' surface has all its circled black-pencil entries coloured blue, I apply blue pencil also to the circled ballpoint-ink annotation '20051103 (THU) b', thereby marking the entire surface as "discharged". When all four surfaces are in this sense "discharged", I put the cards into a chronologically ordered depository of fully discharged cards, going back many years, for retrieval if necessary. (In practice, retrieval from that depository only seems to happen when I find I have made some recent mistake in card management, and so have to inspect the not-quite-properly-discharged card from, as it were, last Friday.)

Now it is time to make a first remark about the harvesting of information from one's environment. Although much can no doubt be said about the harvesting of information from such complex natural surroundings as a forest, I will confine myself here to the common case in which we are moving around in a print-rich, voice-rich, image-rich townscape. This time, in contrast with my fictitious "Jane Doe" scenario, I will give a real-life example.

In walking through a nursery on 2004 April 24, I observed some interesting plant labels. Extracting the appropriate card and the appropriate black mechanical pencil from my breast pocket, I first made some telegraphically condensed notes, then put a circle around what I had written. Later, quite possibly on the morning of the following day, I transferred that information, with appropriate clarifications and amplifications, to the workstation (into a special file that we have not yet examined, but will examine), again using blue pencil to colour in, or "discharge", the circled material:

  __perennials observed at South Hill Shopping Centre 2004-04-24:
    __at Loblaws:
      * Coreopsis grandiflora
        __June-October, 18 inches, yellow
      * Dianthus deltoides[sp?], colloq maiden pinks
        __June-September, 8 inches
  ((SNIP))

The cry will again be raised: 'But surely a PDA would be more pleasant, more effective, less Luddite!' To this I reply that PDA time overheads have to be taken into account. The act of writing information into a PDA takes longer than the act of scribbling with black mechanical pencil onto a simple card, and is therefore likely to prove a little too troublesome in an intellectual emergency, as when one unexpectedly notices something important on a vendor's labels in a market.

The discharging of the four surfaces on a pair of cards is, admittedly, itself troublesome. Particularly is this the case in my own setup, since I use my four cards even for timelogging, in a system - I nowadays refer to it as the 'Comprehensive Time Allocation Formalism', or 'CTAF', and speak to myself of such things as 'CTAF cards' - described briefly in the companion essay 'No-Frills GNU/Linux: Timekeeping, Timestamping, Timelogging'. A PDA, however, is troublesome in different ways. Information has to be transferred even from it into the workstation, ideally in a daily docking operation, if the information-harvesting and information-processing systems are to remain effective. In particular, frequent docking is needed to keep the PDA safely backed up.

The essential point here is one that calls to mind the obvious, and yet all too seldom articulated, argument against city motoring. When all the overheads are taken into account, owning a motorcar in Toronto is unlikely to save much time or trouble over a system of frequent three-kilometre walks, frequent five-kilometre Toronto Transit Commission rides, and a roughly monthly short-or-long urgent taxi ride. With both PDA and motorcar, the accounting has to be done systematically: there are the many hours spent in shopping for the vehicle; there are the many hours spent in discussions with vehicle mechanics, insurance brokers, and other maintenance or regulatory personnel; there is the time spent in earning the money to pay on the one hand for the vehicle, on the other hand for its fuel, lubricants, antifreeze, accessory hardware, insurance, and parking; and finally there are the many hours spent in selling the vehicle when its inevitable decommissioning commences. Moreover, even the kind of ruthless accounting just proposed is incomplete, because it externalizes major burdens both on the social environment (consumer electronics, whether in a PDA or in a motorcar, get assembled these days in virtual slave-labour conditions) and on the biosphere (even a PDA, although small, consumes fossil fuels, for instance - first in its fabrication, then in its ten-thousand-kilometre journey from the poor-country sweatshop to the rich-country retailer).

Also implemented as leaves in the tree rooted at ~/ANNN____maintenance/NNNN____addresslists_etc are plain-ASCII files for bibliographies ("resource lists") and small, self-contained factoids. To speed up the storage and retrieval of this information, I use ~/.bahsrc to set up a big set of aliases, corresponding to Library of Congress subject-classification codes. I'll render ideas concrete here by focusing on politics (for which the Library of Congress uses the code 'J'), with the background comment that I keep bibliography and factoid files on just about everything, covering the whole gamut from philosophy-psychology-religion (Library of Congress code 'B') to military affairs ('U') and librarianship ('Z').

For politics, then, I created a year or two ago, as a leaf on the tree rooted at ~/ANNN____maintenance/NNNN____addresslists_etc, a file ENNN____resources_etc__J.txt. This file I bring up on the screen instantly when necessary, in a vi-family editor, through the ~/.bashrc alias resJ. Here is an excerpt:

 
  computing and society, analysts of
  ----------------------------------------------------------------------
  __{James.Martin}
    __announced in 2004 to be founding institute in Oxford
    __http://www.headstrong.com
    __http://www.watchit.com
  ======================================================================
  Gandhi
  ----------------------------------------------------------------------
  __complete writings
    at www.mahatma.org.in/index/jsp
  ======================================================================
  peace analysts
  __see also Gandhi
  ----------------------------------------------------------------------
  * http://www.peacedirect.org/
    __reported by BBC 2004-03-08
  * http://www.oxfordresearchgroup.org.uk
    __reported by BBC 2004-03-08

A look at what goes above and what goes below the single (____), as opposed to the less interesting double (====), lines reveals the governing idea. I track URLs, books, mass-media articles, and the like in a formalism based on back-of-the-book indexing. That formalism is expounded reliably in several places, of which it is here appropriate to mention firstly two items from the Chicago University Press, namely Nancy C. Mulvany's Indexing Books (1994) and the how-to-index-a-book chapter in the current (fifteenth, i.e., 2003) edition of The Chicago Manual of Style, and secondly the classic, if dated, Indexing, The Art of, by the dean of twentieth-century British indexing, erstwhile barrister G. Norman Knight. Book-indexing formalism uses a main subject heading and if necessary a subheading or even a sub-subheading. Much of the art of indexing consists in pulling material together in fruitful ways, synthesizing concepts. (The materials being read and indexed perhaps nowhere refer to 'computing and society, analysts of', in those exact words, and yet that is what they are, in all their diverse terminologies, discussing.) In an effort to establish fruitful conceptual connections, cross-references are made rather liberally to main headings with 'See' and 'See also', and on rare occasions obliquely even to subheadings or sub-subheadings with 'See under' and 'See also under'.

Also present as a leaf on the tree rooted at ~/ANNN____maintenance/NNNN____addresslists_etc is a second 'J', or 'politics', file, PNNN____facts_etc__J.txt housing factoids as opposed to resource pointers, and brought up on the screen in a vi-family editor through the ~/.bashrc alias faJ. Here is an excerpt:

  Blair, Tony
  __relationship with Bush, George W.
  ---------------------------------------------------------------------- 
  __{Richard.Heinberg} _The Party's Over: Oil, War, and the Fate
    of Industrial Societies_ 
    (_Gabriola Island, BC: New Society Publishers, 2003)
    writes on p. 197 that he allegedly, reputedly
    ((QUOTE))regards George W. Bush personally as little
    more than a buffoon ((/QUOTE)) 
    __supporting evidence offered: Blair's telling the
      anecdote in which Mr Bush says the French have no word in
      their language for "entrepreneur"
  ======================================================================  
  copyright, intellectual property, and related issues
  ---------------------------------------------------------------------- 
  __embroiled in court work re patent on breast-cancer gene: 
    corporation called Myriad
    (_source: Watson book on DNA
      __noted 2005-08-04) 
  ====================================================================== 
  Egypt repressions
  __speaker Newman Centre (Jesuit) 2003-10-26: 
    * ((SNIP)) Decree of ((SNIP)) 

As for politics, so too for all the other subjects in the general map of knowledge. Thus, for instance, because the Library of Congress code for agriculture is 'S', the factoid about Coreopsis grandiflora mentioned above gets entered through the vi-invoking command faS.

Everyone is a generalist over much of the map of knowledge and a specialist in a few parts. In my own case, I do not find it useful to subdivide 'S' into such subdomains as agriculture, horticulture, and silviculture. I do, on the other hand, find it advisable to subdivide 'Q', or 'science'. Instead of setting up a simple pair of ~/.bashrc aliases faQ and resQ, I have such things as faQA (since it is 'QA' that is the general Library of Congress code for mathematics) and resQC (since it is 'QC' that is the general Library of Congress code for physics). A worker who is more ruthlessly specialized in mathematics than I am might descend still further into Library of Congress minutiae, going just as far as is needed to minimize the file bloat that puts a brake on storage and retrieval efforts. Such a worker might, for instance, recall that QA403 and QA551 are what get used in the Library of Congress, and therefore in most major North American academic libraries, as the codes for Fourier methods and analytical geometry, respectively, and might therefore go so far as to use faQA403 and faQA551. This hypothetical worker could then reserve faQA for pesky mathematical factoids in, say, topology, that do not belong in either of the two specialized repositories invoked by faQA403 and faQA551.

Admittedly, the Library of Congress system is tedious for classifying computer materials. The system was devised generations ago, in a decades-long process of introduction at the Library from at least 1898 onward. (Details on its history, and on library formalisms generally, can be had from Lois Mai Chan's Cataloguing and Classification, available in at least a second, 1994, edition from McGraw-Hill.) With the advent of computers after World War II, the maintaining authorities at the Library put computer science essentially under QA. I say 'essentially' because, distressingly enough, dull engineering topics such as the mechanics of an ink-jet printer are required to go instead under the technology heading 'T'. We thus now have intricate Library of Congress codes like QA76, for the general topic of programming languages, and more specifically codes of the form QA76.Jmm and QA76.Smm and QA76.Snn (where 'mm' and 'nn' are numerals) for languages such as Java, Scheme, and SQL, and in addition some 'T' codes. Fed up with these intricacies, I myself cut the Gordian knot, giving my workstation a special ~/.bashrc alias faQx. Upon typing faQx at the command-line prompt, one launches a vi-family edit of a file from which the following is a representative extract:

  attributes of files, how to change in Linux
  ----------------------------------------------------------------------
  __man chattr
  ======================================================================
  backup strategies
  ----------------------------------------------------------------------
  __rsync is helpful
    __for remote updating
    __man rsync
    __said at TLUG 20040713 to be useful with rdiff
  __rcs gives discipline in maintaining config files
    __formal checkin, checkout, revision history
  __useful to take tar file of /etc
  ======================================================================
  BIOS, how to access
  ----------------------------------------------------------------------
  __((QUOTE
      SOURCE="http://www.debian.org/releases/stable/i386/ch03s06.html.en"
      @="2005-07-27"))
  How you access the BIOS (or ``CMOS'') configuration menu depends
  on who
  wrote your BIOS software:
  
  AMI BIOS
  
  Delete key during the POST (power on self test)
  Award BIOS
  ((SNIP))

One might well imagine pure-mathematics specialists likewise cutting certain Gordian knots by creating more or less ingenious Congress-classification-straddlers as supplements to their generally Congress-kosher schemes. The following is a conceivable example: faQAcounter might be dedicated to counterexamples refuting overhasty generalizations, be they in vector analysis, in linear algebra, in topology, or indeed in any subdiscipline of mathematics. It would be in that spot that one would record, for example, the failure, for the case of a punctured disk, of the usual equality-of-partial-derivatives test for 'Am I, as a vector field, somebody's gradient?'

It might well be asked whether there is something better than the 1898-vintage Library of Congress formalism, something more in accord with modern conceptions in computer science. Shiyali Ramamrita Ranganathan (1892-1972) promulgated his "colon classification" scheme, a form of "faceted classification", from 1933 onward, as a radical alternative to the reigning orthodoxies, including the Library of Congress headings and the more modest Dewey Decimal System. Ranganathan is discussed as man and theoretician at http://w3.uniroma1.it/vrd/mathematics/i-ranganathan.html; faceted classification is demonstrated in a computer-science setting at http://facetmap.com/; and the practical importance of Ranganathan's ideas is underscored by their emerging use within the Debian Project (the Google string debtags yields up-to-the-minute references) for the "tagging" of software packages, in a technology that seeks to expedite the ordinary GNU/Linux end-user's ever-so-important task of software discovery. However, my suspicion is that as far as the filing of bibliographies and factoids goes, filing really meticulously, in the spirit of faceted classification, is more trouble than it is worth, since one then ceases to talk the current language of the very literature, namely the big-campus reference-library classification manuals and their various Web mirrorings (for instance, perhaps, at http://www.loc.gov/catdir/cpso/lcco/lcco.html), that one needs to be prepared to consult if a hard classification question arises.

It might also be asked whether there is an overarching conceptual blemish in the proposed scheme, amounting to an unwarranted stretching of the notion of maintenance. Is it really so clear that bibliography and factoid files need to be leaves in the tree rooted at ~/ANNN____maintenance? Some people might instead expect them to be leaves in the tree rooted at ~/GNNN____studies_private. Some might even expect them to be leaves rooted in a tree having no leaves in common with either of the trees just mentioned, perhaps asking us to increase the Big Four to a Big Five by creating something like ~/DNNN____resources_and_factoids.

In response to these lines of criticism, it is necessary to show, in a three-part argument, that the keeping of bibliography and factoid lists is indeed a maintenance task.

(a) We are liable, even if infrequently, to accumulate resource pointers and factoids when we are preparing to augment our set of public documents. The examples already given contain, in particular, a pointer to some downloadable writings by Gandhi, which might come in handy later in putting Gandhi's selected works into the tree rooted at ~/ENNN____library_of_public_docs_etc.

(b) We very frequently accumulate resource pointers and factoids when preparing for formal study. Factoids, as they are thought of here, are mere tidbits, not long slabs, of information. It is therefore not too much of a strain to say that they serve merely to orient us as we prepare for the deeper processes of reading and reflection recorded in leaves of the tree rooted at ~/GNNN____studies_private. In the extract from PNNN____facts_etc__J.txt presented above, there appears an amusing gossip-factoid relating to Mr Tony Blair. It is not too much of a strain to call this a mere casual note, and to insist on a division of labour: this note is mere preparation for studying the politics of the north Atlantic alliance, a mere clearing of the desk and sharpening of the pencil; if, on the other hand, one's accumulated information about Mr Blair amounts to more than a casual twenty or so words, one has moved from getting-ready-to-study mode into actual study mode and should no longer be using the simple, lightweight faJ.

(c) The resource pointers and factoids we accumulate when serving clients fall into three different categories. First there are the pointers and factoids that may be useful for many purposes, not restricted to the particular client whose matter is now in hand. Perhaps Client X's current matter leads us to take a few hasty notes on the Foucault knife-edge test in mirror optics, without studying the topic properly. That information is liable to be useful outside the domain of Client X, say for Client Y, or for one's eventual careful private study of mirror-grinding, or even for one's own system-maintenance purposes. In such a situation, we reach for something like the simple, lightweight, faQC (assuming that we are using Library of Congress code 'QC' for physics, and that we have not found it necessary to confer a special status on optics as a subdiscipline of physics). Second come the pointers and factoids arising from genuine private study, as when one realizes that one is out of one's intellectual depth in working with Client X, and accordingly puts Client X aside for some hours (in my case, this would involve stopping the Client X time-tracking in my CTAF) to engage in emergency private study. Notes from this work are properly kept not with the lightweight faQC, and not in the Client X files, but in the tree rooted at ~/GNNN____studies_private. Third come the pointers and factoids that relate indisputably and uniquely to Client X, with little real possibility of ever being useful for another client. (There may be, for instance, scraps of information proprietary to the client, perhaps even protected by a formal non-disclosure agreement.) Such items are properly deposited in the Client-X portion of tree rooted at ~/NNNN____clients. That choice of depository is in part a matter of safeguarding Client X: we must ensure that if some other person is granted access to the workstation contents, the proprietary Client X matters are safely segregated in one tightly defined ~/NNNN____clients subtree, ready for deletion (or encryption) through rm -Rf (or whatever) performed on a single directory, where that directory is readily located and client-specific.

A final point remains to be made about bibliographies and factoids. Since the filing of information is fraught both with inherent uncertainties and with adventitious human error, it makes sense, as I will explain at some length now, to keep all bibliography and factoid files in one (rather big) directory.

A few months ago, I was asked to help judge a high-school science competition. The students were designing a space station, required by competition rules to house a largely self-sufficient population of (if I remember correctly) ten thousand people. A good part of my work, I decided, must consist in looking with a skeptical eye at the students' proffered cardboard or plastic models, asking the exhibiting team in each case whether there was sufficient solar-panel area to give each inhabitant a reasonable kilowatt of electric power. Another part of my work, I decided, must consist in analyzing nutrition. It was in the course of that latter analysis necessary to refer to the "carrying capacity" of land.

I already had at contest time some notion of the amount of land needed to "carry", i.e., to prevent from starving, a human being, but I see now in retrospect that my notions were a little vague and indeed that I was a little too harsh with some of the poor contestants. (For the most part - there was one impressive exception - the competing teams, being citified, of course underestimated the amount of agricultural acreage needed to feed a human. When you think about the requirements carefully, you begin to wonder if a self-sustaining space station could be created at all. But what I'm saying here is that I was a bit too harsh, probably intimating in my judge's comments, contrary to actual agronomical fact, that a single human being needs something on the order of a half hectare.)

Now, I stress, the Ontario high-school culture being as conservative as it is, this is the type of scenario that may well play itself out again in, say, 2015 or 2025. Our planet will be still more deeply in the grip of climate change than it is now (with warmed cropsoils and warmed tundras by then releasing their own hefty quotas of greenhouse gases, even apart from the smokestacks of an industrial sector by then increasingly tempted to substitute coal for hard-to-procure petroleum), North America and Europe will teeter still more precariously on the cusp of grid collapse, and yet Ontario pupils will be be no less eager then than their parents proved in 2005 - nay, than their great-grandparents must have proved in 1965 - -to build cardboard models of big hypothetical space stations. So, I confidently predict, in some way or other, perhaps in 2015 or 2025, I will again have to think, quite possibly on my feet in public, by now grey-haired and prone to fatigue, and quite possibly in front of lots of pupils, about carrying capacity, and the next time it happens I will have to be better prepared. Since that contest, I've been taking my carrying-capacity notes rather seriously.

The point of all this? Although I can certainly remember now, in 2005, that my carrying-capacity factoids are to be retrieved with Library-of-Congress 'S'-for-agriculture faS rather than with 'QH'-for-biology faQH, I may not recall the requisite retrieval tactic so easily in 2025. But, happily, with all my factoid files, for whatever branch of knowledge, shepherded into one single directory, I can cd to that directory and grep everything in one fell swoop.

Here is a simple grep swoop (with no switch thrown except for -i, 'ignore case'):

$
$pwd
/home/verbum/ANNN____maintenance/NNNN____addresslists_etc
$grep -i "carrying capacity" *txt
PNNN____facts_etc__S.txt:carrying capacity
$

Here is a more elaborate swoop, with a grep"windowing" or "context-sizing" switch thrown also, so as to reveal an initial segment of my carrying-capacity notes:

$
$pwd
/home/verbum/ANNN____maintenance/NNNN____addresslists_etc
$
$grep -i --after-context=30 "carrying capacity" *.txt
PNNN____facts_etc__S.txt:carrying capacity
PNNN____facts_etc__S.txt----------------------------------------------------------------------- 
PNNN____facts_etc__S.txt-__with world population at 5.5 bn,
there were 0.28 ha of arable
PNNN____facts_etc__S.txt-  land per capita
PNNN____facts_etc__S.txt-  __but 0.5 ha per capita is needed for
a varied diet
PNNN____facts_etc__S.txt-
__http://www.ishmael.com/Education/Science/tightening_conflict.shtml, 
PNNN____facts_etc__S.txt-    read @20040113T042449Z
PNNN____facts_etc__S.txt-    __that's reprint of
http://www.npg.org article 
PNNN____facts_etc__S.txt-      "The Tightening Conflict:
Population, Energy Use,
PNNN____facts_etc__S.txt-      and the Ecology of Agriculture"
PNNN____facts_etc__S.txt-      by Mario Giampietro and David
Pimentel
PNNN____facts_etc__S.txt-__((QUOTE))     
PNNN____facts_etc__S.txt-  Five acres can only support one
person for a year
PNNN____facts_etc__S.txt-  if it is used as beef pasture, but it
can support a dozen
PNNN____facts_etc__S.txt-  people if it is
PNNN____facts_etc__S.txt-  used for wheat, and thirty five if it
is used for soya
PNNN____facts_etc__S.txt-  beans.[cxciii]
PNNN____facts_etc__S.txt-  ((/QUOTE)) 
PNNN____facts_etc__S.txt-  __from {Marc.Widdowson} book
available at 
PNNN____facts_etc__S.txt-    http://www.darkage.fsnet.co.uk/
PNNN____facts_etc__S.txt-    __read 20040328T015402Z
PNNN____facts_etc__S.txt-__book on organic gardening, read in
Chapters, 
PNNN____facts_etc__S.txt-  says 2400 calories/day 
PNNN____facts_etc__S.txt-  (_sufficient for 1 person)
PNNN____facts_etc__S.txt-  can be had from following
combination[?]:
PNNN____facts_etc__S.txt-  * pinto beans 5.5 x 10^3 sq ft
PNNN____facts_etc__S.txt-  * hard red spring wheat 5.8 x 10^3 sq
ft
PNNN____facts_etc__S.txt-  * irish potatoes 1.6 x 10^3 sq ft
PNNN____facts_etc__S.txt-__((QUOTE  
PNNN____facts_etc__S.txt-
SOURCE="http://www.oilcrisis.com/whatToDo/decline.htm"
PNNN____facts_etc__S.txt-  @="20050730T031807Z"))
$

Yes, I know, I know: since I am now keeping so much information on carrying capacity, it is starting to look as though I ought to create some dedicated carrying_capacity__statistics.txt leaf on the tree rooted at ~/GNNN____studies_private/S_______agriculture. If and when I perform that necessary housekeeping, bringing practice into strict conformity with preaching on, hypothetically, 2007 February 1, say around the time of Ontario midwinter sunset, I'll have a simple pointer under resS, roughly in the style

  carrying capacity
  __of farmland, for largely vegan humans
  ---------------------------------------------------------------------- 
  __workstation veritas, 
    one or more private-notes files as leaves in tree rooted
    at /home/verbum/GNNN____studies_private/S_______agriculture
    __this arrangement in effect from 20070201T223000Zapprox
      __veritas used to have just a factoid-file entry under 'S'
        __but then the notes became so bulky
          that I decided I was in reality embarking
          on a programme of substantive study  
          (_was no longer doing mere study-prep factoid-recording 
            __study-prep is deemed mere maint) 

Next in our tour of the top level of ANNN____maintenance comes the directory RNNN____journals_etc. This is the place in which are kept such things as the appointments diary, the daily tasklists, the financial journals (including business ledgers), and such light-hearted things as one's discursive kewl-stuff-on-this-day diary.

I have kept my own appointments diary in its present digital form since 2000 December 11, and I retain it all on line. At the moment, early in 2005 November, there are 1207 entries for the past and 13 entries for the future. Retention of long-past entries is useful, since one then has an answer ready when associates pose such questions as this: 'Was it you who was on the telescope on the problematic 2002 December 22 second-half-night, or were you at that point already in the train for your normal December journey from Toronto to Nova Scotia?'

As it is a mistake to use a relational-database solution for keeping one's address book, so also is it a mistake to use special software for keeping an appointments diary. Plain ASCII minimizes corruption risk and maintenance time. In my own setup, the relevant file is brought up in the xterm session with a pair of ~/.bashrc aliases, namely com ('Please invoke the less pager on the list-of-commitments file') and comw ('Please write, with a vi-family text editor, into the list-of-commitments file').

Here is an illustrative extract from my particular appointments file, showing a medical appointment, two telescope nights, a daytime meeting with a faculty member, and some activity with local theologians. In this extract, 'TO' is standard local jargon for 'Telescope Operator'; 'Regis Coll' is private shorthand for 'Regis College'; and 'rG', 'Kmo', and 'Tn' are standard personnel identifiers at the David Dunlap Observatory. To maintain confidentiality, I have applied ((SNIP)) edits to the actual file in a couple of places:

  2004-01-14 (WED) 09:00 ((SNIP)) consultation NB!!  
  2004-01-16 (FRI) DDO Kmo 1st half night, Kmo 2nd half (TO=Tn) 
  2004-01-17 (SAT) DDO Kmo 1st half night, Kmo 2nd half (TO=Tn) 
  2004-01-26 (MON) 14:00 rG NB!!!!
  2004-01-28 (WED) 13:30 ((SNIP)), Regis Coll NB!!!

Those dull day-by-day documents which are my daily tasklists I pull up in a vi-family editor, from any working directory, with the ~/.bashrc-defined alias ta. In addition, I take a timestamped backup, using a ~/.bashrc-defined alias bta, just before starting a new tasklist, and keep the old tasklists on disk. It has been said that whereas ordinary people have memoranda such as 'Pick up the dry cleaning and don't forget that Marcie's piano lesson is early tonight,' people from New York have glamorous, mysterious memoranda, for instance 'Gucci and Armani sign jointly at 11:00 latte.' Since I, for my part, do not presently live in New York, there is little point in my reproducing a daily tasklist here. I will, however, remark that my own (dull) tasklists contain not only notes about the dry cleaning but also miscellaneous ephemeral scraps and jottings, of the kind one sometimes makes upon hearing a complicated voice message on the answering machine. Of these jottings, some serve as seeds for more serious note-taking elsewhere in the workstation, and it is prudent to preserve them all in the bowels of a cumulative tasklist archive.

Concerning financial journals, I will here say only that I keep ledgers in plain ASCII, and that if (as is unlikely) I were to move to a higher level of commercial engagement, I would first consider automating the bookkeeping with Perl scripts. If the bookkeeping were to become very intricate, it might prove necessary to run Microsoft-based accounting software in a VMWare virtual machine within the Linux desktop, creating the Microsoft-readable accounting files inside a Microsoft window-of-Windows but archiving them as leaves in the tree rooted at

  ~/ANNN____maintenance/RNNN____jour
         nals_etc/SNNN____financial_accounts

Concerning the kewl-stuff-of-the-day diary, I make two remarks. (1) Being no Pepys, and seldom living through anything as dramatic as the Great Fire of London, I write at most a few paragraphs a month. (2) Pepys could use the formalism presented here. Possible filenames for his operation might be ye_totally_kewle_diary__16670101_to_16670131.txt, ye_totally_kewle_diary__16670201_to_16670228.txt, ye_totally_kewle_diary__16670301_to_16670331.txt, and the like. Being, for good or ill, one of the more formidable efficiency experts ever to roam British Civil Service corridors, he would favour plain ASCII over more elaborate data formats and would use a combination of Perl and grep for easy information retrievals.

5.5 The Maintenance Area:
Facilities and Projects

We end this long tour of the top level of ANNN____maintenance with the directory SNNN____facilities_and_projects, for which subdirectories are arranged as in a dictionary or phone book:

  $
  $maint
  AANN____maintenance_policies_etc/  NNNN____addresslists_etc/
  AENN____tool_development/          RNNN____journals_etc/
  CNNN____headers_etc/
  SNNN____facilities_and_projects/
  ENNN____bin/
  $cd *fac*
  $ls -F
  a/  c/  e/  g/  i/  k/  m/  o/  q/  s/  u/  w/  y/
  b/  d/  f/  h/  j/  l/  n/  p/  r/  t/  v/  x/  z/
  $

It suffices to examine just three of those twenty-six subdirectories. First, we look at c:

  $pwd
  /home/verbum/ANNN____maintenance/SNNN____facilities_and_projects/c
  $ls -1F
  computing_prudentia/
  computing_veritas/
  $cd *ritas
  $ls -1F
  19960601T010203Z__amdk6_or_earlier/
  20001201T010203Z__intel_celeron/
  $cd *ron
  $ls -1F
  ANNN____manuals_etc/
  LNNN____configfile_baks_etc/
  LNON____system_restoration_howtos_etc/
  NNNN____maintenance_logs_etc/
  PNNN____special_installs_etc/
  RNNN____antispam_project_etc/
  SNNN____isp_selection_etc/
  TNNN____special_hardware_etc/
  ZNNN____informal_baks/
  ((SNIP))
  $

It can be seen from this terminal session that my particular computing-maintenance area contains materials relating to the maintenance of two machines, prudentia and veritas. It is veritas that is my main workstation. Drilling further down in the "computing, specifically veritas" area, we find firstly files relating to a period from 1996 June 1 onward, in which the RedHat Linux or Mandrake Linux veritas was physically realized on such hardware as the AMD-K6 CPU, and secondly files relating to the period from 2000 December 1 onward, in which veritas (first as Mandrake Linux, then as Debian GNU/Linux) was put onto an ASUS motherboard housing an Intel Celeron CPU. Drilling still further down in the "computing, specifically veritas, more specifically Celeron" area, we see still further directories. These include the all-important NNNN____maintenance_logs_etc/, used for storing the running log of veritas Celeron-era problems, veritas Celeron-era conundrums, and veritas Celeron-era fixes.

It can happen that we share a machine foo with some other person. In this case, it makes sense to set up a special user account, say maintainer, for maintaining foo qua foo. It is in the facilities-and-projects area of that account, rather than of any end user, that will be kept (somewhere under c-for-computing) the foo machine-incident log. Into the facilities-and-projects of one's personal foo account, somewhere under c, will go, rather, computing issues relating to one's personal foo operations (as when one installs some executable privately, in a private bin area rather than in /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, or /usr/local/sbin). Similarly for other parts of the maintainer maintenance area, outside the facilities-and-projects domain: the end-user Pat B. Citizen who has to look after foo will develop tools intended for all foo end users in some tree rooted at something like

  /home/maintainer/ANNN____mainte
      nance/AENN____tool_development
rather than in a tree rooted at
  /home/citizen_pat/ANNN____mainte
      nance/AENN____tool_development

It goes almost, but not quite, without saying that the superuser (root) account should not itself be used for developing a tool or composing a machine-incident writeup, being reserved instead for such solemn tasks as our daily security-patrolling chkrootkit and our daily (Debian) package-updating aptitude upgrade.

Taking as a second example ~/ANNN____maintenance/SNNN____facilities_and_projects/e, I simulate a search for the manual accompanying my present solar-powered wristwatch:

  $
  $pwd
  /home/verbum/ANNN____maintenance/SNNN____facilities_and_projects/e
  $ls -1F
  electrical_equipment__not_signif_electronics/
  electronic_equipment__communications/
  electronic_equipment__not_communications/
  $cd electron*not*comm*
  $ls -1F
  ENNN____wristwatch__casio_module_2184/
  GNNN____microwave_oven__toastmaster_tmw3504can/
  $cd *casio*
  $ls -1F
  UNNN____manual____HARDCOPY
  $

The simulation reveals that there are three directories under my particular e directory and that it is the third of these that is relevant in the search. (Had we been looking instead for documentation accompanying a certain electric space heater in my room, we would have gone to the first of the three. Had we been looking for documentation on equipment broadly relevant to ham radio, we would have gone to the second.) Within that relevant directory, we find no digital manual, but do eventually find a human-friendly pointer (a zero-byte file with an informative title) to a cardboard filing folder on the shelves of the workstation room. Since the folders are arranged in a way parallel to the arrangement of files in the workstation, we know that that cardboard folder is housed in the 'maintenance' stretch of shelving (as distinct from the 'public documents', 'private studies', and 'client' stretches), and we moreover see that cardboard folder to be somewhere in the 'e' part of the 'facilities and projects' stretch.

Taking as a third example ~/ANNN____maintenance/SNNN____facilities_and_projects/t, I simulate a search for a baggage-list archive, thereby anticipating a situation that is likely to come up next June (in 2006), half a year from now. I predict that in that June I shall be recalling my 2005 June journey to the University of Toronto ("Hart House") ham-radio Field Day events and shall be wondering how to pack baggage, seeking to negotiate in haste the intricacies of mosquito repellent, clipboard, lab book, duffel bag, army boots, and the like pretty much as I (successfully) negotiated them in 2005. The search, then, is likely to go something like this:

  $pwd
  /home/verbum/ANNN____maintenance/SNNN____facilities_and_projects/t
  $ls -1F
  travel/
  $cd tra*
  $ls -1F
  19980919T010101Z__nova_scotia_truro/
  19981113T010101Z__astron_observing__david_dunlap_observatory/
  20010101T010203Z__canada_rail/
  20010821T234120Z__nova_scotia_truro/
  20040416T133336Z__montreal/
  20050606T145344Z__bradford____SEE__clients__nurmis
  20050613T144316Z__halifax_hospital_etc/
  20050618T210304Z__astron_speaking__david_dunlap_observatory/
  20050625T130000Z__radio__hart_house_farm/
  $cd *radio*
  $ls
  baggage__hart_house_farm_20050625.txt
  $

My suspicion now, in the waning weeks of 2005, is that I shall be creating some such file as baggage__hart_house_farm_20060624.txt, cloning much of baggage__hart_house_farm_20050625.txt and keeping both files in the already-existing directory 20050625T130000Z__radio__hart_house_farm. That directory is to be thought of as the storage bin for travel plans, baggage lists, and the like, for a whole sequence of similar journeys, the first of which started on a Saturday, namely on 2005 June 25 at 09:00 EDT, i.e., at 13:00 Universal Coordinated Time; the second of which is anticipated for the corresponding Saturday in 2006, namely 2006 June 24; and the third of which might conceivably be anticipated for the corresponding Saturday in 2007, namely 2007 June 23.

6. Organizing the Public-Documents Archive

Public documents (for instance, downloadable PDFs of books and essays) are rather easy to organize. At the higher levels, it is easy to imitate the shelf arrangement at the Library of Congress. At the lower levels, one uses whatever method of organization is most convenient (for instance, a simple imposition of sort-order-enforcing four-letter prefixes). Here is a tour of the relevant part of my main workstation:

  $
  $pwd
  /home/verbum/ENNN____library_of_public_docs_etc
  $ls -1F
  A_______general_works/
  B_______philosophy_psychology_religion/
  C_______auxiliary_sciences_of_history/
  D_______history_includes_travel/
  E_______america/
  F_______united_states_canada_latin_america/
  G_______geography/
  H_______social_sciences/
  J_______political_science/
  K_______law/
  L_______education/
  M_______music/
  N_______fine_arts/
  P_______language_and_lit/
  Q_______science/
  R_______medicine/
  S_______agriculture/
  T_______technology/
  U_______military_science/
  V_______naval_science/
  Z_______books_in_general/
  $cd Q*
  $ls -1F
  QA________maths/
  QB________astronomy/
  QC________physics/
  $cd *astron*
  $ls -1F
  QB00000001____journals__etc/
  QB00000051.3____imaging_systems/
  QB00000065____atlases_and_charts/
  QB00000088____telescopes/
  QB00000465____spectroscopy/
  QB00000830____nstars__ADHOC/
  QB00000838____stars_pulsating/
  $cd *telesco*
  $ls -1F
  QB88.M85____muirden__how_to_use/
  $cd *muirden*
  $ls
  UNNN____partial_photocopy____HARDCOPY
  $

We see from the tour that because on this particular machine there is a lot of material under the Library of Congress 'Q', or 'science', heading, it makes sense to proceed downward for quite some time in the Library of Congress formalism before making filenames less disciplined, in other words before relaxing into ad-hoc filenames in the style UNNN____.

It must be admitted that the Library of Congress system does display its unhappily pre-computer, indeed vintage-1898, origins in the use of codes without a fixed number of characters: the Library has 'Q1' for astronomy journals, but 'Q51.3' for imaging systems such as the National Optical Astronomy Observatories "IRAF" software and QB88 for telescopes. To overcome the resulting awkwardness in directory listings, I tend to violate strict Library rules by adding zeroes for padding.

In the simulated search shown here, it turns out that the workstation room does have some kind of published document on telescopes, from an amateur-level book by Muirden. Further digging in the course of the terminal session shows that Muirden is present not as a digital file on the workstation but merely as some photocopied sheets in a cardboard folder within the "private studies, Q, QB, QB88" stretch of shelving.

7. Organizing the Private-Studies Area

The private-studies area is similar in its arrangement to the repository of published documents, as the following terminal session shows:

  $
  $pwd
  /home/verbum
  $cd *stud*
  $ls -1F
  A_______general_works/
  B_______philosophy_psychology_religion/
  C_______auxiliary_sciences_of_history/
  D_______history_includes_travel/
  E_______america/
  F_______united_states_canada_latin_america/
  G_______geography/
  H_______social_sciences/
  J_______political_science/
  K_______law/
  L_______education/
  M_______music/
  N_______fine_arts/
  P_______language_and_lit/
  Q_______science/
  R_______medicine/
  S_______agriculture/
  T_______technology/
  U_______military_science/
  V_______naval_science/
  Z_______books_in_general/
  $cd Q*
  $ls -1F
  QA____maths/
  QB____astronomy/
  QC____physics/
  QC____physics____BAK20020530T163958Z/
  QD____chemistry/
  QH____biology/
  TNNN____running_log_for_studying__QA_QB_QC_QD.txt
  $cd QH*
  $ls -1F
  QB00000308.2____intro/
  $cd *intro*
  $ls -1F
  AANN____admin/
  $cd *min
  $ls -1F
  NNNN____timelog_elementary_biol.txt
  $

Here we find pretty much the same directory layout as for the public documents. I do notice, however, a special backup directory for private-study notes on physics. (I notice it to my mild surprise, on composing this present essay: normally I fly in and out via a ~/.bashrc-defined alias without bothering to inspect filenames.) Evidently I found it prudent around lunch time on 2002 May 30 to take a copy of old physics notes, as a preliminary to making some more or less sweeping revisions of the physics-notes directory. Further, we see that the private-studies directory Q_______science contains a biology subdirectory, in contrast with the public-documents Q_______science. I read only a little biology, and evidently I have not yet come across such a thing as an absolutely-must-retain biology-PDF publication.

Finally, we find in this private-studies Q_______science the rather important TNNN____running_log_for_studying__QA_QB_QC_QD.txt, a general incident log for intermittent studies in maths, astronomy, physics, and chemistry, from which the following is an excerpt:

  ======================================================================
  @=20050520T195400Z____SEVERITY=85%__LC=QC518__DSCRP="leaky capacit"
  ---------------------------------------------------------------------- 
  __found to my surprise 
    that leaky capacitor
    (_this is a Sears example) 
    cannot be represented as C, R in series
    and also cannot be represented as C, R in parallel
  Papers filed canonically: studies in Sears electr-and-magn book  
  ====================================================================== 
  @=20050903T194455Z____SEVERITY=70%__LC=QB461__DSCRP="u-substitution"
  ---------------------------------------------------------------------- 
  __instructive difficulty in working thru 
    Carroll-Ostlie proof that radially symmetric
    mass distribution produces the gravitational field
    of a point mass 
    (_~/*studies*/*QB461.C35.1996*compr*chap02* p. 036@0.6)
    __had to evaluate
      $\Int -(R^2 + r^2 - 2Rr \cos\theta)^{-3/2} 
              \cos\theta \sin\theta \mathrm{d}\theta$
      __despaired of getting antiderivative, 
        and then found that Ca-Os used substitution
        $u = R^2 + r^2 - 2Rr\cos\theta$
        __the idea is that we then get 
          a tidy expression for $\cos\theta$
          and thereby get a tidy expression for 
          $\sin\theta\mathrm{d|\theta$
        __for the first time that I can recall,
          I encounter a situation in which 
          the "u-substitution" is really USEFUL
          (_normally, I think of the "u-substitution"
            as a formally dressing-up of work that
            could be done by directly invoking the Chain Rule 
            and writing the requisite antiderivative immediately) 
  ======================================================================
  @=20050913T192347Z____SEVERITY=70%__LC=QA303__DSCRP="u-substitution"
  ----------------------------------------------------------------------   
  __on examining SaHi discussion of reparametrization of
    line integral path (SaHi p. 1018), 
    once again worked out, and found that I had in at least
    two previous years worked out, a rationale for u-substitution
    which does not oblige us to((SNIP))

In this log of (elementary) struggles and joys, I assign a timestamp by running an appropriate bash script within the vi editing session, then assign a severity level ('99%' would correspond to something apocalyptic, say a result so deep as to call for a reworking of my longer-term plans), then classify the event according to its approximate place in the Library of Congress formalism. It can be seen that where mathematics is needed, I tend to write it up with $\foo \bar \roo \har$-style LaTeX typesetting codes. The reference to 'canonical filing' of papers from the incident of 20050520T195400Z indicates that the papers are in a cardboard folder, assigned a spot in the hard-copy shelving corresponding to the location in the workstation of a descriptively named zero-byte file, with that file itself duly realized as a leaf on the tree rooted at

  ~/GNNN____studies_private/Q_______sci
  ence/QC____physics/QC00000760____electromagnetics

Paper notes from private studies, incidentally, I tend to categorize either as "comprehension" (as when I am simply reading some textbook) or as "exercises" (as when I am working some of a textbook author's end-of-chapter numerical problems with pencil and calculator). A reading of the old-but-insightful sophomore electromagnetism text by Sears, page 12, at a point 70% of the way down the page, in an attack on some nasty little obscurity that I commenced at 20041209T1344Z, is liable to generate black-pencil mathematics - here I imagine the fourth sheet in a hypothetical stack - headed in ink as

  *QC760*sears*chap01*compr*                p. 012@0.7::04
                                            20041209T1344Z

A working of Exercise 13 in Sears's Chapter 9, where the working started at 20050113T1455Z, is liable to generate black-pencil mathematics - here I imagine the second sheet in a hypothetical stack - headed in ink as

  *QC760*seas*chapter09*exerc*               #09.13::02
                                             20050113T1455Z

The advantage of this formalism that one can easily keep straight on the one hand a comprehension worry encountered 70% of the way through page 12, on the other hand a comprehension worry encountered elsewhere on that same page, say 40% of the way through. Further, one can easily keep straight on the one hand the second sheet from one's 20050113T1455Z efforts on a tricky exercise and the second sheet from one's (more successful?) efforts six months later:

  *QC760*seas*chapter09*exerc*               #09.13::02
                                             20050715T0344Z

Any of these careful pencil notes could in principle get a precise cross-reference, right down to the level of the individual cardboard-filing-folder sheet, in the workstation. However, I for my part seem to find it sufficient when typing up a workstation reference to say, in very nonspecific language, that my relevant sheets are "canonically filed".

A necessary part of studying is timelogging. In general, a good question to ask oneself is: What multiple or fraction of 200 hours have I now invested? If one spends 200 desk hours on a topic, one has done the equivalent of a thorough one-semester university course. Here, then, is a part of a timelog, specifically a leaf from the tree rooted at /GNNN____studies_private/Q_______science, for a review of second- or first-year electromagnetism:

 
  20050808=00h53->062h01
  20050816=00h40->062h41
  20050817=02h14->072h55__pondered ammeter-as-voltmeter, etc
  20050818=04h03->076h58__pondered motor-generator-emf, etc
  20050823=01h01->077h59__had trouble with justifcn 
                          of Kirchhoff's loop rule
  20050824=01h00->078h59__Kirchhoff now okay
                          __devised new language for branches:
                            "electrical power imported-exported", 
                            "electrical power consumed", 
                            "electrical power produced" 
                            __hurrraa
  20050825=01h01->080h00
  20050826=01h00->081h00

In the previous section, I argued the case for putting casual notes, that is to say mere twenty-word factoids, into files in the maintenance area and then invoking such files in a rough-and-ready way with ~/.bashrc-defined aliases in the style faQC. What, by contrast, do serious study notes look like? My present formalism goes back several years and now needs an overhaul: although I constructed it on the strength of some studies in SGML, it really should be redone in the machine-streamlined idiom of the SGML turn-of-the-millennium progeny XML. Nevertheless, it is useful to present an extract here, complete with that part of the file that documents the formalism:

  <!DOCTYPE BIBLIOG_TKARMO SYSTEM "xxxx.dtd">
  
  <!-- 
  
  consolidated personal reading list 
  of Tom Karmo = {tkarmo} 
  __rather experimental 
  __readers are encouraged to use this reading list
    as a basis for their OWN experiments in 
    workstation bibliography management, 
    and to communicate their suggestions to {tkarmo} 
    __{tkarmo} communications particulars: 
      __<karmo@ungrad.astro.utoronto.ca> is deprecated e-mail address
      __<verbum@interlog.com> is preferred e-mail address 
  __format is SGML (hand-coded) 
    __it may later be possible to develop an SGML 
      DTD (Document Type Definition) 
      on the strength of this hand-coding experiment 
      __the DTD will define various points so far left
        undefined
        __most notably, for each tag "FOO", whether
          a record has to have 
          * exactly one FOO, or 
          * zero-or-one FOO,  or 
          * zero-or-more FOOs 
      __with a DTD developed, Linux sgmls can be run 
        to check that this SGML document is DTD-compliant
        __we thereby have formal machinery for detecting 
          certain kinds of data-entry errors
      __but it would be better to find someone 
        in the astronomical community who has already developed
        an SGML DTD for a consolidated personal reading list 
    __it may later be possible to develop Perl scripts 
      which will do some automatic processing of this SGML document
      __example_a: retrieve from the document all and only the entries 
        which relate to the topic HD21699, and display 
        just the author names, titles, journals, and years 
        for those entries, suppressing other information 
      __example_b: convert this whole bloody document into some
        quite different flat-ASCII format, 
        if a really good flat-ASCII format for
        personal reading lists turns out to exist 
        __it is possible that some astronomy student, on some
          campus somewhere, has gone through this exercise already, 
          and has invented a much superior flat-ASCII format, 
          perhaps even coded in some formalism other than SGML 
  __reading list was started 19990709
  __reading list initially related to {rgarrison}{tkarmo}
    collaboration on HD21699
    __but it was intended 
      to have reading list grow to include many other topics
  __reading list is sorted in forward order by year of publication, 
    and is sorted in forward alphabetical order by author surname
    within any one given year  
  __{tkarmo} has consulted briefly on this reading-list format
    with librarian Marlene Cummmins = {mcummins} at Dept of Astron,
    University of Toronto 
  
  --> 
  
  <BIBLIOG_TKARMO>
  <!-- Here is a template for creating new records: 
  <RECORD>
    <AUTHOR01>xxxx</AUTHOR01>
    <AUTHOR02>xxxx</AUTHOR02>
    <AUTHOR03>xxxx</AUTHOR03>  
    <YEAR>19xx</YEAR>
    <DATEREC_AUDIENCE></DATEREC_AUDIENCE> 
    <JOURNAL>xxxxxx</JOURNAL>
    <VOLUME>xxxx</VOLUME>
    <COLLECTION>xxxx</COLLECTION>
    <COLLECTION_EDITOR01>xxxx</COLLECTION_EDITOR01>
    <COLLECTION_EDITOR02>xxxx</COLLECTION_EDITOR02>
    <BOOK>xxxx</BOOK>
    <EDITION>xxxx</EDITION> 
    <PUBLISHER_NAME>xxxx</PUBLISHER_NAME>
    <PUBLISHER_CITY>xxxx</PUBLISHER_CITY>
    <PAGE>xxxx</PAGE>
    <URL>xxxx</URL>
    <CONF SESSION=>xxxx</CONF>
    <SEMINAR>xxxx</SEMINAR>
    <COLLOQ>xxxx</COLLOQ> 
    <LECTURE>xxxx</LECTURE>
    <SYMPOS>xxxx</SYMPOS>
    <CNVRSATN>xxxx</CNVSATN>
    <VENUE>xxxx</VENUE> 
    <TITLE>xxxx</TITLE>
    <UNIV_ESSAY>xxxx</UNIV_ESSAY>
    <UNIV_THESIS>xxxx</UNIV_THESIS>
    <COMMENT01></COMMENT01>
    <COMMENT02></COMMENT02>
    <COMMENT03></COMMENT03> 
    <COMMENT04></COMMENT04>
    <NOTES>
    </NOTES> 
    <TOPIC></TOPIC>
    <TOPIC></TOPIC>
    <TOPIC></TOPIC>
    <TOPIC></TOPIC>
    <LIBRARY></LIBRARY> 
    <DATEREC_ARCHIVIST></DATEREC_ARCHIVIST>
  </RECORD>
  
  __revision history of this template: 
    * 20030428T204200Z/version 0000.5010 
      __replaced DATEREC with
        DATEREC_AUDIENCE and DATEREC_ARCHIVIST 
    * 199?????T??????Z/version 0000.5000 prelim version
  __in this template, "AUDIENCE_DATEREC" is used 
    to indicate 
    * the time at which a colloquium or lecture or broadcast 
      was scheduled to start
      (_even if the start was delayed or the notetaker arrived late) 
    * the time at which the notetaker downloaded Web content  
    __had a lecture been scheduled for 2003 March 02 at 13:10:00 
      Eastern Standard Time, 
      then its time would be entered as 20030302T181000Z
      __note timestamping convention, with all times stated to 
        the second, and referred to "Z" (UTC = Universal Coordinated
        Time): CCYYMMDDThhmmssZ 
        __this convention is prescribed by ISO in Geneva 
        __Linux boxes can be readily configured to generate 
          timestamps which conform to this convention 
  __in this template, "URL" is used only for very special situations
    __for example, for a publication which is available 
      by anonymous ftp from some server, and is NOT in print
  __in this template, "VENUE" is used only for very special situations
    __examples: 
      * colloquia
      * conference presentations
  __in this template, A
  __in this template, the role of "COMMENT01", . . . , "COMMENT04"
    is not yet very sharply defined 
    __{tkarmo} has to think about 
      comments over the coming months and years, 
      not developing fully sharp comment concepts too quickly 
  __in this template, "NOTES" is intended for free-form comments 
    __"NOTES" is the place for storing substantive scientific
      information
      __for instance, the information that HD21699 is 
        not radio-bright at 6 cm 
      __with a good author, "NOTES" might store a great deal 
        of information 
      __"NOTES" is useful for guiding one's overall study programme 
      __"NOTES" may be expected to evolve rather radically as one
        makes the transition from BSc to MSc to PhD, etc, etc, etc
        __ :-)  
  __in this template, <TOPIC> means, essentially, "keyword"
    __the following use of "SUBTOPIC" is legal: 
      <TOPIC>HD21699<SUBTOPIC>Zeeman effect</SUBTOPIC></TOPIC>
  __in this template, "LIBRARY" is intended as a place to store
    library call numbers
    __keeping that kind of information on line can save time
      in certain special cases 
      __it is not ALWAYS obvious where in the library system 
        an ink-and-paper artifact resides 
    __"LIBRARY" is only supposed to be used in unusual situations
      __common sense and street smarts are ENTIRELY sufficient
        to let one locate items like ApJ and PASP 
  __in this template, "DATEREC" stores the timestamp of the last
    major modification to the given record 
    __a record started @19991223T235900Z, modified in a major way
      @20010430T131345Z, and trivially modified 
      @20010501T123004Z, should be timestamped 20010430T131345Z
    
  
  -->
  
  <!-- Here are templates for creating new cross-refs:
  
  <SEE>
    <SEARCH>
    xxxx
    </SEARCH>
    <RETRIEVE>
    xxxx
    </RETRIEVE>
  </SEE>
  
  
  <SEE_ALSO>
    <SEARCH>
    xxxx
    </SEARCH>
    <RETRIEVE>
    xxxx
    </RETRIEVE>
  </SEE_ALSO> 
  
  -->
  
  
  <!-- 
  
  The document should have first all the records, 
  then all the "see" cross-refs,
  then all the "see also" cross-refs.
  
  --> 
  
  <RECORD>
    <AUTHOR01>Struve, Otto</AUTHOR01>
    <YEAR>1935</YEAR>
    <JOURNAL>ApJ</JOURNAL>
    <VOLUME>82</VOLUME>
    <PAGE>252-260</PAGE>
    <TITLE>
      A Test of Thermodynamic Equilibrium in the Atmospheres
      of Early-Type Stars
    </TITLE>
    <NOTES>
    __following indicates two concepts of great importance
      (the He anomaly, dilution) to {tk}'s overall study problem 
      <__QUOTE>
      The intensities of He I lines show variations which are
      contrary to Boltzmann's formula [fn of tempr], and Rudnick
      has shown that this effect cannot be explained by turbulence.
      It is suggested that the He anomaly results from an accumulation
      of atoms in the triplet system, the lowest term of which is
      metastable. Such an accumulation is possible if there are
      departures from thermodynamic equilibrium, e.g., if the 
      photospheric radiation is appreciably diluted in the 
      absorbing atmosphere. Departures of this nature are not
      improbable in the giants of early type. 
      <__QUOTE>
      __{tk} did NOT understand 19991215T035200Z
    </NOTES> 
    <TOPIC>dilution</TOPIC>
    <TOPIC>He anomaly </TOPIC>
    <DATEREC>19991215T035200Z</DATEREC>
  </RECORD>
  
  ((SNIP))
  <RECORD>
    <AUTHOR01>Helfand, Prof. David</AUTHOR01>
    <YEAR>2005</YEAR>
    <DATEREC_AUDIENCE>20050930T2300Z</DATEREC_AUDIENCE> 
    <LECTURE>Cosmic Frontiers: Celebrating a Century
      of Astronomy at the Univ of Toronto [2nd in series]
    </LECTURE>
    <VENUE>U of Toronto, Convocation Hall</VENUE> 
    <TITLE>Way too cool: tales of
     stellar corpses</TITLE>
    <COMMENT01>I must remember that lecturer is the
    greying portly ex-actor from Columbia Univ</COMMENT01>
    <NOTES>
    __central point was as follows:
      __there is no deep reason for thinking that quarks
        are fundamental particles 
      __to study quarks further, we seek to find them
        unconfined
      __theories of neutron-star composition 
        are confronted with observation by 
        observations that indicate the TEMPERATURE
        of neutron stars
      __there is so far one successful such confrontation, 
        and it has deep theoretical implications, 
        precisely in yielding UNCONFINED quarks
        (_contrary to orthodox theoretical expectation) 
      __the confrontation is via the one neutron star in our galaxy  
        known to be still younger than the M1 object, 
        namely a neutron star from a supernova observed 
        in Japan, China, Korea in 1181 A.D. August 
        __temperature is inferred from fact that at min light
          (_rotation rate is 17 rev per second) 
          we do NOT see the stellar spot
        __if neutron star is merely macroscopic atomic nucleus, 
          with quarks fully confined, we expect tempr 1.8 x 10e6 K
        __but our observation means that tempr is 
          less than 1x10e6 K 
          (_and so, since luminosity goes as 4th power of tempr, 
            is only 1/15 as luminous as expected) 
        __explanation: here we do NOT have a macroscopic nucleus, 
          with quarks fully confined, but have an object in which
          some 
          quarks were LIBERATED, with consequent radiating away
          of more energy than a macroscopic nucleus could
          radiate away 
          [_lecturer's phrase: "started to melt neutrons into quarks"]
       [_lecturer showed plots, one of which he called the
         "standard model", and stressed that his data point
         does not lie on that plot, and remarked further that
         a survey is now seeking to find OTHER such neutron stars, 
         so that more than ONE observed data plot can be used to 
         confront theory with observation 
         (_the survey uses radio to find new supernova remnants, 
           and on THAT basis to aim the X-ray scopes) 
    __peripheral factoids useful to me are as follows: 
      __whereas nature has 50 octaves of e.m. radiation, 
        our eyes see 1 octave
        (_our ears hear 10 octaves of sound) 
      __98% of stars avoid supernova deaths 
      __lowest-luminos stars have 1e10-4 solar luminos
      __lifetime of 100 solar-mass star is 3x10e6 y 
      __think of solar nucleosynthesis as having THREE steps:
        *a____H + H -> He of mass 2 
        *b____He of mass 2  + H -> He of mass 3
        *c____He of mass 3 + He of mass 3 -> 
                     He of mass 4 + H + H 
      __He ignition will occur when solar core reaches
        tmpr of 100x10e6 K   
      __star with supernova death collapses in 0.5 s
        (_from size of Earth to size of Toronto) 
        (_typical spin-up: from 1 rev/day to 100 rev/s) 
      __at Palomar 5 m eyepiece, one can waggle one's finger
        at central M1 star and SEE strobe effect
        [_lecturer said to me after that this is ((SNIP))   
          though ((SNIP))] 
      __when stars form in a metal-enriched cloud, 
        the heavier elements do NOT preferentially seek
        the centre of the aggregate, as they did when Earth formed
        __reason [I don't understand this] is that 
          in star we have plasma, not liquid or conventional gas
      __the scoop on solar neutrino deficit is this: 
        observed flux was 1/3 of expected, but theory survived
        the observation when the profs showed
        that neutrinos come in three
        interconverting sorts, of which only ONE sort was observed
        __neutrino flux is in fact a very GOOD test of our 
          theories of solar core tempr, 
          now confirming those theories
    </NOTES> 
    <TOPIC>neutron stars</TOPIC>
    <TOPIC>degenerate matter</TOPIC>
    <TOPIC>quarks: unconfined, in neutron stars</TOPIC>
    <TOPIC>X-ray astronomy: surveys</TOPIC>
    ((SNIP))
  </RECORD>
  
  <!-- here starts 2006 -->
  
  <!-- here starts 2007 -->
  
  <!-- here starts 2008 -->
  
  <!-- "SEE" CROSS-REFS --> 
  
  <SEE>
    <SEARCH>
    speckle interferometry
    </SEARCH>
    <RETRIEVE>
    interferometry, speckle
    </RETRIEVE>
  </SEE>
  ((SNIP))
  
  <!-- "SEE ALSO" CROSS-REFS --> 
  
  <SEE_ALSO>
    <SEARCH>
    photometry, synthetic
    </SEARCH>
    <RETRIEVE>
    spectrometry 
    </RETRIEVE>
  </SEE_ALSO> 
  
  
  
  </BIBLIOG_TKARMO> 
  
  <! ----------------------------------------------------------------------->
  <!                            --END--                                     > 
  <! ----------------------------------------------------------------------->

The file from which this extract comes is in fact housed not on my own workstation but on a workstation-cum-server under my administration on campus. However, directories on that workstation are laid out in the same way as directories on my main workstation. The reason for my pairing a workstation with a workstation-cum-server is not of particular interest in the present context.

One further remark must be made about private-study notes. The formalism offered here is the formalism I refer to in my 2002 essay 'Indexing Tomorrow's Web-Delivered World Wide Library'. I should now repeat my twofold plea for help, in connection with an vision for so-called 'IndiciaScientia' software, from that essay. (1) It would be good for some open-source programmers to craft an XML-based tool, say the "IndiciaScientia client", for end users. The tool would prompt users for the content that gets enclosed by <AUTHOR01>, <TITLE>, <TOPIC>, and the various other markup tags, so that users do not themselves have to waste time in tagging. (We may note here that Debian GNU/Linux, perhaps especially since the 2005 June rollout of version 3.1, "Sarge", is emerging as a robust XML development platform.) (2) It would be good for some open-source programmers to work with international authorities, for instance with the International Astronomical Union or the Council of Biology Editors, to set up a system of XML-aware "IndiciaScientia servers", as a first step toward the amassing of a controlled vocabulary for the indexing of tomorrow's Web-delivered World Wide Library. The client software, deployed in hundreds or thousands of individual faculty offices around the world for each academic discipline, would periodically transmit <TOPIC>-tagged information from the individual workstations to the central servers, in a workflow I describe at greater length in my 2002 essay.

From this examination of serious-study-notes concepts one draws the moral that on some (rare) occasions, formatting more elaborate than plain ASCII actually does have a role to play. Why not just use free-form ASCII, here as for the address list and appointments book? We would then lose out on the possible communal benefits of IndiciaScientia.

8. Organizing the Client Area

Here is a tour of the top level of my client-service area:

  $
  $pwd
  /home/verbum
    $cd *client*
    $pwd
    /home/verbum/NNNN____clients
    $ls -F
    a/  c/  e/  g/  i/  k/  m/  o/  q/  s/  u/   virz/  w/  y/
    b/  d/  f/  h/  j/  l/  n/  p/  r/  t/  va/  visa/  x/  z/
  $

Clients are organized alphabetically. Since client files are numerous and bulky (those very occasional clients who are commercial, for instance, are liable to send me bulky project-specific PDFs), some attention has to be given to archiving. My method is to keep each of the child directories of ~/NNNN____clients rather small. I start out with one directory for each letter of the English alphabet but am ready to make splits (as has actually happened here with v) when the output from an archiving command such as tar -cf v.tar v would be an uncomfortably inflated tarball.

I cannot take a random illustration of the organization of client files on my main workstation since so much here is confidential. Choosing judiciously, I start by displaying a terminal session involving a client and a "project" (one could also say, as lawyers, do, a "matter") of a quite straightforward kind, free of confidentiality restrictions even in its most minute details:

  $
  $pwd
  /home/verbum
  $cd *clien*
  $cd p
  $ls -1F
  pa((SNIP))h/
  per((SNIP))_john/
  pre((SNIP))l/
  pro((SNIP))t/
  public_welfare/
  $cd *public*
  $ls -1F
  20020813T143341Z__peace_campaign/
  $cd *peace*
  $ls -1F
  ANNN____admin/
  NNNN____workbench/
  $cd *min
  $ls -1F
  NNNN____tasklist.txt
  ZZNN____bak/
  $cd ../..
  $ls -1F
  ANNN____admin/
  NNNN____workbench/
  $cd *nch
  $ls -1F
  ANNN___handout_20020813T1650Z.txt
  ZZNN____bak/
  $

Here we see that among the 'p' clients are a certain John P. and three businesses or organizations with one-word names. We see also that 'public_welfare' has been set up as a client, for actions that seek to serve the public welfare. (Admittedly, in this particular case, united_states__government_federal would have been a more logical choice. Whereas a client normally solicits services, some very odd clients, such as Uncle Sam, might conceivably require for their own greater good to have some small services thrust upon them. Other public-welfare projects I have filed more rationally, naming the clients tightly.) Associated with this particular perhaps-misnamed 'p' client is just one "project" or "matter", launched at 20020813T143341Z.

Here as for most clients, I set up an administrative area (in which, as can be seen from the terminal session, I keep a tasklist) and a workbench. It is in the workbench that I keep "deliverables", which are a feature of quite a few projects. One kind of deliverable is the newspaper article, sold to an editor; another is the analytical memorandum, for an enterprise or individual receiving, whether for payment or for free, some kind of advice.

We may now view a representative extract from the administrative-area tasklist for the project:

  !_phone USA consulate
    (_416-595-1700)
    (_need to say, approx: 
      * Dr Tom Karmo 416-971-6955
      * phoning in the matter of public protest against 
        envisaged invasion of Iraq 
      * wish to stand outside consulate today at lunch time, 
        12:50 approx, 
        on the public thoroughfare, 
        with candle and my own antiwar handout, singing 
        "Where Have All the Flowers Gone"
      * will also be advising 52nd Division of my proposed action
      * wish after finishing to hand letter to Consulate
      * need to know whether there are any legal rules
        that I must follow) 
     __DONE@20020813T145634Z
       __security officer 
         (_name was Stu something?)
         said I had picked very bad time, since construction
         in progress, but said that I would be within my legal
         rights, 
         and that there is no need to phone police beforehand
         __when he asked how long I would be protesting, 
           I said maybe 00h10, maybe 00h20, not 00h30)  
  !_phone police
    (_416-808-2222) 
    (_need to say, approx: 
      * Dr Tom Karmo 416-971-6955
        12:50 approx, 
        on the public thoroughfare, 
        with candle((SNIP))

The deliverable, in this project the street-protest handout ANNN___handout_20020813T1650Z.txt, later took on a second life, in a different project, becoming material published (no doubt with a few small changes) on my Web site as 'Open Letter to American Secretary of Defense Donald Rumsfeld'. In that second life, the client was simply me, and the project was one that long antedated the Second Gulf War, namely the creation, from 1996 onward, of a business Web site. (It is on a few occasions logical to call oneself a client: sometimes we serve the interests of others, whether for free or for pay, and sometimes we just work for ourselves, not really in a system-maintenance capacity, doing for ourselves a job very similar to what we might some day do for another.) The ultimate Web deliverable, a file that happens to be named DSNN____rumsfeld.html, is consequently a leaf on a tree rooted at

  ~/NNNN____clients/k/karmo_toomas/19960910T143250Z__bus
      iness_www_site
 

Of all the various tasks performed at the workstation, it is client service that most notably calls for revisions in action plans, in literary-composition outlines, and in literary drafts, with old versions typically kept on hand as a precaution. It can be gathered from the terminal session relating to ANNN___handout_20020813T1650Z.txt that I tend to use ZZNN____ directories for this purpose in my administrative and workbench client-service areas. I will illustrate this point further with a fresh client-service example. My fresh example has to do with journalistic writing for a client (having, as can be seen, three projects or "matters" so far) in Truro, Nova Scotia:

  $
  $pwd
  /home/verbum
  $cd *clien*
  $cd t
  $ls -1F
  ((SNIP))
  td_bank_canada_trust/
  toronto_univ/
  truro_daily_news/
  $cd *truro*
  $ls -1F
  20020725T163339Z__world_youth_day/
  20020913T223149Z__railway/
  20030509T190000Z__tulips/
  $cd *world*
  $ls -1F
  NNNN____admin/
  PNNN____field_notes____HARDCOPY/
  QNNN____workbench/
  $cd *nch
  $ls -1F
  ANNN____outline.txt
  NNNN____wyd2002__version0000pt9000.txt
  NNNN____wyd2002__version0001pt0000.txt
  ZZNN____bak/
  $cd *bak
  $ls *outli*
  ANNN____outline.txt____BAK20020728T204654Z
  $

In my own version-control efforts, I have not found it necessary to implement the industrial-strength GNU/Linux Revision Control System and Source Code Control System. Still, I do keep handy on my shelves one of the standard reference works for these tools, Don Bolinger's and Tan Bronson's Applying RCS and SCCS (O'Reilly, 1995).

Sometimes we can have not one matter for a client, as with my initial example, or three, as with the client just presented, but twenty or more. I'll now cite an instance from my ~/NNNN____clients, while altering the display first by making heavy ((SNIP))-style edits, and second by forging all timestamps by at least a few days, so as to preserve confidentiality:

$
$pwd  
/home/verbum/NNNN____clients
$ls -F
a/  c/  e/  g/  i/  k/  m/  o/  q/  s/  u/   virz/  w/  y/
b/  d/  f/  h/  j/  l/  n/  p/  r/  t/  va/  visa/  x/  z/
$cd ((SNIP))
$cd ((SNIP)) 
$ls -1F
20020121T225722Z____matter-neutral_notes/
((SNIP))
20021111T150233Z____do_prelim_prep_for_((SNIP))//
20030222T175356Z____edit_((SNIP))/
20030413T221337Z____edit_((SNIP))/
20030719T185514Z____edit_((SNIP))/
20030727T000451Z____do_prelim_prep_for_((SNIP))/
20030927T152011Z____edit_((SNIP))/
20031016T150l43Z____edit_((SNIP))_and__((SNIP))_and_((SNIP))/
((SNIP-MANY-LINES))
20050719T170355Z____edit_((SNIP))/
20050925T190431Z____edit__((SNIP))_and__((SNIP))/
$

Sometimes, as here, client work can become intricate, with a mix of financially compensated projects and projects that, being in a sense preparatory, cannot be compensated. For this particular client, financially compensated work, specifically the editing of certain English-language texts, predominates. In some cases, for instance with the matter here represented as having been launched by the client at 20030222T175356Z, there is one piece to be edited. In other cases, as with the matter here represented as having been launched by the client at 20031016T150l43Z, there is more than one. My essential point in this example is that we sometimes need in the directory of a client not just subdirectories for that client's various matters but also a directory that is "matter-neutral". In the matter-neutral area here represented as bearing the timestamp 20020121T225722Z, I keep client instructions that are liable to govern more than one matter: for instance, the client's in-house rulebooks, promulgated by the client's various officers as long-term standing instructions.

9. Further Reading

The topic of personal-office organization is discussed in two magical books by Vladimir Stibic: Personal Documentation for Professionals: Means and Methods (North-Holland Publishing Company, 1980) and Tools of the Mind : Techniques and Methods for Intellectual Work (North-Holland Publishing Company, 1982). Stibic, being an electronics engineer with Philips in the Netherlands, foresaw the advent of today's adequately powerful workstations even while addressing himself to a 1980s readership deploying such weak personal hardware as the Apple II and the Osborne 1.

The deeper implications of intellectual activity are discussed by Antonin Gilbert Sertillanges (1863-1948) in an equally magical French-language theological work, available from large North American academic libraries at least in its English translation: The Intellectual Life: Its Spirit, Conditions, Methods (Newman Press, 1948).

10. Acknowledgements

I'd like to thank the following individuals (listed here in alphabetical order) for conversations: Marlene Cummins (Library of Department of Astronomy and Astrophysics, University of Toronto), Darlene Davidovic (Price Waterhouse, Toronto), Emeritus Prof. Robert Garrison (Department of Astronomy and Astrophysics, University of Toronto), and Drew Sullivan (Greater Toronto Area Linux User Group).