Search Engines (publ. 2024-11-21)
Using search engines from Emacs
One Emacs package I'd like to highlight today is engine-mode:
engine-mode GitHub repository
This package allows you to define functions to use Web search engines. E.g.,
(defengine duckduckgo
"https://lite.duckduckgo.com/lite/?q=%s")
Once evaluted, this makes available an interactive function "engine/search-duckduckgo" which you can call to make a DDG search from Emacs.
Here is code for two other search engines I use often:
(defengine wikipedia
"https://en.wikipedia.org/wiki/Special:Search?search=%s")
(defengine merriam-webster
"https://www.merriam-webster.com/dictionary/%s")
Concerns about Web search engines
A concern I have about Web search engines, in particular the engines that index the entire Web, is that they become a substitute for actually possessing, and/or knowing how to find, important information that we rely on. E.g., instead of knowing how to find a particular Elisp function for my Emacs install, we might just "google" something like "elisp insert value into <some data structure>". Taken far enough, this approach has you utterly dependent on the World Wide Web, and the algorithms of some company's search engine, to get anything done on your computer. At that point, the search engine becomes effectively a SaaSS threat.
Who Does That Server Really Serve?
Of course, I still have to use DDG quite often, but I have been able to mitigate this problem in some ways:
For one, I make heavy use of info manuals. This is very convenient due to Emacs' great Info interface.
Second, Emacs has some good functions to help you find particular commands, functions, variables, or customization groups that you are looking for. It also has functions to describe them, i.e., quickly view the doc strings.
P-search, which I mentioned recently, is a great new Emacs tool to be able to do relevance searches on documents on your own computer. The author of this software, at my request, implemented an extension which allows it to treat info manual pages as candidates, which is very useful.
I'm trying to keep notes of where important projects, Web sites, and Web pages are, through my Org references collection, through Org Roam, and through Emacs Bookmarks.
I have little interest in using any of the large AI services out there, like ChatGPT. But I was wondering if perhaps I could set up a local AI of some kind that was familiar with all my files and projects, and could answer natural language questions to help me find or figure out things more quickly. The bot would have to be all free software, of course, and also running locally, not feeding data to any company's cloud service.
Copyright
This work © 2024 by Christopher Howard is licensed under Attribution-ShareAlike 4.0 International.
CC BY-SA 4.0 Deed