Jupyter notebooks as a todo list manager

Keywords: jupyter notebook, archive notebook, tag, script, item, move, lot, clutter, text, cell, list, easy, blog, email. Powered by TextRank.

I have been working on moving all of my digital notes and blog to Jupyter and I'm really liking the flexible environment it is providing for me. I have completed the move of all my writings on my blog to Jupyter and wrote a publishing scripting (again in a Jupyter notebook) that even has a client side search engine.

The next thing to do (pun intended) was to move my to-do lists to Jupyter. For this I thought that I would have a single notebook (called very imaginatively todo.ipynb ) and that every cell in the note book would represent something that I wanted to do. This is OK until you want to check off an item. I thought I'd just delete the completed items but I don't like throwing away things I spent time writing so I wanted a way to mark them as complete, then eventually move to an archive so they don't clutter the main notebook. The best way I could think of this was to add todo tag to the item. If the items is pending it has the todo tag if it's not then it's done. I might actually convert this to be the other way around where if the item does not have a tag it's a todo and then add a done tag when it's done. The reason for this is that it's easy to forget to add the tag when you add a new item.

This tagging method makes it kind of OK to work with items but there is still a lot of clutter because completed items are intertwined with pending items. I was using the down and up arrow to move the cells but that's a lot of clicking when you have a lot of to-do items and there is no "send to bottom" button. So I wrote a small script that does this for me. It traverses the notebook and moves cells with no todo tag to the end of the list, adds a done tag (which is used by the archiving script) and also adds a green text to indicate that it's done. Guess what that text reads? Yes, "done".

The script can the triggered from a python cell in the to-do notebook which is convenient but requires a reload because it modifies the notebook.

I also have a script that I added as a scheduled job that moves the completed items in the to-do notebook to an archive notebook once a week to reduce clutter. The archive notebooks are per month.

It's not always easy to add an item to your list when you are not in front of a computer or not at home (I don't open my homelab to the outside world) so I added another script that monitors an email account and creates to-do items from the email.


Similar posts

Powered by TF-IDF/Cosine similarity

First published on 2021-02-20

Generated on May 29, 2024, 10:02 PM


Mobile optimized version. Desktop version.