Research elisp

Code for doing research; includes monitoring of emacs user behaviour for empirical research, and organization of research papers.

citation.el
Citation handling for LaTeX.
command-log.el

This package keeps track of which commands the user has used interactively.

written by John C G Sturdy, October 2004
IPR declaration: all my original work

Acknowledgement: Part of the B4STEP project of the SFI (Science Foundation Ireland) at University of Limerick, written while on a SOCRATES exchange to Umeå University.

It is meant for empirical studies in software engineering -- i.e. looking at how programmers do their thing. Although other parts of the programmers' environment have been studied by HCI specialists, editors seem to have received relatively little attention (something which I am trying to rectify) despite their being the kind of program which probably receives most of the users' input.

You could put it in new users' startup files (with their consent), with command-log-save-to-file in their exit sequence, to find how fast people increase the number of commands they use as they learn emacs, and to see how wide the spread of command set sizes is among a class.

You could also use it to spot which commands deserve to have easy key-bindings. I might add some code to do analysis of this, although it's probably too much trouble to record the route by which each command was reached, and so the analysis would just use all the keymaps which were around at the time.

With suitable log analysis software, you could spot patterns of command use that suggest people learning new commands from each other, for example, as well as looking at the learning curves and the command set sizes.

day-structure.el
Help to structure my research day. Written because I'd like to manage my time better, including particularly more reading time.
editing-behaviour-log.el
Log all that the user does in particular buffers. This is meant for empirical research into software development -- initially for looking at the cognitive ergonomics of navigating to the code you want to change. I will later write some code to help analyze these logs.
papers.el
Manage your collection of papers.
sidebrain.el, sidebrain-browse.el
A working memory tool for programmers: it maintains a stack of your current tasks, and a queue or pool of pending tasks, and a set of observations, to help to remind you what you're doing. This is a fairly new project; from what I can tell so far, it helps me to keep focused on what I'm doing. Being a suitably structured, and indefinitely extensible, e-``back of an envelope'', it is a very flexible tool.
unplugged
I find I'm much more productive off-line, shuttling my files around on USB mass storage devices. I'm not the only one who finds this, I know, and with the information (and distraction) overload that can so easily happen nowadays, and with the risk of large companies attempting to interfere with FLOSS development, I think it could be an important part of the way forward for software developments, so I'm starting a line of research into how to do ``unplugged'' distributed development.

To me

[My elisp index] [My research index] [My home page]

Last modified: Mon Dec 05 16:03:05 GMT Standard Time 2005