The C Program ran quickly enough for most boards I tried it with. I generated a 1000 random boards, and invoked it upon them one by one. Most of them ran fine, but for some boards it got stuck thinking how to solve them.
Being happy from its relative success, I converted the code to pure ANSI C (it has been C-like C++ when I started writing it), wrote a README file and prepared a package. I named the program "Freecell Solver", placed it on a page of its own on my web-site, and posted an announcement for it on Freshmeat.
That was the humble beginning of Freecell Solver: humble because since then, it has grown ten-folds in speed, feature-set and code size. But every journey of a thousand miles begins with one small step…