ashaw-notes was created to allow for quick and easy note taking and retrieval of information and personal context. With a keen focus on speed of entry and filtering, ashaw-notes allows quick overviews of the previous day, month, and year for time tracking or simple daily standup updates.
Rewritten completely in python 3 (originally a php application), this application supports:
- Multiple backends (flat text file or Redis datastore)
- Note CRUD
- Note Searching/Filtering
- Backend data porting (for trying out various backends)
- Extensibility - Adding in multiple connectors
Clone or download the ashaw-notes github project.
You can easily downlaod the repository as a zip file here. Once downloaded, extract it to a local directory.
Make sure you have Python 3 installed on your system, if you don't download the latest version here.
Install the requirements
$ pip3 install .
Note to Windows users: quicknote.py uses readline to allow for entry suggestions, it is not possible to install this from the requirements file but instead must be compiled on your local machine.
Copy notes.config to
notes-local.config and begin editing, decide if you want to use a redis backend or a local file.
There are benefits to both.
- global data storage and retrieval
- an ability to share notes on any network
- future options to create and retrieve notes on mobile devices
- redundancy (when configured with Redis Sentinel)
- atomic updates to data changes (transactions)
- potentially faster filtering on very large datasets
Local files offers:
- secure note storage
- less latency on data retrieval
- offline note taking
- automatic backups on destructive updates
For running ashaw-notes on Redis, you can either run your own Redis container/service or use a free Redislabs account as notes are very small in size. Notes taken from 4 years of use requires about 12MB of memory. The system attempts to use a little memory as possible, resulting in many sets being ziplists.
After configuring the application execute
You will be presented with an input box to add in your first note.
After pressing "Enter" your note will be saved and the command will terminate.
For speedy note inputs it is recommended that quicknote be bound to a shortcut key. A common key combination is "Ctrl + Shift + ~"
If you're wanting to sample multiple backends (or if you have a local notes file you'd like to import into Redis) you can use
Simply execute the script with the modules you want to use as parameters. For example,
$ ashaw-notes migrate local_notes redis_notes
will migrate the notes in your local system file to redis while
$ ashaw-notes migrate redis_notes local_notes
will migrate all the notes stored on an external redis server to your local machine.
Running the notes GUI client
ashaw notes is a two-staged application.
ashaw-notes quicknote allows for data entry and the QT GUI lets the user view and filter notes stored.
To run the GUI client, you must first have QT installed on your local system. Once the prerequisites are met you can run the GUI by executing
A UI will popup with a basic notes interface and a filter box at the bottom of the window. Typing in this filter box will allow you to quickly search your notes.
For development, you can run
pip install in so-called editable mode using the
-e flag (https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs):
pip install -e .