"Freecell Solver" Book Mailing List

Posted 7 Jul 2002 at 14:37 UTC by shlomif Share This

I am writing a book about Freecell Solver titled "Freecell Solver - Evolution of a C program" which will tell the story of many important insights I learned by programming it. If you wish to subscribe to a special mailing list in which I will post intermediate issues and updates let me know by sending me an E-mail.

A lecture about the subject (which covers a very small and reduced subset of what I plan to have in the book) was already prepared and given to the Haifa Linux Club.

So far I have already written an abstract for the book, which I have some ideas to revise.

book on a C program?, posted 9 Jul 2002 at 17:56 UTC by atai » (Journeyer)

ESR has not written a book on fetchmail, Linus has not written a book on the kernel, although RMS has written books on gcc and Emacs...

ideology, posted 9 Jul 2002 at 21:05 UTC by Malx » (Journeyer)

IMHO, all you could write is description of some ideology of programming.

For example OOP ideology or structural, modular or monolithic, none-standart API or some CORBA obj/Inet tcp server/pipe tool etc.

And you could use any of languages to illustrate that ideology. "C" is the best one, becouse it will not push you to some certain ideology. For example you could write OO program in "C" (see Xlib).

So? What idelogy will you describe?

btw. you can't bee [good] programmer without knowlage of at least 2 of ideologies of each kind. If you do - then it is not really matter which language you are using.

Who's publishing the book?, posted 9 Jul 2002 at 22:06 UTC by tapir » (Journeyer)

This sounds a book about the latest enterprise technology, it should sell 50,000 copies!

No, really, if it's only online it might be stretching it a bit to call it a book. I'm afraid that a lot of people would also not take it so seriously because it's about a "toy" program, rather than about a program which does something useful. (If you looked at Advogato or Freshmeat you'd get the idea that the problems that dog the software industry the most are writing programs for managing MP3 collections, Window Managers and rehashes of 8-bit computer games.) On the other hand, the programmer who likes writing in natural languages is a rare creature, and clear documentation (any documentation) is the rarest commodity in most shops. So I think a set of online articles about the decisions you made writing a program could definitely be of interest to some people. I just don't think it would make it in the dead tree world.

(Which sucks anyway. I just got a royalty check in the mail for about -$50.00 the other day.)

May be worth a try, posted 10 Jul 2002 at 06:46 UTC by tk » (Observer)

Linus hasn't written a book on his kernel yet... but Timothy Budd has written a book on Little Smalltalk (and it's reportedly selling, even though the program isn't very useful (!)), and Pat Villani has written a book on the FreeDOS kernel.

I gather that the FreeCell Solver project implements an AI algorithm. Most AI textbooks only describe their algorithms in general terms, so it may be good to have a book which goes deeper into implementation details. Also, a description of your experiences with the GNU auto* suite may be useful to some people.

How about a review paper..., posted 12 Jul 2002 at 13:38 UTC by tapir » (Journeyer)

about the scientific results that can be derived from FreeCell Solver. It's been said that Stanislaw Ulam invented the Monte Carlo simulation technique when he was sick in bed and playing solitaire. Like anyone with a mathematical bent who gets addicted to Solitaire, he started to wonder what the odds of winning were. His answer was to program a computer to play thousands of hands.

What are the odds of winning for different games with different strategies? How do rule changes affect this? Are there heuristics (like card counting in Blackjack) that can help a player estimate the odds of winning at a particular point in the game? Can FreeCell Solver tell humans how to play better Solitaire?

If you're going to focus on the programming, frame it as a description of AI programming techniques -- which will make you sound like a genius rather than someone with too much time on his hands.

books on programs, posted 13 Jul 2002 at 20:11 UTC by demoncrat » (Journeyer)

While I'm not the least bit interested in freecell, the response this has been getting surprises me -- several responses implying that writing about a particular program is somehow not quite respectable. There aren't many books on the guts of programs or libraries, and I wish there were more.

atai: ESR is writing a book using fetchmail as a case study right now, actually. Some other books of this sort that repay study, from my book list:

Knuth also has a bunch of programs as books that I haven't read but probably should.

tapir, the niche for AI programming techniques is already well-filled by Norvig's Paradigms of AI Programming -- which has 1000 pages of some of the most exemplary code I've seen anywhere.

shlomif, good luck on your project. I just glanced at your code, and have this advice: if the source code is going into a book, it needs to be factored into smaller functions; a function that won't fit onto two facing pages has no place in a book. (I think it probably has no place in a program in general, but in book form this is especially important.)

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page