“Building Personal Search Infrastructure for Your Knowledge and Code: Overview of Search Tools for Desktop and Mobile; Using Emacs and Ripgrep As Desktop Search Engine”, 2019-11-01 (; backlinks; similar):
Table of Contents
- 1. Why search?
- 2. What do I search?
- 3. Searching in personal information
- 4. Recoll
- 5. Searching on Android
- 6. Web search
- 7. Searching in code
- 8. Appendix: searching away from computer
- 9. Appendix: Lightning fast Emacs
- 10. Appending: general Emacs tips
- 11. Future and my holy grail of search
- 12. Summary
…These days, if you have decent connection, you are seconds away from finding almost any public knowledge in the internet. However, there is another aspect of information: personal and specific to your needs, work and hobbies. It’s your todo list, your private notes, books you are reading. Of course, it’s not that well integrated with the outside world, hence the tooling and experience of interacting with it is very different.
Some examples:
To find something from my Messenger history with a friend, I need to be online, open Facebook, navigate to search and use the interface Facebook’s employees thought convenient (spoiler: it sucks). It’s my information, something that came out from my brain. Why can’t I have it available anywhere, anytime, presented the way I prefer?
To find something in my Kobo ebook, I need to reach my device physically and type the query using the virtual keyboard (yep, e-ink lag!). Not a very pleasant experience. It’s something I own and have read. Why does it have to be so hard?
Such things are pretty frustrating to me, so I’ve been working on making them easier. Search has to be incremental, fast and as convenient to use as possible. I’ll be sharing some of workflows, tricks and thoughts in this post.
The post is geared towards using Emacs and Org-mode, but hopefully you’ll find some useful tricks for your current tools and workflow even if you don’t. There is (almost) nothing inherently special about Emacs, I’m sure you can achieve similar workflows in other modern text editors given they are flexible enough.
Note: throughout the post I will link to my emacs config snippets. To prevent code references from going stale, I use permalinks, but check master branch as well in case of patches or more comments in code.
What do I search?
I’ll write about searching in
my personal notes, tasks and knowledge repository (this blog included)
all digital trace I’m leaving (tweets, internet comments, annotations)
chat logs with people
books and papers I’m reading
code that I’m working on
information on the Internet (duh!)