Welcome to binky.org.uk
Various code snippets and documents

POSIX terminal handling
cbreak.c implements pause() for POSIX compiliant systems. It removes line buffering from stdin. This is handy to get beginners off my back. getpass.c implements POSIX getpass(). Useful to show how to turn off terminal echoing. mask_read.c basically does sort of the same as getpass(), but prints asterisks when characters are typed. It's a bit simpler, too, and just uses stdin and stdout.
cbreak.c.
getpass.c.
mask_read.c.

Documents
I've also written several documents, all about various things. A dungeon generation algorithm.
A maze generator.
A pathfinder.
A POSIX regular expression to match email addresses.

No longer functioning, slightly unportable code
At one point in time I read something about building /really/ tiny executables under Linux. The guy wrote his own ELF header, most parts overlapping, to save space. Several times he noted that Linux was very lenient when it came to executables. This got me to thinking... and I'll spare you the brain cramps that resulted in this horrible broth. The notes are here. Note that it /requires/ linux, and it /requires/ intel. It also may not run at all :P

Better unportable code
The above doesn't work any more. So I made a new one: The horrible broth, and The notes.

Stuff
After browsing through Bernstein's horrible QMail code, I felt I could do better than his string functions. I started with strlen()... and outperformed Glibc's function.
Get source here.
Assembler code is here.
Also, here's a way to convert a string of hexadecimal characters to numbers I've used on occasion: Source is here.

Fortune of the day:
At once it struck me what quality went to form a man of achievement,
especially in literature, and which Shakespeare possessed so enormously
-- I mean negative capability, that is, when a man is capable of being
in uncertainties, mysteries, doubts, without any irritable reaching
after fact and reason.
-- John Keats