St Andrews logo

Software

menu_space.png Home menu_space.png
menu_space.png Contact menu_space.png
menu_space.png Research menu_space.png
menu_space.png Publications menu_space.png
menu_space.png Teaching menu_space.png
menu_arrow_r.png Software menu_arrow_l.png
menu_space.png Links menu_space.png
menu_space.png Miscellaneous menu_space.png

follow me on twitter

NRS

java
link.png
This is software from a research project. I have led the design and architecture activities but most of the code was written by Richard Smith. Follow the link for details.

So ... working on various projects, the majority of the code I have written has been closely tied to particular pieces of larger software. However, below there are a very few (sic) that I have actually managed to extract into self-contained packages.

The software below is not supported - it is all provided "as is". Generally, it is not maintained. If you find it useful please let me know ... if you find any bugs please let me know (no promises to fix, mind!) ... if you use any of this stuff please leave in an ACK ...


fping

C
pdf.png
zip.png
link.png
This is a slightly modified version of fping v2.4b2-to-ipv6. I have added a '-T' flag to allow microsecond timestamps for each ping. I have tried contacting the maintainer (twice) to have the patch put into the main release but have recieved no response ... so here it is!
The man page for fping is here.

netbyte

java
zip.png
java.png
link.png
This Java package allows you to make (canonical) network-order byte encodings for char, short, int, long, float and double. I created it for some students so they could build arbitary protocol packets with Java. It was written for JDK 1.4.1 but I suspect it will work with later JDKs.
An example program showing how to use it is here.
Online documentation is here.

qfDES

C
pdf.png
txt.png
zip.png
link.png
This is my (very old but quite fast) software implementation of the Data Encryption Standard (DES). This uses a standard 56-bit key (i.e. 64 bits which includes 8 parity bits). However, before you use DES, read this.
qfDES is used in the UCL multimedia tools, was previously used in the Open Mash tools and the UCL OSIMIS platform (which has now been retired!).
The man page for the qfDES API is here.

d_help

C & C++
zip.png
link.png
Some code to help with debugging, including hexdumpers, loggers, tracers and error printers. The logging code has separate C and C++ implementations. No documentation ... but it is reasonably easy to use.

xmas.c

C
c.png
And finally, for an example of well-structured, self-documenting, code ... see if you can guess what it does before you run it! It was one of the winning entries in the 5th International Obfuscated C Code Contest in 1988 It was written by Ian Phillips who worked at Cambridge Consultants at the time.
© Saleem Bhatti - generated 2010-12-02 15:51:35 using htp