Technical Notes

The best way to think is to write.

George Sheehan, M.D., Personal Best


Stanford has used AFS since 1990 as its enterprise-wide network file system, and I was involved in maintaining Stanford's cell from 1998 to 2014. Here are various notes, presentations, and white papers on AFS administration, tools, and configuration that I accumulated over the years. Please note that I no longer use AFS, so this documentation is not being updated.

Coding Style

Documentation of my coding style standards, build system standards and best practices, and documentation style guides. Includes documentation of package layouts and contents of software distributions.


Some notes and documentation for the CVS revision control system. Most of this information is written from the perspective of how Stanford organized its CVS repositories around 2000, but it may still be generally useful.


Notes and documentation for how I maintain Debian systems, including installation documentation for some packages that I use, system configuration notes, and best practices that we followed at Stanford while I worked there. I use Debian whenever possible in preference to any other distribution, and we used Debian as our preferred GNU/Linux distribution at Stanford.


Stanford started using Kerberos at the same time it started using AFS and standardized on it as the authentication system of record. I ran Stanford's central Kerberos infrastructure until I left in 2014, and am the still lead developer on a wide variety of Kerberos infrastructure software. Here are presentations on Kerberos and web authentication that I've made.

Perl Signature Quine

When posting to Perl newsgroups, I use as my posting signature a Perl program that prints itself (a quine). This is an explanation of how it works.

Programming Languages

Notes on programming languages that I've learned or that I have something to say about. Included herein will be informal discussions of my experiences with learning new languages. There isn't much here yet.

Posting to Movable Type from XEmacs

Obsolete, since I no longer use XEmacs or Movable Type. The details on the elisp packages and customization I used to use to be able to easily post journal entries to Movable Type from inside XEmacs. These instructions in theory would work with any journal or blog software that supports the Movable Type XML-RPC interface.


Accumulated notes on the Scrum project management system. So far, this is just links to other journal posts and pieces of information that I don't want to lose.

Shared Library Search Paths

Notes on how to get compiled software to find the appropriate shared libraries on Solaris and Linux, with details on rpath, -R, LD_RUN_PATH, and utilities for viewing and changing those paths.

Small-Scale Puppet

Describes the way I use Puppet to manage my personal systems, which combines masterless Puppet with a Git repository and some simple shell scripts.

System Templating with Bundle

Obsolete, replaced with Puppet as described above. Describes the configuration management system that I used to use for my personal systems. This system uses bundle in combination with Git and some simple shell scripts to keep all configuration changes in a version control system and allow me to push configuration changes to remote systems.


Notes and tidbits of information that I've accumulated on how to administer Solaris systems. These notes are out of date, since I moved to Debian GNU/Linux for all the systems that I maintain. Mostly of interest to people who have to deal with Solaris 2.6 or Solaris 7 for some strange reason.


Notes on XHTML, particularly 1.0, and my experiences in converting all of my pages to XHTML. Includes notes about IE's historically buggy handling of XML directives.

Last spun 2021-09-25 from thread modified 2018-01-08