This is a very lightly sanitized dump from my personal journal, with entries that are about obnam or btree development. I've removed some stuff that has nothing to do with software development from some entries, but otherwise it's quite raw.

The intent is partly to document what thought processes have gone into various design decisions, and partly to show what software development can be like.

The entries have been written only for myself, so they may be cryptic for others, but most stuff will be sufficiently clear. I make no excuses for typos, bad language, or other things that should be absent from copy-edited, finished text. This is a dump of my brain, as raw as I can make it.

There's a lot of text. I think too much.

The entries are ordered oldest first, and they start in the middle of Obnam development. Most of my earlier journal entries include everything that happened during a day, and it was too much work to extract only the stuff related to Obnam. The entries published here do start about at the time of a complete rewrite from scratch (the fourth such), so earlier entries are not directly related to the current code base anyway.

(You can also read all entries on one page if you prefer.)

Obnam hacking
Posted Thu Nov 26 22:15:00 2009
Obnam backup plugin
Posted Sat Nov 28 11:58:00 2009
Obnam rewrite4: making backups
Posted Mon Nov 30 14:50:00 2009
Obnam hacking during Diili
Posted Mon Nov 30 20:56:00 2009
obnam hacking before FT
Posted Thu Dec 10 17:51:00 2009
Obnam: backing up other than cwd
Posted Fri Dec 11 15:31:00 2009
Lunch with Richard
Posted Mon Dec 14 16:09:00 2009
Lunch with Richard
Posted Sun Dec 27 17:07:00 2009
Publishing obnam rewrite4 branch
Posted Fri Jan 8 13:22:00 2010
Obnam: black box testing
Posted Mon Jan 11 18:44:00 2010
Obnam: back up any dir not just cwd
Posted Mon Jan 11 19:11:00 2010
Obnam: back up any dir not just cwd (cont'd)
Posted Mon Jan 11 19:59:00 2010
Obnam: back up any dir not just cwd (part 3)
Posted Mon Jan 11 21:08:00 2010
Obnam: more work on VFS abstractions
Posted Tue Jan 12 12:20:00 2010
Obnam: simple black box test of backup+restore
Posted Tue Jan 12 18:56:00 2010
Obnam: pathname-based ids for objects in Store
Posted Tue Jan 12 19:28:00 2010
Obnam: pathname as key: hash collisions
Posted Wed Jan 13 10:53:00 2010
Obnam: pathname as key: hash collisions (cont'd)
Posted Wed Jan 13 11:23:00 2010
Obnam: starting Store API change to use pathnames
Posted Wed Jan 13 14:10:00 2010
Obnam: storing chunks of data
Posted Fri Jan 15 18:05:00 2010
Obnam: chunk groups
Posted Fri Jan 15 19:53:00 2010
Obnam: setting chunks and groups for files
Posted Fri Jan 15 20:11:00 2010
Obnam: removing generations
Posted Fri Jan 15 20:58:00 2010
Obnam: restore and blackboxtest now work
Posted Sun Jan 17 14:38:00 2010
Obnam: data structure discussion with lifeless
Posted Mon Jan 18 13:05:00 2010
Obnam: reuse vfs instance for all roots
Posted Sat Jan 23 06:31:00 2010
Obnam: symlink target
Posted Sat Jan 23 07:11:00 2010
Obnam: reuse chunks
Posted Sat Jan 23 14:46:00 2010
Obnam: setting mtime of restored symlinks
Posted Sat Jan 23 15:37:00 2010
Obnam: re-use existing stuff in dirs
Posted Sat Jan 23 15:51:00 2010
Obnam: restoring hardlinks
Posted Sat Jan 23 16:38:00 2010
Obnam: how many duplicated chunks?
Posted Sun Jan 24 09:12:00 2010
Added --quiet option to obnam
Posted Sat Jan 30 17:43:00 2010
Obnam: progress reporting and terminal width
Posted Tue Feb 2 19:26:00 2010
Obnam: handling files going missing
Posted Tue Feb 2 19:56:00 2010
Obnam: benchmark using seivot
Posted Tue Feb 2 21:41:00 2010
Obnam: restoring individual files
Posted Fri Feb 5 19:07:00 2010
Obnam: default to latest generation
Posted Fri Feb 5 19:32:00 2010
Obnam: implementing verify
Posted Sat Feb 6 13:53:00 2010
Obnam: forget policy implemented
Posted Tue Feb 9 22:16:00 2010
Obnam: forget: timestamps on generations
Posted Wed Feb 10 14:47:00 2010
Obnam: forget: find list of generations
Posted Wed Feb 10 14:48:00 2010
Obnam: dashes in option names
Posted Sun Feb 14 12:00:00 2010
Obnam: speeding up unit tests
Posted Sun Feb 14 12:27:00 2010
Obnam: blackboxtests for forget
Posted Sun Feb 14 17:35:00 2010
Obnam: fsck
Posted Sun Feb 14 18:01:00 2010
Obnam: fsck, part 2
Posted Sun Feb 14 19:40:00 2010
Obnam: acls and xattrs
Posted Sun Feb 14 22:09:00 2010
Obnam: postponing ACL work
Posted Mon Feb 15 14:39:00 2010
Obnam: functional B-trees
Posted Tue Feb 16 19:31:00 2010
Obnam B-trees: starting from scratch
Posted Tue Feb 23 18:25:00 2010
Obnam B-trees: binary tree with data only in leaves
Posted Wed Feb 24 11:53:00 2010
Obnam B-trees: for real now
Posted Wed Feb 24 12:16:00 2010
Obnam B-trees
Posted Sun Mar 7 12:19:00 2010
Obnam B-trees (cont'd)
Posted Sun Mar 7 15:39:00 2010
Got headphones, backup drive
Posted Tue Mar 9 12:11:00 2010
Back to B-trees
Posted Sun Mar 14 10:28:00 2010
B-trees: benchmarking
Posted Sun Mar 14 16:29:00 2010
B-trees: more
Posted Sun Mar 14 16:45:00 2010
Btree: external storage for nodes
Posted Mon Apr 5 16:00:00 2010
Btree hacking
Posted Tue Apr 6 18:58:00 2010
Btree: more of it
Posted Sun Apr 11 08:21:00 2010
BTree: external storage, on disk now
Posted Mon Apr 12 18:35:00 2010
btree: refactoring
Posted Sat Apr 17 08:16:00 2010
Filesystem as B-tree implementation
Posted Tue Apr 27 09:06:00 2010
Btree refcounts and cloning
Posted Sat May 1 13:55:00 2010
Benchmarking B-tree node codec
Posted Sat May 1 20:44:00 2010
B-tree cloning: the Forest
Posted Mon May 3 19:30:00 2010
B-trees: speed-test
Posted Mon May 3 21:35:00 2010
Btree range operations
Posted Fri May 7 19:38:00 2010
Btree NodeStore API change
Posted Fri May 7 20:11:00 2010
Btree in-memory speed test
Posted Fri May 7 20:47:00 2010
Made btree Debian package
Posted Sat May 8 12:01:00 2010
btre example program
Posted Sat May 8 12:06:00 2010
Marry btree and obnam
Posted Sat May 8 12:27:00 2010
Marry btree and obnam
Posted Sat May 8 12:46:00 2010
Marrying obnam and btree
Posted Sun May 9 17:56:00 2010
Profiling btree insert
Posted Fri May 14 19:44:00 2010
Obnam and btree optimizations
Posted Thu May 27 19:02:00 2010
Obnam unit test speed
Posted Sat Jun 5 10:29:00 2010
Obnam and btree optimization
Posted Sat Jun 5 12:28:00 2010
Obnam overnight 10-gig benchmark run
Posted Sun Jun 6 08:34:00 2010
My bsearch versus bisect from Python stdlib
Posted Sun Jun 6 12:31:00 2010
Obnam and btree optimizations
Posted Sun Jun 6 13:41:00 2010
Optimizing obnam and btree
Posted Sat Jun 19 11:17:00 2010
btree: in-place modification of nodes
Posted Mon Jun 21 17:43:00 2010
Btree in-place modification
Posted Thu Jun 24 18:03:00 2010
btree in-place modifications and merging
Posted Sat Jun 26 17:10:00 2010
Released btree 0.10.
Posted Tue Jun 29 16:17:00 2010
Released Obnam 0.10
Posted Tue Jun 29 17:48:00 2010
Overnight obnam test run
Posted Wed Jun 30 08:22:00 2010
btree talk at Wellington PUG
Posted Thu Jul 1 21:41:00 2010
Obnam fast enough for beta
Posted Wed Jul 14 11:25:00 2010
Obnam and non-chunk data size
Posted Thu Jul 29 12:57:00 2010
bdale on backups
Posted Fri Jul 30 14:01:00 2010
Forgetting unused chunks
Posted Sat Sep 25 17:41:00 2010
Re-creating obnam benchmark setup
Posted Mon Nov 15 14:29:00 2010
Pondering chunk groups in Obnam
Posted Mon Nov 22 18:04:00 2010
genbackupdata 1.2 release
Posted Thu Dec 2 19:00:00 2010
Obnam backup tests failed
Posted Sun Dec 5 09:49:00 2010
obnam forget profiling
Posted Sun Dec 5 13:31:00 2010
btree fsck
Posted Tue Dec 7 09:32:00 2010
btree fixes
Posted Tue Dec 7 13:38:00 2010
btree code review
Posted Thu Dec 9 12:24:00 2010
btree performance test
Posted Thu Dec 9 21:06:00 2010
btree or obnam bug
Posted Fri Dec 10 11:41:00 2010
Using obnam for real on havelock
Posted Fri Dec 17 11:11:00 2010
Obnam benchmark run very slow
Posted Fri Dec 17 11:13:00 2010
obnam excessive memory use
Posted Sat Dec 18 13:38:00 2010
obnam test on havelock
Posted Sun Dec 26 19:41:00 2010
obnam test on havelock: bug
Posted Mon Dec 27 17:20:00 2010
btree fails speed-test
Posted Tue Dec 28 08:16:00 2010
obnam backup of home dir worked
Posted Tue Dec 28 14:56:00 2010
Obnam and btree versions 0.14
Posted Wed Dec 29 21:36:00 2010
Getting rid of btree.bsearch
Posted Thu Dec 30 10:17:00 2010
btree 0.15 release
Posted Sun Jan 2 21:48:00 2011
obnam forget on real backups
Posted Mon Jan 3 17:24:00 2011
B-tree and the case of the small leaves
Posted Fri Jan 7 18:59:00 2011
btree 0.16 on-disk speed-test
Posted Fri Jan 7 22:46:00 2011
btree 0.16.1
Posted Sun Jan 9 12:00:00 2011