hackito, ergo sum

[efault : npat : hacks]

This is a colection of programs, libraries, chunks of code, scripts, and kluges, I have written, built, or simply been involved with. Either for work or for play; some polished, some rough; some completed, some left unfinished; some working most of the times, others rarely, if at all. Published here for others to use, play with, study, modify, and extend. Comments, fixes, extensions, suggestions, and questions are welcome. Send them to:

Nick Patavalis <npat [at] efault [dot] net>


xmlmp A small Python package (and a couple of simple scripts using it), that facilitates the authoring of unix man-pages (the ugly groff things), using XML. It defines the xmlmp 1.1 DTD, and provides filters that convert documents complying with it to either unix man-pages, or HTML documents.
version 1.1
mu0 A simulator for the MU0 (Manchester University 0) processor written in Python, using the MyHDL module. MU0 is an abstract machine, used for educational purposes by the Manchester University. It is modeled after the SSEM computer, which was one of the first computers ever built. MyHDL is a python module that takes advantage of generators (a feature introduced in Python 2.2) to provide HDL-like parallel-execution features to Python programs.
version 0.2
ppgplot Python bindings for the PGPLOT library. PGPLOT is a scientific visualization (graphics) library written in Fortran by T. J. Pearson. C bindings for PGPLOT are also available. ppgplot makes the library usable by Python programs. It uses the Numeric Python module, to efficiently represent and manipulate vectors and matrices.
version 1.3
ianjtag "ianjtag tools" is a collection of code and a set of tools for using the JTAG interface (present in most modern microprocessors) to perform hardware tests, and for programming Flash Memory Devices connected to the processor's bus. It is especially useful in embedded systems development projects for performing initial system tests and for bootstrapping the prototype systems. "ianjtag tools" run on a "host system" (e.g. a desktop computer with Linux) and access the "target system" (e.g. the embedded system's CPU board) through a simple 5-lines hardware interface. In the present implementation the host system's parallel port is used as the hardware interface, though other arrangements can very easily be supported. "ianjtag tools" is an inAccess Networks project.
version 1.2
picocom As its name suggests, picocom is a minimal dumb-terminal emulation program. It is, in principle, very much like minicom, only it's pico instead of mini! It was designed to serve as a simple, manual, modem configuration, testing, and debugging tool. It has also served (quite well) as a low-tech "terminal-window" to allow operator intervention in PPP connection scripts (something like the ms-windows "open terminal window before / after dialing" feature). It could also prove useful in many other similar tasks.
version 1.4
tstflow.c This is a small program that helps test a Linux / Unix serial port. It was written mainly to help debug RS232 flow-control related problems, while developing a UART driver. It either emits or receives a continuous stream of 0,1,2...255,0,1,2... bytes on the selected serial device. On reception mode, it checks to see that the bytes received are indeed in-sequence, and reports an error otherwise. "tstflow" can also (optionally) delay for a few milliseconds every "n" bytes in order to help create congestion phenomena and test the flow-control machinery. The status of the hardware flow-control lines (RTS and CTS) is also constantly reported.
kmemdis "kmemdis" is a crude tool I have written that disassembles parts of a running kernel, by reading directly from "/dev/kmem". All the actual disassembler intelligence is taken (almost verbatim) form GNU binutils. "kmemdis" has only been used on StrongARM-based systems running Linux. It has helped me debug strange module crashes, where I could not trust that the code actually running was identical to that in the object file.
version 1.0
grksup "grksup" contains a simple EMACS-lisp module that allows modern (monotoniko) Greek input in pre-Mule EMACSen. If, for any reason, you are using an EMACS version older than 20, you cannot upgrade, and you want to type Greek in it, then this package might help you. It also contains a couple of (rather crude) greek display fonts (bitmaps), and installation instructions.


Updated: Wed Mar 10 02:08:41 EET 2004