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 perlresume.org.
My GitHub Page
GitHub is a software-development and code sharing site, and I use it for hosting some git repositories, and to collaborate with some other users of it.
My Bitbucket Page
Bitbucket is a software-development and code sharing site, similar in spirit and concept to GitHub, but with some advantages.
PyPI Page
Page at the Python Package Index.
SourceForge Page
One of the original open source software development sites, SourceForge.net 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.
Games Related
Freecell Solver
A program and a library written in C, that automatically solves games of Freecell and similar Solitaire variants.
PySol Fan Club Edition
An open source and feature-rich collection of Solitaire games.
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 Golf, Black Hole Solitaire, and All in a Row Solitaire, which are variants of Patience.
LM-Solve
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 old offline preprocessor for HTML and XHTML sites, originated by Ralf S. Engelschall and later maintained by Denis Barbier. I currently maintain it, but cannot recommend it due to it being slow and somewhat quirky.
Latemp - a static site generator
Latemp is a static site generator for generating sophisticated static HTML (or semi-static HTML) sites. It used to be based on Website Meta Language by Ralf S. Engelschall and Denis Barbier. This site and some others are generated using Latemp.
Quad-Pres
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.
Web-CPAN
A collection of web-related Perl CPAN modules.
docmake
A perl 5 command-line tool to convert DocBook/XML to its resultant formats. Was written as a saner alternative to xmlto
, which is written in Unix shell and had a maintenance lull at the time.
fortune-mod: display random quotations
One of the versions of the UNIX “fortune” program that displays a random quotation from a database of quotations. It was adapted to run on Linux and other systems and is now co-maintained by me.
System Tools
File-Dir-Dumper
Dumps a directory structure (without the file contents themselves) into a serialised file format, to allow for restoring and comparing.
File-Find-Object
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.)
Module-Format
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.
countdown
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.
Notifier-Apps
An HTTP / JSON - based client/server based programs to notify on events (such as a finished build or an appointment).
sky
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.
Docker-CLI-Wrapper
TODO
pydistman
“Maximum Overkill Don’t-Repeat-Yourself” PyPI distribution manager, inspired by CPAN’s Dist-Zilla.
Testing and QA
Convert from Test.pm
A script to convert the old Perl Test.pm-based 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 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 yjobs.co.il Working with Firefox
This is a local proxy, that allows one to operate the yjobs.co.il Israeli job-board using Firefox, and other Mozilla-based browsers. No longer of interest because yjobs.co.il 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 incorporated into GIMP 2.2.x and above and its functionality is built-in there.