Tristan Grimmer's Random Stuff

Just some stuff. Everything here is free. Hope you find it useful...

International Data Encryption Algorithm IDEA

Here's the most useful ever implementation of IDEA. This was written after reading the book 'Applied Cryptography' (maybe 2nd edition) by Bruce Schneier. Only source code and project files are provided because you shouldn't trust an executable. The code is functional and easy enough to understand. The tool encrypts a file with a passphrase using the 128bit strong IDEA in CBC mode. It also encrypts the filename itself, so a potential attacker has nothing to go on. When run, the tool generates a (new) self-decrypting executable. Your data is your decryption software, so there's never anything to 'install'.

Don't forget your passphrase! Only download this if you are within Canada or the USA.

When you compile this you'll need to do it twice! That sounds odd, but you'll understand shortly! At the top of IDEA.cpp you'll see:

#define EXE_SIZE NNNNNN // Must be kept up to date!!

So, compile it once, look at the size (in bytes) of the exe, type that number where you see the NNNNNNs, then compile again. The program appends the encrypted data onto the end of a duplicate copy of the first EXE_SIZE bytes of itself. The reason it can't just look at it's own current filesize is that there may already be data appended there. There are 2 main modes the code is compiled in, a CLI and an MFC app. They both do the same job.

green_bullet.gif Download IDEA

Proggy Programming Fonts

Looking for the perfect programming font? You'll find them at

HighDensity theme for Flyspray 0.9.9.X

Flyspray is a powerful yet easy to use and install PHP-based task and issue tracking system. The HighDensity Flyspray theme below allows more information to be shown at once.

green_bullet.gif Download HighDensity

Knowledge Based Artificial Neural Network

This is a paper I wrote many years ago that appears to be a reasonable way to instantiate a neural network with prior knowledge. The method appears to outperform, in terms of training time, the KBANN algorithm discussed in many academic papers. If you do download this, please ignore the egocentricity I showed when I wrote it. Apart from the fact that I never figured out what the 'B' should stand for, TriBANN is simply not the best name for this algorithm. The power of this algorithm comes from decoupling the structure of the newtork to the domain knowledge. It should exhibit reasonably good behaviour even if the prior knowledge is reasonably uncertain. The training time is also much reduced since the network only contains a single layer of hidden units.

The PostScript version looks better. Unix people can use ghostview or something, Mac is nearly synonamous with Adobe, so your probably OK. For Windows a very good Postscript interpreter and viewer is available at the AFPL site. A smaller pdf is also available, but it doesn't look as good.

green_bullet.gif Download (Postscript) KBANN Report
green_bullet.gif Download (PDF) KBANN Report

The Neutral Theory of Genetic Variation

Here's a paper I wrote while taking a Physical Anthropology course. It really has more to do with evolution in general than with Anthropology. The report takes a critical look at the neutral theory of evolution, in which most mutations are considered to be selectively neutral. It's odd, I conclude the paper saying that natural selection plays an important role in our evolution, but I don't actually believe it. Natural selection always seemed a little absurd. Especially in light of our growing understanding of complexity. Books like "A New Kind of Science" (Wolfram), and "Computers and the Rise of the Sciences of Complexity" (Pagels) are starting to supply much more plausible explanations.

green_bullet.gif Download Genetic Variation

Pulse Modulator

Integrated systems. This document describes a circuit that was built and, much to my surprise, worked. It allows a computer to pulse a model train track and send messages through it. The same track supplies power to the model trains (HO scale I think). The circuit is 'safe' in that the power components are optically isolated from the logic components. The really cool thing about the circuit is that it allows a short circuit on the power side, like putting a screwdriver across the tracks, and nothing blows up. It uses PALs to reduce the duty cycle of power being supplied to the track, and polls until the short is removed. HEXFETS are used to control the track voltage.

green_bullet.gif Download (Postscript) Pulse Modulator
green_bullet.gif Download (PDF) Pulse Modulator


green_bullet.gif Tactile A 3D information matter based interface to your PC.
green_bullet.gif Site Stats

© Copyrights

Well, Windows is copyright Microsoft. The word Microsoft in the previous sentence is a registered trade mark of Microsoft, and so are all occurances of the word 'Microsoft' in this sentence, including the one in quotes, and the two previous. Postscript is an Adobe thing, and is copyrighted, trade marked, incorporated, and registered. This web page and all content are copyrighted by Tristan Grimmer, but few rights are reserved. Oh yeah, there are no guarantees. Not even that implied express warrantability fitness purpose thing.