My web page has four main sections. There is a Javascript implementation of a B+ Tree, a selection of programs I have written related to playing chess on a computer, some scripts for various graphics programs and a section about my hi-fi hobby.

The B+ Tree program

I'd been planning on writing a B+ Tree implementation ever since I came across them on a computing course at university. I'm not sure there is a practical use for a JavaScript version but it does have the advantage that it's easy to present interactively online. On these pages I describe the source code as well as providing a demonstration page where you can build and use your own tree. There is also a notes page that describes in more detail how the functions actually work.

Chess programs

I've always found it interesting watching two chess programs play each other, and the Arena Chess GUI provides a good way of doing this. However it only allows for round robin (all play all) and gauntlet (one plays many) type competitions. In chess it is very common to have Swiss style tournaments, where each round has players paired against others with the same number of points. Arena doesn't provide for this, but I found a program called ArenaSwiss by Eberhard Jiritschka from 2009 that interfaced with Arena. When I saw it was written in Pascal I decided it would be a good opportunity to reacquaint myself with a language I hadn't used in over 30 years, and I ended up creating my own version of the program. This in turn led to creating various other programs relating to playing chess with Arena, LucasChess, Shredder and Fritz/ChessBase using drivers for controlling electronic chess boards made by Novag, Certabo, Millennium, DGT, Square Off, Chessnut, Saitek and iChessOne.

Graphics scripts

A floor layout program I've used for over ten years now is RoomArranger. I like it as it uses a game engine to allow you to "walk" around the plan in 3D rather than other programs which often produce more photorealistic views but from a fixed path. It also allows you to create your own objects by either grouping together primitive shapes or importing them as VRML objects rather than relying on a large library of objects that don't really match my furniture etc. To create the VRML files I use Blender or FreeCAD, but both of these had issues with the VRML export so I amended their scripts to make them more suitable for my use.
Another graphics program I've found useful is PhotoSwipe for displaying pictures on websites. It's a really powerful JavaScript library but has quite poor documentation about how to get started with it. So again I wrote my own script for implementing it.

My Hi-Fi pages

These pages are all related to the work I did on my hi-fi system: rebuilding the crossovers in my speakers, assembling and upgrading a tube amplifier and so on.

Downloads from this site are not available in Russia.