Hacks
I've been hacking on various things ever since I got my first VIC-20
when I was twelve years or something like that. A lot of it has been
lost (and you probably wouldn't be interested anyway), but I'll try to
list some of the more interesting things, in roughly reverse
cronological order. Most of it is distributed under the GNU General
Public License.
- Lego mindstorms tools
- I've started writing an assembler and disassembler for the
virtual machine used in the Lego Mindstorm "NXT"-device.
More information.
- Fast integer greatest common divisor
- I've written a paper on subquadratic gcd
algorithms. The code is
intended to be used together with GMP-4.1.2, and it will probably be
included in GMP-5.
- NSokoban
- A Sokoban game, primarily for the palm
pilot. You can check out the source code with
cvs -d :pserver:anonymous@cvs.lysator.liu.se:/cvsroot/nsokoban login
[ empty password ]
cvs -d :pserver:anonymous@cvs.lysator.liu.se:/cvsroot/nsokoban co sokoban
See the README file for build instructions.
- Nettle
- A low-level cryptographic library, that has grown out of the
Pike crypto toolkit and LSH. The design goals are simplicity
and consistence, and to not make any gracious assumptions on
how it is used. In particular, it doesn't do any i/o or memory
allocation. A manual is included. Included with LSH, and
available at the same places. There's also a minimal
home
page.
- Scheme
- I like scheme, and occasionally I hack on an implementation of
my own. It's inspired by oak-lisp (an object oriented scheme)
and Appel's book Compiling with Continuations (about the
implementation of Standard ML of new Jersey). It's far from
usable, but you're welcome to browse the
source.
- LSH
- A GPL:ed implementation of the secure shell protocols. See its
homepage for
more information. Source tarballs are available by http and ftp. You
can also browse the cvs
source code.
- NCash
- For my master of science thesis, I implemented an offline
digital cash system invented by Stefan Brands. I haven't done
anything about it since I got my MSc degree, but the information about it is still available.
- SSL
- While working for Idonex (now Roxen Internet Software), I wrote
the SSL implementation used in the Roxen web server.
- Pike cryptography toolkit
- I and Henrik Grubbström wrote the cryptographic toolkit for
Pike, that Roxen's SSL
implementaiton is built upon.
- Python GMP module
- When Python-1.3 was the latest version of python, I rewrote its
GMP module (an interface to the GNU Multiprecision arithmetic
library). Later, Andrew Kuchling adopted the package and it was
integrated into the Official Python distribution.
- Exceptions for C
- When working with C and Objective-C, I wrote an exceptions
implementation (basically catch, throw, and unwind-protect)
that could be used from both languages. I didn't ever use it
for anything, though.
- Computing the distance to the Mandelbrot set
- There are a few tricks that can be used when plotting the
Mandelbrot set. One is estimating the distance from do the
border from a point inside or outside of the set. I have a C
implementation of this, and an article (in swedish) with an
explanation and references.
- Vector graphics
- Like almost everybody else, I had a long
period when I was fascinated with 3D graphics. A wrote a few
simple, portable and reasonably well-commented functions for basic vector
graphics. There's also a testprogram that runs on X and on
the Amiga. Ture
Pålsson helped me with the X parts back then.