aaron s. hawley

Personal collection of computer code and technical writing.
Programming is more than an important practical art, it is also a gigantic undertaking in the foundations of knowledge.
— Grace Hopper
http://www.ashawley.com/ is the permanent Web address of this site.
To contact me electronically, see Aaron S. Hawley.
Software
Free software packages and libraries that I have authored or maintain.
- PHP mode for Emacs — Syntax highlighting, editing support and development environment for the PHP programming language in the Emacs text editor. [2008-01-25]
- txt2rss — Generate RSS feeds from line-oriented text files.
- PHPph — Access a CCSO nameserver for online directories (phone books) at colleges, universities and other institutions. [2003-03-13]
- wikirel.el — Launch relevant pages on the Emacs Wiki from the current context of Emacs. [2008-12-23]
- fdlcap.el — Emacs commands that cycle through the capitalization possibilties for words. [2007-12-16]
- regexpl.el — Emacs Lisp package that can find-and-replace sets of regular expression substitutions. [2007-10-31]
- bmi.el — A simple Emacs library that calculates human body mass index to US government standard. [2007-10-01]
- plural.el — A set of Emacs commands that pluralize english nouns. [2006-11-10]
- integers.el — Emacs Lisp library to understand integers in the buffer and give example command to increase or decrease. [2005-08-16]
- levenshtein.el — Implementation of Levenshtein distance algorithm in Emacs Lisp. [2005-07-12]
Software contributor
Accepted patches or otherwise.
- Fixes to tag help for HTML mode in Emacs [2009-06-05]
- NATO phonetic alphabet support in Emacs — Proposed patch. [2009-02-11]
- Fedora package maintainer for RedHat's community-based, free software operating system.
[2008-07-30] First package available as an update.
[2008-05-04] First package build.
[2008-04-08] First commit to CVS.
[2008-03-27] RPM review request begun. - Improve shell scripts in the dump package for automated backups to disk. [2008-04-01]
- Automatically insert a template ("Auto-insert") into a new Texinfo source file in Emacs. [2007-10-03]
- Fix URL encoding of array variables in
Net_URL, a PHP Pear package. [2004-10-11] - XML Docbook support for the rman command for PolyglotMan. [2003-04-11]
- FTP spider support for GNU Wget. [2003-02-06]
Web sites
Sites which I have a hand in producing. For prior and existing employed responsibilities, see résumé.
- VAGUE Web site — A customized Wiki site for a user's group with interests in unix and free software.
[2002-06-03] File-based HTML site maintained by-hand and with some custom scripting.
[2005-07-23] XML events "feed" used text-to-rss system (see txt2rss above).
[2006-03-28] Wiki installed and configured as a supplement.
[2009-04-27] The main Web site is entirely moved to the Wiki. - Refusal computing — A personal Web blog on software and hacking.
[2007-11-05] First post with LiveJournal.
[2007-11-09] Syndicated to the Planet Emacsen.
[2008-08-28] Syndicated to Planet Fedora.
Articles
Technical writings or otherwise I have authored in various sizes. Some are strictly how-tos and others include commentary.
- Sorting UTF-8 strings in PHP — On heuristics to "do the right thing" when sorting multi-lingual lists. [2009-05-29]
- Change log entries for HTML files — How to conveniently create a ChangeLog file in Emacs's HTML editing mode. [2009-05-09]
- PHP gets Lambda — A new version of the Web scripting engine will have functional programming prowess. [2009-03-12]
- Kickstarting a QEMU image with Fedora — Automate the building of virtual machine images. [2008-11-16]
- Feeding entropy to GnuPG on Fedora — How to guarantee automatically generated GPG encryption keys are random enough. [2008-08-28]
- GPG signing RPMs unattended — How to automate adding GPG signatures in a continuous integration environment for making builds for the RedHat Package Manager. [2008-08-20]
- rpmbuild -tb tarball — Building RPMs from source tarballs, an unofficial how-to of a relatively unknown feature. [2008-11-14]
- Accessing the first word in a shell — An investigation in processing words in the Bourne again shell (Bash). [2008-03-12]
- Rules to Double King Pede — A variation of the card playing games Pedro, Cinch, All Fours, Pitch … local to Vermont. [2006-01-13]
- Rules to Pinochle — Basic two-hand Pinochle playing card game. [2006-01-12]
- Making copyleft work with "implied compliance" — Defending the new "60-day violation window" for license termination in version 3 of the GPL. [2006-11-16]
- The shortest tutorial to compiling Java on GNU/Linux — The trick is to use Debian. [2005-10-19]
- Parsing Strings with MIT/GNU Scheme -- A tutorial on using the
*parserlibrary. [2005-10-06] - Using thing-at-point in Emacs — An introduction to extending Emacs with the thingatpt.el Lisp library. [2005-08-29]
- Getting flipped pages with `psnup' on duplex printers — How to fix a silly bug when double-sided printing with a Postscript file. [2005-06-30]
- Diff on Wikipedia — Corresponded with a few of the original hackers responsible for writing or contributing to the development of the famous file comparison utility. Organized and wrote a thorough article for the free encyclopedia. [2004-07-09] [2006-08-16]
Hacking
Personal interest programming that was done for fun.
- reverse-words — Emacs command written in Lisp to reverse the words in a region. [2007-07-25]
- sort-words — Emacs command written in Lisp to sort words in a region. [2007-07-25]
- pwgen.sh — A really simple random password generator for GNU/Linux systems written with shell scripting.
- shuffle-stl.cpp — A C++ program that randomly shuffle lines in a file by thoroughly using the Standard Template Library (STL) as suggested by the article by David R. Musser, "Test-line Random Shuffling Program" (25 April 2005).
- shuffle.cpp — A prior version of the shuffle program without , but After writing a shuffle command in the Awk scripting language (see below), I ported it to C++. I like the Awk version better.
- shuffle.awk - Randomly shuffle the lines in a file by using the Awk scripting program. Other implementations I came across were either suspect of being only pseudo-random, were guilty of being obtusely written or were incomplete for all cases. Most importantly, they missed an optimization that requires only iterating once through all the lines after reading them in: Pick a random number, X, between 1 and N (here, N is the number of lines). Print the Xth line, and swap it with the Nth line. Then generate a random number between 1 and (N - 1).
- my-bib-macros.texi -- Simple citation support for bibliographic entries in the Texinfo markup language. [2004-12-07]
Manuals
The maligned art of describing how to use software.
-
- PHP mode manual
- A 30 page manual on PHP mode for Emacs (see PHP Mode for Emacs above) available in Web, print and Emacs Info formats.
-
- Richard M. Stallman. GNU Emacs Manual for GNU Emacs version 22. 16th edition. Free Software Foundation. 2007.
- [2005-11-22] Contributed section on "Diff mode".
- [2006-03-08] Completed section on version control log mode.
- [2007-10-16] Recommendation for index entry.
-
- GNU Core Utilities manual
- Small fixes to file permissions section. [patch #4161]
-
- GNU Findutils manual
- Correct typos and small improvements. [patch #3751]
-
- An Introduction to the Emacs Editor (PDF) by Eugene Ciccarelli, published as an MIT AI Memo in 1978.
- [2005-06-01] Typeset the archived paper version as a document of Emacsen history.
-
- GNU Revision Control System (RCS) manual
- An unfinished project to make a comprehensive and free book. [2003-01-27]
Other notes
Various collections of writing, source code and Web that I've had a hand in.
- Emacs key binding reference sheet — Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering. For my ally is Emacs, and a powerful ally it is. Life creates it, makes it grow. Its energy surrounds us and binds us.
- Wiki maintenance -- Notes on how the MediaWiki software is configured for the VAGUE group.
- RPM Tricks -- A collection of suggested uses of the working with RPM packages on Fedora.
- Working with RPM -- An essay by Sam Hooker on the benefits of using package management.
- Scheme Programming with MIT/GNU Scheme — A Web bibliography for an elegant but sophisticated dialect of Lisp.
- Using GNU RCS — An unofficial reference guide on an obsolete version control system.
Files under this path
Various documents and software I didn't write but are made available here.
- diction.el -- A minor mode for Emacs that works with the writing style command, diction. [2007-12-13]
- EMACS, grep, and UNIX: authorship, invention and translation in software [PDF] by Christopher Kelty. [2006-03-20].
- An Introduction to the EMACS Editor (PDF) by Eugene Cicarelli while at MIT in 1978. [2005-06-01]
- GNU LaTeX manual by Burns et al. [2005-04-05]
- RCS—A System for Version Control - Paper by Walter Tichy originally published in 1985, but typeset for Web and print versions. [2004-07-15]
URL of this page:
http://www.burlingtontelecom.net/~ashawley/