Shlomi Fish’s Open Source Projects

My home pages on Various Software Development Hubs (Forges)

Open Source Projects I initiated. Mostly small to medium scale.

My CPAN Modules

I wrote several modules for CPAN - the Comprehensive Perl Archive Network. Also see my Perl Résumé at

My Bitbucket Page

Bitbucket is a software-development and code sharing site, similar in spirit and concept to GitHub, but with some advantages. I host most of my original projects there.

My GitHub Page

GitHub is also a software-development site, and I use it for hosting some git repositories, and to collaborate with some other users of it.

SourceForge Page

One of the original open source software development sites, has lost some of its “hipness”, but is still popular. I host some projects there that I inherited from other people, and also have a lot of Quality Assurance work there.

Google Code Page

My activity at the free-of-charge code hosting facility from Google.

Bits and Bobs

A random collection of small programs I created, and are made available to the public.

Freecell Solver

A program and a library written in ANSI C that automatically solves games of Freecell and similar Solitaire variants.

Solvers and Generators for Japanese Puzzle Games

Japanese puzzle games such as Sudoku and Kakuro have gained popularity recently, and I've became a fan of many variants as well. I've started working on some solvers and generators for such games, and some of them are in a usable condition.

“Black Hole” Solitaire Solver

Solvers for Black Hole Solitaire, and All in a Row Solitaire, which are variants of Patience.


An automatic solver for Logic Mazes written in Perl.

KSokoban Maintenance Branch

Porting KSokoban, the port of Sokoban to the KDE project to KDE 4 and KDE Frameworks 5.

Web-Related and Text Authoring/Processing

Website META Language

An offline preprocessor for HTML and XHTML sites, originated by Ralf S. Engelschall and later maintained by Denis Barbier. I am the current maintainer.

Latemp - a Content Management System for Static HTML Page

Latemp is an offline content management system for generating sophisticated static HTML (or semi-static HTML) sites. It is based on the excellent Website Meta Language by Ralf S. Engelschall and Denis Barbier. This site and others are generated using Latemp.


Short for Quick-and-Dirty Presentations, this is a tool written in Perl for preparing HTML presentations. Based on Website META Language.

The XML-Grammar Meta-Project

A project that maintains several XML grammars for various tasks, including translators to HTML or other formats, plaintext formats that translate into them, etc.


A collection of web-related Perl CPAN modules.


A tool to convert DocBook/XML to its final formats. Was written as a saner alternative to xmlto.

System Tools


Dumps a directory structure (without the file contents themselves) into a serialised file format, to allow for restoring and comparing.


A directory traverser for Perl, that provides an object-oriented interface, that can be instantiated, and that can be suspended and resumed. (Originally by Nanardon.)


A CPAN module to convert between the various popular ways to notate Perl modules and distributions. Allows all of them to be used in input to command-line tools.

Linux Kernel Configuration Search Enhancement

A patch that enhances the Linux kernel configuration search by adding keywords search and regular expression search.


Delay for a certain number of seconds while displaying the amount of remaining time. Similar to the UNIX sleep command, only less frustrating for interactive use.


sky is a wrapper around uploaders such as rsync, which uploads a file to a remote host with a web service, and gives you a URL that will allow other people to download it immediately.

Maniac Downloader

A download accelerator with a key improvement.

Testing and QA

Convert from

A script to convert the old Perl test programs to the more modern Test::More.

libtap Maintenance

libtap is a C library for writing automated tests that output the Test Anything Protocol (TAP), which allows for heterogeneous test suites. I adopted libtap and maintain it.

IP-Noise Simulator

A simulator for IP-Noise for Linux systems based on the Linux Kernel version 2.4.x or above.

MikMod - a module files’ player

An open-source player for music module files, written in portable C. Adopted from a series of maintainers.

MikMod for Java

A port of the well-known MOD player MikMod (that was originally written in ANSI C) to Java.

A First-Come First-Served Readers/Writers Lock

An implementation of it for POSIX Threads, which can also be used as a reference implementation.

Activity on Problem Sets and Competitive Programming Sites

Solutions to some online challenge / riddles sites.

Personal Configuration Files

These are configuration files of various programs I’m using on my home machines.

Projects that are no longer of interest

Workaround to Get Working with Firefox

This is a local proxy, that allows one to operate the Israeli job-board using Firefox, and other Mozilla-based browsers. No longer of interest because now works fine in Firefox and other standards-compliant browsers without it.

Gradient-Fu Patch for the GIMP

A patch for Gimp 1.2.x that exposes gradient editing to the procedural database and to scripting interfaces. A newer version of this patch has been integrated into GIMP 2.2.x and above and is built-in there.