User-Transparent LZ77 Steganography

Recently, demand for high-speed compression has lead to new algorithms based on pure Lempel-Ziv compression without entropy coding. Examples are Snappy and LZ4, both using byte based LZ77 algorithms. This leaves significant redundancy on the table that can be used for steganography while remaining completely transparent to the users of ...

more ...

Natural Order String Comparisons in C

I wrote a simple natural string order comparison function in C. I later found out I basically reimplemented (a part of) Martin Pool's strnatcmp, so I renamed mine that as well.

The idea is that in many cases the string "foo10bar" should sort after "foo9bar" instead of in between ...

more ...




Actor Model for BlitzMax v.1.10

Implementation of the actor model for BlitzMax, updated version 1.10 with better thread management. Works both threaded and non-threaded, though there are obviously some differences. Methods and types state when they are threaded-only. Requires a fairly recent version of BlitzMax.

Uncomment the Module lines and save to mod/otus ...

more ...

Synchronized Data Structures for BlitzMax

Synchronized list and map data structure modules for BlitzMax. Just a simple mutex-locked wrapper over the BRL types to make operations atomic. Should be compatible with old code.

Prebuilt for Windows with source. Built using 1.33rc5, but 1.32 should also work. Linux and Mac versions of BRL.Threading ...

more ...

LZMA Streams for BlitzMax

As promised, here is a BlitzMax module based on my LZMA module that handles automatic compression of streams. By using it reading and writing compressed files is as easy as using "lzma::" as a prefix to OpenStream.

It should also work fine with other types of streams, eg. IncBin streams ...

more ...

Ray-Sphere Intersection

I'm writing a small raytracer to familiarize myself with Java. Obviously many of the main algorithms need to be as fast as possible in order to eventually get to real time speeds.

Here's my optimized version of a ray-sphere intersect check. It can probably be tweaked further: 9 ...

more ...

BlitzMax Object Loader Module

In connection with another project of mine, I produced a BlitzMax module that allows writing and reading arbitrary objects to streams. It can also be seen as a generalization of ReadInt, WriteString and the rest. It should be useful for saving game states or creating an undo feature.

It uses ...

more ...