Background
The following are scripts and programs I've written for myself over the years. Most are distributed under the terms of the
GNU General Public License; while opinions on the GPL
vary widely (
wikipedia article), I apply it to software I write to encourage people to make modifications that suit their needs, and to share their improvements with others. Please send any complaints about licensing issues to
/dev/null.
I am making these projects available in the hope that they might be useful; keep in mind that most of them started as a quick solution to an immediate need, and evolved (some more than others) gradually from there. Some are relatively polished and complete, others less so. None are ready for 'production' use in any setting.
Python
I do a lot of my software development in
python, a high-level, object-oriented, dynamically typed, interpreted language with a strong developer community and a
huge collection of standard modules that extend its core functionality. As a strong supporter of python, I encourage anyone interested in rapid development of robust, portable applications to check it out.
Project List
lim2pov - Create POV-Ray script from output of Curt McMullen's program lim
This
python script parses a postscript file produced by lim and writes the list of circles to a text file in a format suitable for use with the open-source ray-tracing program
POV-Ray. I used this script to create all of my
3D limit set pictures.
Download:
lim2pov.py (python script)
dfiler - Document Filer (Updated 7/2009)
I use this
python script to download preprints from the web, particularly the
arXiv. It helps you to choose an appropriate location and filename for a document by displaying a short section of extracted text (which probably contains key metadata like the title and author). Uses the
wxPython GUI toolkit.
Changes in version 0.0.4: Better handling of missing 'wxversion' module and version detection in general. First version to be licensed under GPL3.
Changes in version 0.0.3: Better wxPython version detection and selection; now scrubs unicode strings if wxPython does not support unicode, resulting in lower-quality text extraction instead of an exception and exit.
Download:
hmath - BibTeX style with author initials and URLs
This BibTeX style is derived from
Curt McMullen's style
math.bst, which is in turn a better version of the standard style alpha.bst included with
BibTeX. The
only feature I've added to McMullen's style is the ability to include
arXiv-style eprint references in your BibTeX entries; this mechanism is also suitable for including URLs for preprints.
Download:
hmath.bst (BibTeX style file)
ps2web - Postscript to PNG for web presentation
This shell script uses ghostscript to convert the pages of a postscript or PDF document to PNG files at a resolution suitable for screen reading of larger text. This might be useful to put the transparencies from a talk on the web.
Download:
ps2web (bash script)
ps2web_full - Postscript slides to HTML gallery converter
A companion to the previous entry, this script calls ps2web and then creates an HTML galley of the page images using
igal.
Download:
ps2web_full (bash script)
h5frames - Create image sequence from HDF5 data
This
python script generates a series of images from datasets in a
HDF5 data file using
Steven Johnson's utility
h5topng. It looks for datasets and groups within the data file whose names are part of a sequence (e.g. group01, group02, …) and converts them to similarly named PNG images. I used this script (and
transcode) to create all of my
Bers slice animations.
Download:
h5frames (python script)
replacer - Replace delimited text
This shell script replaces a section of a text file with the contents of another based on arbitrary delimiters. At one time, I used this extensively to generate the HTML for my web page from a bunch of data files.
Download:
replacer (bash script)
assembleppm - Assemble PPM chunks from POVRay distributed rendering
The ray-tracer
POV-Ray supports partial rendering, where a horizontal slice of a scene is generated. However, the resulting PPM files are technically invalid because the header size information refers to the entire image, rather than the rendered section. This small C program assembles a bunch of such partial image files into a single valid PPM.
This utility is based on combineppm by Paul Bourke.
Download: assembleppm.c (C source)