Software Archives

Snippet Archives / Text Archives

Scanned Dictionary Browser

This is a webpage that shows a given page of a scanned dictionary. It is particularly handy when the scan does not have any OCRed text, or when there are language-specific searching features (e.g. handling alifs with or without hamza as the same letter in Arabic, or handling pointed and unpointed consonants as the same in Hindi).

It can be tailored to any language by supplying a suitable sorting function, a list of every page's first word, and (of course) the scanned dictionary pages.

Try it with the first 5 pages of McGregor's Hindi-English dictionary, or get the latest with Git:

git clone
Last update: 2018.03.18.

Arabic Dictionary App

An Arabic-English dictionary app for Android written in HTML/JavaScript, using jQuery Mobile and PhoneGap (so other platforms could be generated, as well). This is a rewrite of a Clojure program, you can read about its history here.

The screenshot shows a rendering by the lightweight Midori browser. (This way it can be used as a desktop application, as well.)

Download the Android app or the source code (previous versions are also included). You can also test it here.

Last update: 2014.06.23.


SFView (Surface Viewer) is a utility that I needed very much - it loads NxM grids of 3d points or NURBS surfaces and displays them in a common OpenGL window. There are several display modes, including slicing map, isophote map and mean curvature map, and it can also take PNG screenshots with transparent background.

It handles RBN (see CL-NURBS for its specification) and PTS files. The latter one is of the format:

M N Point1-x Point1-y Point1-z Point2-x Point2-y Point2-z ...

I tried to follow the GNU standards while making this, so it has all the standard command line arguments and also a manual page.

Download the source code for version 0.35 or get the latest with Git:

git clone
Last update: 2009.07.27.


A program for organizing all the videos, CDs / DVDs at home. It has all the important features like entering new records, modifying, deleting, searching, sorting, printing, but nothing more. Should be simple enough to use.

QAnyulógus uses Qt4 for the user interface, so it should work on most platforms. Tested under Linux and Mac OS X.

Download the source code of the stable release, or get the development code with Git:

git clone
Last update: 2009.02.27.


A NURBS library in Common Lisp. It handles both curves and surfaces; it can generate PostScript output for curves and VTK files for surfaces. It also has an own file format (RBN) for storing NURBS (as opposed to mesh) data (see here for its specification).

Features include point / vector operations, curve and surface evaluation, derivation, curvature calculation, algorithms for creating continuity between surfaces and fairing with downhill simplex method, knot removal/reinsertion and fitting.

Download the source code for the stable release or get the development version with Git:

git clone

Note that these packages don't include the fitting library, which is the property of Geomagic, Inc., and because of this, some functions of CL-NURBS cannot be used.

Last update: 2008.02.28.


The program of "first attempts". First attempt at writing a chess program, first attempt at writing a pure C program, first attempt at using the SDL library, and last but not least, first attempt at using Guile. So the interface is written in C / SDL, while the rules are enforced using Scheme.

There is no artificial intelligence yet, only a random player, but it has all the tools to be extended easily. Since all further enhancements will probably be in Scheme, there is no need for recompilation. It even has a hotkey for reloading the AI Scheme file while running.

Download the source code.

Last update: 2007.06.21.

Kanji / Hanzi Cards

Kanji Cards is a simple Tcl/Tk program that helps you memorize kanji. It requires no special font. The package also contains some utilities to convert Shift-JIS files into Kanji lists, and to generate study lists from kanji lists. kanji lists for JLPT4-2 are included as well.

Hanzi Cards is not unlike Kanji Cards, but it works on Chinese (simplified) hanzi, uses external fonts and the list files are in UTF-8 encoding. Its database is very small, but a more complete set is readily available in the CEDICT project.

Download the English version or the Hungarian version of Kanji Cards.

Download Windows binaries of the utilities for the English or the Hungarian version.

Download Hanzi Cards.

Last update: 2007.04.12.

Wubi Practice

The Wubi input method is a quite involved input method for simplified Chinese. While the most widespread pinyin-based approaches are easy to learn, Wubi has the advantage that every character has a (generally) unique, at most 4-digit code, so the user doesn't have to choose the character from a list. There are 4-digit codes for compounds of 2 or more characters, too. The codes are derived in a logical way from basic elements (roots) assigned to the keyboard keys. Wubi may also be better for southern speakers, whose pronounciation differs from the pinyin transcription.

This program has 6 practice modes: roots, 1-, 2-, 3- and 4-key characters and compounds. It measures the speed and accuracy of the learner. I'm not too good at GUI design, so it may have a minimalistic feel about it, but it's useful nonetheless. The program uses SDL and requires no fonts.

Download the source code or the Windows binary.

Last update: 2007.03.31.


My contribution to the Lisp programming contest of the International Lisp Conference 2007. It became 2nd both in speed and in points (in a very close fight with Vladimir Sedach's entry), with additional features like graphical output and head-to-head matches between four different algorithms. Too bad I couldn't attend the conference.

Download the source code or see the htmlized version.

Last update: 2007.03.31.


A two-player version of the board game Pylos. Written in Tcl/Tk, no AI at all.

Download the source code.

Last update: 2007.03.31.


Subtitle timing utility for Linux, written in C++ / Qt3. It can handle text, SubRip and SubStation Alpha files for both input and output, and Ogg files for audio input. It has an easy-to-use interface that enables fast timing. A Tcl/Tk utility is attached for converting MP3 files to Ogg.

SubTimer can also shift the times of a subtitle file, and copy / paste lines with the times changed in a logical way.

Download from the SourceForge page.

Last update: 2007.03.31.

P-chan Window Climber

This Qt3 / X11 window climber has three positions: grabbing to the left or right side of a window and floating in the air. Unfortunately not all windows behave equally well with this, but GNU Emacs is a stable point for little P-chan :)

Download the source code.

Last update: 2007.03.31.

Copyright (C) 2007-2021 Peter Salvi