"Freecell Solver" Book Mailing List
Posted 7 Jul 2002 at 14:37 UTC by shlomif
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.
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 »
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.
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 »
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.
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.
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.)