Some of my favorite hacks
Some of my favorite hacks:
- eev.el, of course; see the eev manifesto and my emacs page.
- a .gdbinit to let eev.el support GDB.
- psne, snarf.e: support for downloading stuff from the net, in a way that preserves (well, almost) the original url: http://foo/bar becomes $S/http/foo/bar, where $S is /snarf at my home machine, ~/snarf elsewhere. A one-line change in wget to make it treat these urls better; a small patch to lynx to suppress most "file://localhost/"s.
- an expect script to connect to my ISP using minicom; it works even on computers with strange modems and horrible Linux distibutions like Conectiva. When you type
~d
nn, where nn is between 00 and 19, it dials one of the phone numbers from a list; when you type ~
[Enter] it exits minicom and runs pppd.
- a shell function to open the source of a debian package on a standard place. I keep copies of the standard debian cds on my hard disk, so using this function is a snap.
- a script to compile the kernel that uses a trick with timestamps to determine which source files were really used, and runs glimpseindex and etags on them; then we can search them with k22glimpse and find-k22tag.
- vtutil, vtutilsh.c, and their makefile: a way to change some characters on the console font and to make the compose table handle them; these characters can be displayed by emacs, even with colors, and they can be interpreted specially by TeX. Vtutil can also be set to take a screenshot every time you press Alt-up (kbrequest).
- My first "real" program in Tcl/Tk was an editor for commutative diagrams; I still use it a lot. It consists of LATEX/diaglib.013 and LATEX/basiclib.013, that are called by the chunks at LATEX/desenhos.013 when I use these ugly emacs functions. Here is a prototype of a cleaner substitute for diaglib.013 and basiclib.013.
- This set of pages is prepared from a few "source" files (see
a/s/
and the "(src)"s here) using the Tcl scripts Generate, Htmllib.tcl and Files.tcl; they are called from a Makefile, that generates and includes another makefile... and these makefiles are called from these e-scripts, that upload the files that have changed and do a remote remake. At my home machine I make the pages with different parameters (running makeL all
), to make most links point to their local copies at /snarf
.
- the script attachgdb checks its parent process, then its grandparent process, etc, etc, until finding one with a given name, "make", say; then it calls gnudoit to make the current emacs session attach a gdb to its pid.
- an expect script to understand how to set and export variables under tcsh.
- an expect script to configure (or reconfigure) X.
- Slink's xzoom doesn't respect gravity specs very well; here are some notes on hunting this bug.
- a .mapleinit and an Expect script to add eev support for the non-free computer algebra system Maple; ways to extract to text files the Maple source for some functions and some help pages.
- When I was trying to glue PForth to Tcl I had to understand how some C files were being preprocessed; I used
gcc -E
and then a filter written in awk to strip off the parts that came from files from /usr/include
.
- A modified Debian rescue disk that lets me connect my main machine to a linuxless 486 laptop using a plip cable.
(home)