note 1.3.16 by Thomas Linden, 20/06/2013 ======================================= Introduction ============ This is a small console program written in perl, which allows you to manage notes similar to programs like "knotes" from commandline. There are currently three different database backends, which you can use with note: o NOTEDB::binary - this is the default backend and uses a binary file to store your notes. o NOTEDB::mysql - this backend uses a mysql database to store your notes. You can switch easily to another DBMS since this module uses the Perl standard module "DBI" for database- access. See below for more info on this topic! o NOTEDB::dbm - this module uses two DBM files for data storage and requires the module DB_FILE, which is part of the perl standard distribution. See below for more details about the DBM module. o NOTEDB::general - uses the module Config::General for storage, which makes the data file portable, since it is a plain ascii file (binary content will be base64 encoded). o NOTEDB::text - uses the Storable module for data storage (a serializer). Storable is included with perl, and since it's written in C, it's very fast. But the resulting data files are not that portable as the once of NOTEDB::general are. Where to get? ============= By now you can download it at http://www.daemon.de/NOTE. If you are using debian, you can apt-get it. If you are using gentoo, you can emerge it. You may also try your nearest tucows or freshmeat mirror. Features ======== o Several different database backends, mysql(DBI), dbm, binary(bin file), general and text (text files). o Commandline interface using the standard perl module Getopt::Long, which allows you to use short or long command-line options. o Interactive interface(pure ascii), the following functions are available in interactive mode: list, display, topic, delete, edit, help. o Highly confiurable using a perlish configfile ~/.noterc. although it is configurable it is not required, note can run without a configfile using useful default presets. o Colourized output is supported using ASCII Escape-Sequences. o The user can customize the color for each item. o Data can be stored in various different database backends, since all database access is excluded from the program itself in perl modules. o Notes can be deleted, edited and you can search trough your notes. o Notes can be categorized. Each category(topic) can contain multiple notes and even more sup-topics. There is no limitation about sub topics. o You can view all notes in a list and it is possible only to view notes under a certain topic. o There is a tree-view, which allows you to get an overview of your topic-hierarchy. o Notes can be encrypted using DES or IDEA algorythms and Crypt::CBC. o You can dump the contents of your note database into a plain text file, which can later be imported. Imports can be appended or it can overwrite an existing database (-o). o Note has scripting capabilities, you can create a new note by piping another commands output to note, you can also import a notedump from stdin as well es duming to stdout instead a file. Additional, there is an option --raw available, which prints everything out completely without formatting. o for better performance, note can cache the database for listings or searching. o It can be installed without root-privileges. o if Term::ReadLine (and Term::ReadLine::Gnu) is installed, history and auto-completion are supported in interactive mode. o Last, a while ago a user stated: "... it simply does, what it says ..." Requirements ============ You need the following things: o perl installed (5.004x) o The module IO::Seekable and Fcntl, which should be already installed with your perl distributuion if you want to use the binary database backend. o DBI module and DBI::mysql if you want to use the mysql database backend. o The module DB_FILE if you want to use the DBM module. o Getopt::Long (part of perl std ditribution) o Term::ReadLine and optionally Term::ReadLine::Gnu if you want to use the auto-completion and history functionality. o Config::General if you want to use the NOTEDB::general backend. Installation ============ Unpack the tar-ball and issue the following command: $ perl Makefile.PL This creates the Makefile neccessary for installing. You may add some additional variables to the commandline, the most important one is PREFIX. Then enter the following command to prepare the installation process: $ make After that, you are ready to install. Become root and issue: # make install The installation process installs all modules for every available data backends. The default note configuration does not require additional perl modules. If you want to use the mysql backend refer to the installation instructions for the mysql database installation in mysql/README. If you want to use encryption support, you will need at least Crypt:CBC and Crypt::Blowfish (or Crypt::DES or whatever). Configuration ============= This version of note doesn't neccessarily need a configuration file. But you can have one and change some default values. Take a look to the file config/noterc provided with this tarball. There are detailed instructions about every available parameter. Simply copy this file into your home-directory and name it .noterc If you decide not to use the default database backend (a binary file), you will *need* a configuration! Usage ===== Refer to the note(1) manpage for usage instructions. Comments ======== You can send any comments to Thomas Linden . If you find a bug or if you have a suggestion for improvement of the script feel free to send me a patch ;-) License ======= This program comes with absolutely NO WARRANTY. It is distributed under the terms of the GNU General Public License. Use it at your own risk :-) You can read the complete GPL at: http://www.gnu.org/copyleft/gpl.html Recources ========= The command-line options and all commands of the interactive mode are described in the supplied note(1) manpage. You may also refer to the note website http://www.daemon.de/note/. Author and Copyright ==================== The author is Thomas Linden. note is Copyright of Thomas Linden. Contributors / Credits ====================== Shouts to all those guys who helped me to enhance note: THANKS A LOT! Jens Heunemann - sub tree. Peter Palmreuther - various additions. And many other people who sent bug reports, feature requests. If you feel that I forgot your name in this list, then please send me an email and I'll add you. Last changed ============ 20/06/2013