- build (or find) a generic module that can implement [[hierarchical database]]s on top of BerkeleyDB. It really is a great match. - write a piece of code that tries to generically parse a TGP page. While it's trivial for us to have domain-specific customizations, it may save us lots of time later to make it as generic and all-encompassing of a parser as possible. - start writing the domain-filter-syntax file code - I really think we should keep these as separate flat-files, since it's the real core of our work, and if we can make it easier to re-use by other programs, then all the better - so... we DO need to implement the base64 domain-name-obfuscator (AND... we need a set of utilities to help with this too) - we can start doing some peek-only parsing of TGP and FHG stuff. (particularly to flesh out ideas with the UI.... I'd like to know how widespread the dates I need are) ====[ optional, but might save some time ]==== - is there any other separator we could use? '\\' is difficult to paste on the command-line - write a `dbm/catkey` to just output the contents, rather than provide them for editing (is there a way to auto-detect if it's Storable, or just plaintext?) - write a central routine for creating the result-record from a HTTP::Response object.... there are some bits of data that are key to remember, and some that aren't - write a general-purpose BerkeleyDB::Range module that provides a group of functions for exploring/modifying a prefix/suffix setup. In particular, the constructor should allow specifying what the max and min endpoints are, as well as whether they're "inclusive" or "exclusive" endpoints. http://en.wikipedia.org/wiki/Interval_(mathematics)#Notations_for_intervals ====[ nice-to-have ]==== - consolidate `dbm` into a single tool, with different operations selected by switches