Thu Jan 30 10:54:01 PST 1997
	Just realized my scoring function is clueless about life and death,
	so many of the new games will be scored incorrectly.  It's still adding
	all these 9x9's.  I'm going to go ahead and try them, see how it goes,
	despite the incorrect scoring.  TW and TB would be a help.

Thu Jan 30 09:57:09 PST 1997
	Dug up still more games, still focusing on 9x9's.  Using 230 9x9's now.
	Hopefully some are well played. :)

Wed Jan 29 21:32:46 PST 1997
	Dug up more 9x9's from the NNGS archive.  13's and 19's too, but I haven't
	really been using those.

Wed Jan 29 21:22:11 PST 1997
	Changed "make it a pass if <0" to "make it a pass if <=1e-10".  This
	fixes a bug where goo tries to play overtop of a placed stone.

Wed Jan 29 16:41:12 PST 1997
	Tweaked a sanity check to stop checking for the wrong thing.  :)

Wed Jan 29 13:59:58 PST 1997
	Added "make dep" rule.

Wed Jan 29 12:14:12 PST 1997
	Initial conversion to c++ (g++).  I haven't changed to using classes yet,
	but prototypes are updated and basic compilation errors are removed.
	Found a type-related nasty bug with base_score, during the conversion.
	It plays better now.  :)

Tue Jan 28 06:57:15 PST 1997
	Let P be the original slice and Pa be the slice after the selected move
	is made.  Changed subpick to pick the best score(Pa)-score(P), instead
	of the best score(Pa).  This is very "try it and see if it helps".
	Side effect: Pa won't be picked unless P exists in the database.


Sat Jan 25 10:01:02 PST 1997
	Fixed a subtle bug in save(); the winner variable was getting changed
	too much.  Made subscores my_wins/your_wins*side*side*side, so that
	a reasonably good 9x9 can outweigh a good-looking 8x8.

Fri Jan 24 18:29:29 PST 1997
	Found a serious omission in move.c that had only part of the board
	under consideration.  The right and bottom edges were probably
	invisible.

Fri Jan 24 18:18:58 PST 1997
	Began looking into how to restrict moves to being inside the perimeter of
	a box.  Not just in box, but leaving a ring of unused positions around
	its edge.

Fri Jan 24 16:38:40 PST 1997
	Added line_graphics.c, to try debugging with checkergcc.  checkergcc
	doesn't look ready for prime time.

Fri Jan 24 09:41:33 PST 1997
	Modified random mode to avoid picking illegal moves (instead of letter
	a top layer throw them out), and to pass when needed.  Fixed a bug in
	is_illegal_move, using an uninitialized input.

Fri Jan 24 08:51:48 PST 1997
	Made two consecutive passes indicate end of game.  Moved pass handling
	to get passes recorded in sgf output.

Fri Jan 24 08:12:13 PST 1997
	Fixed that goo-add bug.  Can now goo-add sgf files created by goo.

Fri Jan 24 08:10:24 PST 1997
	Fixed that goo-add bug.  Found bug in goo-add's ko check

Fri Jan 24 07:52:41 PST 1997
	Added simple sgf output to goo.c, on -o filename.
	Found a bug in goo-add; off-board reference if no TW or TB in sgf.

Fri Jan 24 07:28:23 PST 1997
	It plays, tho not amazingly well.  It plays better against me, than
	it does against random moves, but it lost in both cases.

Thu Jan 23 22:24:40 PST 1997
	Switched to a different leak-detector.  It showed that boards were
	being leaked.  Set a breakpoint in new_board and did tracebacks, until
	the leak was pinpointed in read_slice().

Thu Jan 23 21:04:11 PST 1997
	Brought in some leak-detection software.

Thu Jan 23 18:53:39 PST 1997
	It's still growing, but not as fast.

Thu Jan 23 18:51:43 PST 1997
	Found another memory leak, and eliminated it.  This one was associated
	with an "unstructured" (maybe in truth!) return statement.

Thu Jan 23 18:45:20 PST 1997
	The VM size is still growing fast.  Still can't finish a 9x9.

Thu Jan 23 18:43:04 PST 1997
	Found a leak and corrected it.
	goo seems to play vaguely like ManyFaces.  That's not surprising, since
	I fed it mostly games I played (and lost) against ManyFaces.  :)
	It's not playing real well.  I've fed it four 9x9's.  It does know
	to grab a side tho.

Thu Jan 23 18:40:31 PST 1997
	It also has a fast memory leak.  Each goo turn the process SIZE goes up
	quite a bit.  My 32M machine runs out of memory before finishing a 9x9.

Thu Jan 23 18:30:02 PST 1997
	It plays.  Not phenomenally, but then I was playing it after having
	only fed it two games of relevant size.  I'm afraid it's a bit slow
	on a 9x9; I hate to imagine what it'll be like on a 19x19.  A little
	surprisingly, playing takes longer than storing.

Thu Jan 23 18:12:49 PST 1997
	Added in the last initial pieces of subpick().

Thu Jan 23 15:46:45 PST 1997
	Added read_slice() to database.c.  Expanded subpick to use it.
	Made init_database() private, added init_database_read() and
	init_database_read_write() - to avoid including fcntl elsewhere.
	Changed accordingly, and added call to init_database_read and
	close_database in goo.c.

Thu Jan 23 14:29:58 PST 1997
	Added is_within_slice(), and loops around it in subpick().

Thu Jan 23 13:40:56 PST 1997
	Added code to pick_move, to pick all legal moves.  Based on
	is_illegal_move().

Thu Jan 23 13:03:41 PST 1997
	Changed around goo.c to use an is_illegal_move function afterall.
	This cleans up main(), and the function should be useful in pick_move().
	Accidentally played against "goo" instead of "random" when testing, and
	found that the computer happens to pass every turn.  :)

Thu Jan 23 09:57:39 PST 1997
	Moved some move-related functions out of top.c (which is still large)
	into move.c.  Added board modification in response to a sample move
	in move.c.

Thu Jan 23 09:40:35 PST 1997
	Eliminated compilation errors in pick_move and subpick.  Expanded a
	couple of "do this here" comments into code.

Wed Jan 22 09:11:34 PST 1997
	Erased old sketchy move.c.  Pseudo-coded initial pick_move and subpick.
	Began moving pseudocode toward real code.

Tue Jan 21 18:49:18 PST 1997
	Modified to place the cursor where the last stone was left, when
	starting a human's move.  This is probably a good way of showing
	where the last move was made.  A pass moves the cursor to the center
	of the screen.

Tue Jan 21 18:28:35 PST 1997
	Added ko check in goo.c.  That's the AGA ko rule, BTW.

Tue Jan 21 16:12:21 PST 1997
	Changed goo-add to be non-interactive.  It still displays stuff.
	Changed goodata to goo-data.
	Added a "-br" option for random, poor moves; it was a small landmark, and
	could be helpful with skill levels.
	Eliminated a very silly array overrun in goo.c.

Tue Jan 21 15:30:49 PST 1997
	added an "add" rule to src/Makefile, to automatically add a small set
	of files into goodata-*-*.  Just removed e-mail headers for the time
	being - sgf.c doesn't like them.

Tue Jan 21 15:01:57 PST 1997
	Added code to keep track of black and white wins separately.  Also code
	to halve both counts, if either number exceeds a threshold.  Using
	native byte order :-S

Tue Jan 21 12:34:21 PST 1997
	Bailed on avl routines, moved to berkeley db's btrees.  Wrote code to
	tuck very simple stuff in for each useful subboard of a played game.
	Ok, so db's bigger than goo.  :)

Tue Jan 21 07:30:49 PST 1997
	Dug up some avl routines, reorganized into two directories with a top-level
	Makefile.

Mon Jan 20 13:01:00 PST 1997
	Added canon.c.  Added code to database.c to use new canon() function.

Mon Jan 20 12:15:02 PST 1997
	Added slice.c.  Just takes a slice of a board.  Modified board.c to have
	functions with upper left at 0,0, and also at -1,-1 (as previous).
	Functions with upper left at -1,-1 disallow access to EDGE pieces.
	Functions with upper left at 0,0 allow access to EDGE pieces.
	Expanded database.c slightly.

Mon Jan 20 11:45:01 PST 1997
	Added truly dinky start on database.[ch].  Made goo-add.c iterate over
	all saved boards, calling database.c's do-nothing save() function on
	each.

Mon Jan 20 11:36:20 PST 1997
	Added record_num_boards().

Mon Jan 20 11:32:43 PST 1997
	Added ko check in goo-add (but not goo), and added error(msg) in
		graphics.c.

Sun Jan 19 18:35:12 PST 1997
	Added sgf_rewind, cmp_board and record.c for keeping a game history.
	Quite untested, but they compile strictly.

Fri Jan 17 17:09:26 PST 1997
	Changed board datastructure to include a surrounding set of "EDGE"
	pieces.  Added EDGE to stone.h of course.  This went better than I'd
	hoped.  ADT's are great.

Fri Jan 17 16:46:49 PST 1997
	My computer was broken.  :)
	fixed black/white bug in goo-add.c.
	Added backup script.

Wed Jan  8 09:27:18 PST 1997
	Renamed "territory" to goo-add.  Added making of moves from sgf file,
		with unit elimination as needed.
	Put back the old "count" function that had seemed useless shortly after
		I wrote it; it happened to be exactly what's needed to finish the
		scoring of an SGF file.
	Added a simple tally of who won.
	This flew together.  Now on to creating database entries from that, and
		possibly adding a "-q" option to eliminate all the flashy graphics
		and required keystrokes, for batch updates.

Sat Jan  4 08:35:04 PST 1997
	Initial shot at fixing sgf_read_position.  It seems to work fine.
	The SGF stuff doesn't do handicaps tho - never did.  It probably should.
	It's time for a simplified scoring function based on TW and TB, and
		then on to the database.

Sat Jan  4 08:25:18 PST 1997
	It turns out that IGS adds TW and TB items to SGF files, to indicate
		territory at the end of the game.  This makes scoring an SGF game
		very easy.  I may not need a scoring function after all.
	The new territory.c shows these board regions graphically.
	modified sgf_read_next to return variable,value pairs.  Broke the
		old sgf_read_next, with intention to make it sgf_read_position, which
		sits overtop the new sgf_read_next.  So goo's busted for sgf, right now.
	Various other smaller modifications.

Sat Jan  4 07:01:25 PST 1997
	Added means for passing, from the keyboard.  The rest was already there.
	Still no check for two passes in a row.

Fri Jan  3 08:35:35 PST 1997
	Sprawled legal_move() across main(), in order to add better checking.  :-S
	It does removals, prior to the suicide check now.  :)  Still no ko check.

Thu Jan  2 11:35:10 PST 1997
	Added up_stone function, toward capitalizing last move...

Thu Jan  2 11:08:52 PST 1997
	Added free_pc function, to remove malloc'd memory.

Thu Jan  2 11:01:43 PST 1997
	Fixed a bug in add_position_to_pc: core dump after more than 10 positions
		go into a pc

Thu Jan  2 10:39:00 PST 1997
	made legal_move non-trivial - it doesn't say absolutely everything's legal
		now.  It still skips ko.  It recognizes suicide, based on count_liberties.
		It overdoes suicide recognition - it doesn't see that causing a removal
		eliminates the suicide condition.  Sadly, it'll probably have to be
		strewn across main().

Thu Jan  2 10:07:54 PST 1997
	Finally wrapped up bugs in need_removal and count_liberties.
	Fixed up screen repaint after removal.
	Shifted to using an array of 4 vectors, instead of generating coordinates
		with for's, and throwing out uninteresting pairs with an if

Wed Jan  1 13:34:44 PST 1997
	Added initial "need_removal" function.
	Added "on_board" function to see if a position is on the board or out of
		bounds
	Changed board_stone and update_board to do sanity check based on on_board

Tue Dec 31 19:24:25 PST 1996
	Added a "close" scoring function.  Enough for some initial results, anyway.

Tue Dec 31 17:53:04 PST 1996
	Got bored with the project for a while.
	Came back.
	Reorganized some files a bit, started some top-down design, completing the
		onion.  :)

Mon Dec 23 15:58:24 PST 1996
	Implemented a "position collection" ADT.  Junked the "position list (pl)"
		notion.

Mon Dec 23 14:51:19 PST 1996
	Probable next functions to implement:
		zero_liberty_units()
		clear_pl()

Fri Dec 20 09:31:22 PST 1996
	Added getopt parsing for SGF, black spec and white spec
	Eliminated bug where "q" from user interface caused core dump; sentinel
		value was being used as real data

Fri Dec 20 08:33:19 PST 1996
	Lots of go playing.  Blowing off the gnugo interface, at least for now.
	Evaluated go-file formats.  Evaluated conversion tools and consistency
		checkers.  Tracked down some SGF archives.
	Added simple SGF parsing, tested with a couple of SGF files from the
		archives.

Tue Dec 17 16:33:44 PST 1996
	Tracked down a bug with the random number generator that was causing
		segfaults: sometimes the numbers were negative.  Most of the time went
		to downloading ddd over a 14.4Kbps modem.  Mucked around with
		nicer constants for the generator.
	Added a function to determine if there are no positions left.
	Added a function to count number of black & white pieces, added code
		to announce winner (or tie, if nonstandard board size is used)
	Started on an interface to gnugo, largely borrowed/stolen from xgoban

Tue Dec 17 11:22:36 PST 1996
	Technically I started yesterday, tho it was pretty "hello world'ish" when
		I left off.
	The user interface appears usable now.  Joy.
	It Does have a blinking cursor (not that usual one)
	It Doesn't highlight the last move made, in any way.