Spineless Software

This page contains software released by Spineless Software (i.e. by Wez).

Photo : JPEG Annotation GUI

Photo uses the comment field available in the JPEG image format to store supplemental information about an image. This information can then be used to build presentations such as slideshows or web pages.

RDP2VNC : RDP to VNC Protocol Adaptor

RDP2VNC allows machines running Windows Terminal Services to be accessed remotely using VNC. This is achieved by placing a proxy between the two different protocols. This release of RDP2VNC builds on the work done originally by Tim Edmonds. It contains several annoying rendering bugs, partly because the source tree is a little out of sync with the more actively developed RDesktop project.

You can download a precompiled RDP2VNC binary for Win32, which includes the required cygwin32 library, or the source code, which may be compiled using GCC under both Linux and Cygwin.

MoPy : Python for Psion 5/5mx/Revo

MoPy is a rudimentary port of the Python programming language to the EPOC32 operating system. Unlike the existing console based and more Epoc-tailored ports, MoPy provides thread, socket and serial modules.

NEWS: Further development of Python for the Psion will take place in the "epocpython" project at http://www.sourceforge.net/ and will include patches from all the available ports, including MoPy.

Familiar Applications

Spineless Software is responsible for a number of packages in the Familiar Linux distribution for palmtop computers. These packages include:

EchoLogo : Minimal Logo interpreter

EchoLogo is a very basic implementation of the Logo programming language, a Lisp-based turtle-drawing language used in schools to teach computer skills back when the BBC Micro was big news. Sadly, I can't find the documentation for it, so the only way to work out what it does is to have a look at the accompanying Logo demonstration source code (the .log files).

This implementation will deal with functions and numeric variables but won't do the more advanced Lisp features. It's pretty basic and not very fast. It was implemented by a group of six second-year Computer Science students at Cambridge University as part of our course - please don't take any of the programming style as representative of the course's quality, or of good programming practice, because it's not! In particular, the way in which the interpreter executes the programs is incredibly daft...

Armadillo : A 3D Turtle-Drawing Language

Armadillo is a programming language I designed myself. It's a 3D, pseudo-distributed turtle-drawing language. The language was originally based on Logo, Modula-3 and ML, which, if you've ever used them, you'll know is a very odd combination. The system is split into three parts. Programs (.arm files) are compiled into a special intermediate code format (.acf files) which is then run on an interpreter. Any graphical output from the interpreter is channelled to one or more displays. The compiler, interpreter and displays can all run on different machines across a network.

The language features a structural type system, typed variables, typed functions and function closures, reference (pointer) variables, threads, mutexes, condition variables and, of course, graphics commands. I'm afraid the only documentation is in the form of my final-year dissertation, which is included in the source distribution.

If you have Modula-3 then you can download full source code using the link above. You'll need to edit the m3makefiles to adjust the hard-coded paths and you'll need to comment out AnimVR and replace it with Anim3D if you haven't got AnimVR. The order to compiler the six parts is: armacode, armturtle, armanet, compiler, interp, display.

If you don't have Modula-3 and are running a Windows NT variant (including Windows 2K) then you can download executables using the link above. They won't run under Windows 9x without crashing stuff, I don't think. You'll need to run netobjd (part of the Modula-3 distribution) if you want to run an interactive interpreter or display graphics. Netobjd isn't currently part of the distribution because I think that'd breach their copyright.