Bob Jenkins' Web Site


Here's a 128-bit noncryptographic hash that runs at 3 bytes/cycle for long messages. It's much slower than lookup3 for short messages. Most uses of noncryptographic hashing have mostly short messages. The code and ideas behind this hash are quite ugly, too.

I'm working on a modification of frog that uses all the RAM, CPU, and disk of a machine. That works out to me belatedly learning Windows file I/O, things like "you can only have 512 files handles open at once" and "asynchronous I/O does have a callback interface" and "does I/O consume any CPU?".

For example, there were too many unknowns, so I wrote a test program to explore some of these interfaces. The first thing I found out was that (printf + cygwin + gcc + Windows 98 + Windows threads) isn't threadsafe. Although (printf + Vista + cl + Windows threads) is threadsafe. Fine, here is a program with a threadsafe printf replacement for gcc.

perpetual motion

Table of Contents (internal links):

Hashing
Here's a hash table, code for perfect hashing, a good hash function for hash table lookup, a FAQ, some theory, and code to search for new hash functions. I tried designing block ciphers and finding characteristics. I had an article published in Dr. Dobb's in September 1997.
Randomness
Have the cryptographic pseudorandom number generator ISAAC, a small noncryptographic pseudorandom number generator, a prize for breaking ISAAC, and ISAAC's background and theory. Also take some tests for randomness, and a table of orders of magnitude. Here are also some protocols and a unit vector generator.
Collections
See some skits from Boy Scouts, SQL tricks from Oracle, near-future speculations, some paper airplanes, some recipies, and some cartoons that I wrote in college.
Math
Look into pentagonal tiles, formulae for n-body orbit simulations, code for the HOMFLY knot polynomial, voting methods, choosing random passwords, jenny for pairwise testing, some error correction codes, a distributed HTML index, and a web page for choosing colors.
Physics
Consider perpetual motion machines, a dirigiped design, a scale model of the solar system, a page on exploring orbits with Java, Klemperer Rosettes, a simulation of Cruithne (a near-earth object), of figure-eight orbits, of binary star planetary orbits, a set of noncolliding orbits, some Dyson Swarms (pretty pictures!), some methods for the n-body problem, a description of the orbit applet used, and a tentative itzu world.
Home projects
See my half bath, a house design that will never be built, a dollhouse that did get built, some genealogical notes, and a roof rack for Justine's car.
Other
Here is my autobiography, a resume, a cong from the British Museum, a comparison of JPEG and JPEG 2000, a bit on software patents, my mom's art, and some early Bob photos. My wife Justine has a website too. Here are people I've encountered more than once.


Here are some other sites:


Send mail to Bob at bob_jenkins@burtleburtle.net.