Packages and patches
Dstr ("Dave's string class") is a C++ class that I use instead of
std::string. It has gotten cloned into so many projects now that
I've made a shared library just to reduce the number of copies.
As of 2014-01-25, the last official release of Fvwm95 was version 2.0.43f,
released on 2003-05-04. It has some latent bugs and code rot.
Below are links to the original 2.0.43f distribution and my patched
version. The changes are (1) make it build with GCC 4.4.4 on x86_64
Linux, (2) fix FvwmButtons infinite looping and failing to exit after
Ctrl-Alt-BS, (3) update the battery status widget to work with newer Linux
kernels and not crash the taskbar, and (4) increase default optimization
level to O2.
A dead-ended branch of Linux kernel development that offered improved
memory utilization on 32-bit PCs.
Version 5.1 (the last) of TEd, extracted from the NIST SQL Test Suite and
patched as needed to compile cleanly on modern Linux. TEd supports
scripted editing of text files sort of like a fusion of the standard Unix
tools sed and patch. For operations spanning multiple lines I find it
more usable than sed. Documentation is included.
This nontrivial hack has a few extras that go with it.
- jukebox.cc: Play sound files (or
whatever) in random order forever. It will play every song in
the playlist exactly once before repeating any. State is
preserved between runs. Needs libdstr (see above).
- aplay-rt.c: Run aplay with realtime priority. Needs to be suid root.
- jukebox_prep: Script that I use with
- jukebox_play: Script that I use with
- whatgain.rb: Dependency of jukebox_prep. Normalize and sox disagree about RMS amplitude; this Ruby script extracts the desired value from normalize so that it can be passed to sox.
These packages work with document class article.
- blockquote.sty: Provides blockquote environment that is like quotation but without indentation.
- draftfoot.sty: Puts *** DRAFT *** in
the footer of every page.
- sssubsection.sty: Turns paragraphs into numbered subsubsubsections.
- timestamp.sty: Provides
\timestamp command to include current date and time in the form YYYY-MM-DD HH:MM.
LaTeX Preprocessor version 0.1 by Tobias Preclik (GPLv3). Downloaded
2012-02-17 from http://tpreclik.dyndns.org/codeblog/?page_id=29,
added header comments.
Quality or sanity not guaranteed.
- badgiftoppm.c: giftoppm modified to recover broken gifs.
- bin2c.c: encode a binary file as a C declaration
- binpatch.c: simple non-interactive binary patch utility
- cd.cc: fill a CD with random selections. Uses libdstr (see above).
- cd.sh: use sox and normalize to process a collection of sound files so they will sound better in my truck. Subsumed by cd.cc.
- check_sigs.sh: validate all signatures in a Slackware distribution (good for finding files that didn't download correctly)
- concatheaders.c: process e-mail to un-break header lines.
- cropsong.cc: adaptively crop silence from beginning and end of Wav files, replacing the original files.
- deinstall.c: delete files last touched in a certain range of time.
- DeleteBlankLines.cc: filter out blank lines and trim trailing whitespace. Uses libdstr (see above).
- discard_long_lines.cc: filter out lines longer than 1000 characters.
- doom_barrells.c: produces a PWAD to add random barrels to a DOOM or DOOM 2 level. Can be modified to add random whatever.
- dwfu2d.cc: Simultaneously convert Latin1 to CP437 and Unix LF to DOS CR/LF, and add a ^Z at the end. Requires Dstr 1.0.
elevate pid essentially renices a running process to the minimum realtime priority.
- facetopbm.c: convert x-face to PBM.
- filler.c: data source for overwriting a disk. The random source is fast but it repeats on the order of 64 GB.
- filler.cc: Boosted version of filler.c with a long-period random source suitable for large disks. It is slow but still about 3 times faster than /dev/urandom.
- find_big_files.c: name says it all.
- gethostbyname.c: command-line DNS lookup (also does by address).
- idfat.cc: show useful information about a FAT file system.
- ll.cc: print the length of the longest line in
a text file. Uses libdstr (see above).
- lossage_linux.sh: Linux version of script to monitor packet loss.
- lossage_solaris.sh: Solaris version of script to monitor packet loss.
- maketoc.pgcc: Create one or more toc files (as needed) to burn a collection of 44.1 kHz wav files to CD using cdrdao. Track titles are stored in and retrieved from a PostgreSql table. Files are identified by hash. Requires libdstr, libmhash, and PostgreSql.
- maxmem.c: simple benchmark of how much memory a single process can allocate.
- pbmtoface.c: convert PBM to x-face.
- ppmround.c: make a round PPM.
- prboom-patch.txt: patch to PrBoom 2.3.1 to fix one bug and add three new cheat codes.
- qdfilt.c: linear sharpening and smoothing of PPMs.
- qdgamma.c: quick and dirty replacement for pnmgamma, which broke at some point.
- qdnlfilt.c: nonlinear smoothing of PPMs.
- qdsort.cc: replacement for sort that does a better job with Latin-1. Uses libdstr (see above).
- qdvignet.c: correct vignetting / falloff in PPMs.
- rellif.c: validate results of filler.c.
- script-fu-copyright.scm: GIMP Script-Fu to add copyright notice to an image.
- setvesablank.c: somebody else's
program to adjust VESA monitor blanking under Linux.
- shorten.c: strip trailing spaces and lines and DOS-isms in a text file.
- skim_std_mailbox.c: print From: and Subject: fields of messages in a standard Unix mailbox (mbox).
modification of split_std_mailbox.cc to undo a certain nontrivial but
systematic mangling of messages. See embedded comments for
details. Uses libdstr (see above).
- split_std_mailbox.cc: turn an mbox into separate files, one per message. Uses libdstr (see above).
- split_unrmailed_RMAIL.c: turn the results of the Emacs command unrmail into individual messages, undoing RMAIL damage to From lines along the way.
- split_VM_INBOX.c: attempt to split a VM mailbox into separate messages.
- unbase64.c: somebody else's
program to decode base64.
- unc.c: junk-tolerant uudecoder.
- wavlength.cc: determine length in minutes:seconds of a collecton of 44.1 kHz wav files.
- whatchar.c: translate keypresses into ASCII values. Function keys with long escape sequences are translated correctly.
- xlabel.sh: change the name of an X window.