Other programs I wrote...
Here are all the small and probably useful to some programs I wrote in the past (for me or others).

TrayCalc -!- BeatCounter -!- dir2clipboard -!- bsdiff -!- APR-patch -!- Contact


TrayCalc is a comfortable little calculator for your Windows-Desktop.

It features formula-parsing (based on C-Style Syntax) and output of different numberformats with the ability to easily copy the result to the clipboard.
It's quite useful if you have to quickly test some bitmanipulations or to convert decimal to hexadecimal (C-Style (0xdeadface) and ASM-Style (4e71h)) or vice versa.
But you can also use it's floatingpoint arithmetics to calc whatever small calculation you have to do.

It hides in the System-Tray so that you can easily pop it up if you need it's functionality.

This little tool is freeware.

I made a minor change in the code in Aug.2001 which prints out the result in binary form as well.
And in summer 2004 I improved the parser so it can now handle "0b100" as well as "100b" as input for binary numbers (just like hex "0x1f" or "1fh").

Stand-Alone-Executable (Aug.2004)
size: 23.00 KB

sha1: 9a0a5 b11c7 b69d4 ad755 0daa2 bec55 7b44e 69ae2


This is a little BeatCounter-Program I wrote for a friend of MC Laser.
Nothing spectacular, but if someone needs such a tool, why not code it?

This is also freeware.

Stand-Alone-Executable (Sep.1999)
size: 12.00 KB

sha1: d5503 c1218 0dbd6 a5511 5cb25 4541e f39d8 ac967


You place this little tool in your SendTo-Directory (located inside your Windows-Directory, mostly named "C:\WINDOWS\SENDTO") and anytime you need a listing of one of your directories in plain ASCII-Text you simply use your contextmenu to get it on the clipboard!
Then you can edit or print it with any program you like, this can be the Notepad from Windows or Word or ...! Just press [ctrl]+[v] or use "paste" from the menu to get the Text from the Clipboard into your preferred App.

You can also use it as a Commandline-Utility, or if you prefer you can send the starting path per Drag&Drop to this little program.

If you give a filename as argument instead of a folder, the search begins in the directory where the file is placed.

I made a minor change in the code in Apr.2001 which improved performance on huge directory-trees.

This program is also freeware.

Another useful hint
Enter this program into your registry to get it to the context-menu of your drives, and due to the fact that I didn't wrote an installer you have to do it by hand:

Start "RegEdit" and open the first Node, called "HKEY_CLASSES_ROOT".
Now search the Node called "Drive" and open it. Do the same with "Shell".
Now you have to create a new Key, give it the name it should say in the contextmenu, like "Directory 2 Clipboard", inside this key you must create another key called "command", and for this key enter on the right side (like you can see in the screenshot) the path where Dir2Clpbrd.exe is located, following "%1" (you should enter these Quotation-Marks as well!) - and you're done! This reg-file does the same as explained above, but you have to change the path there as well! Keep in Mind that "\" has to be written "\\"

Stand-Alone-Executable (7.Apr.2001)
size: 11.50 KB

sha1: d5358 8d2ca eb1be 11363 60b52 7255f 9bc06 728dd


Original BSD-Version written by Colin Percival <cperciva@freebsd.org>
This is a quick native Win32-Port by Andreas John <dynacore@tesla.inka.de>

Read this quick overview boldly copied from the homepage of these tools:

Binary diff/patch utility
bsdiff and bspatch are tools for building and applying patches to binary files. By using suffix sorting (specifically, Larsson and Sadakane's qsufsort) and taking advantage of how executable files change, bsdiff routinely produces binary patches 50-80% smaller than those produced by Xdelta, and 15% smaller than those produced by .RTPatch (a $2750/seat commercial patch tool).

These programs were originally named bdiff and bpatch, but the large number of other programs using those names lead to confusion; I'm not sure if the "bs" in refers to "binary software" (because bsdiff produces exceptionally small patches for executable files) or "bytewise subtraction" (which is the key to how well it performs). Feel free to offer other suggestions.

bsdiff and bspatch use bzip2; by default they assume it is in /usr/bin.

bsdiff is quite memory-hungry. It requires max(17*n,9*n+m)+O(1) bytes of memory, where n is the size of the old file and m is the size of the new file. bspatch requires n+m+O(1) bytes.

bsdiff runs in O((n+m) log n) time; on a 200MHz Pentium Pro, building a binary patch for a 4MB file takes about 90 seconds. bspatch runs in O(n+m) time; on the same machine, applying that patch takes about two seconds.

Providing that off_t is defined properly, bsdiff and bspatch support files of up to 2^61-1 = 2Ei-1 bytes.

Additional information about this win32-port:

bsdiff 4.3 doesn't require bzip2.exe anymore, it's now statically linked with bzip2/bzlib.

Additionally off_t is currently defined to be 32 bit, so you're stuck with much smaller files (2^31-1 bytes or 2 GB)...
But before you're going to ask for it to become 64 bit, do some quick math!
This version is compiled for 32-bit machines, and deliberately assuming we can only address 2 GB of RAM per process, the biggest binary we can successfully bsdiff is even smaller, just about 120 MB!
Keep in mind that bsdiff works very well for executable files where differences to their successors tend to spread minor changes all over the file.
So, having huge files with mostly large parts identical, you should look for some other delta-tool, see List of delta encoding software (Wikipedia)

This work is subject to
BSD Protection License dated Feb.2002

Zipped Win32-Executables (May 2007)
size: 73.20 KB

sha1: 15972 55a1e 8eb5d 75189 135f6 defd1 23743 67fb5

Zipped Win32-Executables with source (May 2007)
size: 120.81 KB

sha1: 7e2d0 69461 ae433 9ffad 508cf a3633 a33d0 5cc79


I recently noticed that Subversion (SVN 1.1) can now be used without BerkeleyDB, it can now use a repository that is backed by your normal filesystem (SVN-Jargon: fsfs).
And because the BerkeleyDB was the number one reason why SVN-Server couldn't run on Win9x-systems, it felt naturally that SVN-Server can now be started with Win9x.

Too bad this isn't the case!

The problem comes from the fact that win9x only has very primitive file-locking (some would say "none at all") and the Apache Portability Runtime Library (libapr) doesn't deal too well with this.
So, as I'm still working with Win98 at home for my hobby-projects, and as SVN-Sources, as well as APR-Sources, are freely available, and because I had an relatively simple idea of how to create a semantically equivalent locking-scheme, I gave it a try!

I've done an small patch to apr/file_io/win32/flock.c, and SVN seems to work as intended on Win98 now (actually the patch only affects Win9x-Systems, for NT it's still the original APR-Code used for file-locking).

Unfortunately this is no perfect solution!

You can only access local repositories, it won't work reliable with remote/network-drives!
This is because the patch works by abstracting the file-locks to system-locks, completely without the real file-system!

To make this as clear as possible: The locking is done by the Win9x-System which is querying the repository, so access from another Win9x-System, e.g. over a network-drive, will lock on the second Win9x, thus ignoring locks from the first system and repository-consistency is not guaranteed.
But there is an obvious workaround: Simply always use svnserve and all access to the repository is done by one Win9x-System and the locking works as it should!

The Zip available here for download is a build from the sources of APR coming with SVN 1.1.2
I'll offer it "as is" with absolutely NO WARRANTY -- use solely at your own risk!

Zipped libapr.dll with flock.c.diff (15.Jan.2005)
size: 60.04 KB

sha1: 3858a d9ca2 82135 030e9 e8442 4b079 2581f 5a0a7

dynaCore   andreas_john@tesla.inka.de
andreas john
schulzenstr. 36
76771 hördt

[ Home ] [ Tesselation ] [ GPGrelay ] [ Guestbook ]