Doing my PhD in mathematics, I of course ended up opting to have a blackboard in my office. As anyone who has spent some time around blackboards knows, things get dusty fast if you only use dry erasers. I had seen lecturers use wet flat velcro mops as erasers in large lecture halls, but that seemed overkill for my small office blackboard. But after thinking about it, I remembered that I had also seen sponges lying around in some smaller rooms in the building. Those seemed perfect, I thought, and went to our supply closets to look for them.

My search for a good eraser followed a pattern which I have experienced before, and which I have come to enjoy quite a lot. First, you adopt a tool which you have seen other people use: in this case a blackboard. Then, after using it for a bit, you realize that there is a problem you want to solve and go looking for a solution. In the end you realize that — of course — other people have also had this problem, and that there is a series of increasingly niche options to choose from. When at its best, this process can feel like you are discovering a little world that you had never seen before.

Okay, maybe a sponge isn't the most exiting example of this, but going to the supply closets I still felt a bit like I was on an adventure. There are two different supply closets in the building, and I had recently discovered that they don't stock the same items. So I started with the one closest to me, but was not surprised when I could find no sponges: This was the closet closest to my office, and I had throughout the years looked at almost everything in this closet but had never seen any sponges. And it was also located in the more engineering-inclined — and therefore whiteboard-centric — part of the building. So off I went to the other supply closet, the one deep in pure-math-land.

Before moving on, I want to reflect on why it even occurred to me to go to multiple places to find a sponge. There are a few factors: I knew that people wet-erase boards, I knew sponges were used by some people for this, and I had a strong suspicion that they were easily available to me. I knew these things not because someone told me so, but because of the social environment I was in. If I had been in the building all alone, never seen even the traces of someone else using blackboards, I would probably not have gone on this hunt. It would not have mattered whether or not the supply closets stocked sponges or not, or if my needs for erasing boards without dust would have been the same. Not knowing that there even was a good solution might have left me with a dusty room, or made me draw the conclusion that blackboards are a very fallible technology.

But that was not the case, and as I arrived at the second supply closet I felt certain that I would find some solution therein; Maybe not the sponges I was looking for, but at least something equally useful. I started going through the shelves of materials, trying to look at every single thing and consider whether it could be meant for wet-erasing. After my first scan of the room I was stumped: I could not find even the hint of anything useful. Maybe the sponges or whatever else people use had run out? To not have to turn the entire room upside down for some unknown type of eraser that might not be there, I refocused on the sponges. I had seen too many of them in the building for someone to have just bought a few themselves and left them there. And they must be worn out or lost sometimes, but I did not feel like there had been a declining amount of them in the building over the last few years. As I started looking at the shelves with materials that felt similar to the sponges, I came back to a small stack of things I had not determined the purpose of before.

They were orange-yellow slices, only a few millimeters thick, and about 4 times 15 centimeters in the two remaining dimensions. I had had the feeling as I looked past them the first time that they were used for wiping or cleaning surfaces, but they looked way too small to be good for my purposes. I picked one up, and then it hit me: this was very dry, had a similar color to the sponges, and I could not figure out some other purpose for it. It was a dried and flattened sponge! I excitedly brought one to a sink and, sure enough, it expanded into a sponge just like those in the classrooms. Of course you can compress a sponge, and of course you want to ship as little volume as possible. Not only did I now have a sponge, I was also convinced that these sponges were the solution to the problem. The fact that their simplicity allowed them to be compressed like this both meant that they were very simple and foolproof, and that they would be cheap to replace if the supply closets every stopped stocking them.

This preference extends to other tools I depend on. The simpler the tool, the more I am willing to depend on it since I don't want to have to switch around my tools indefinitely. Best case, I could build the tool myself or buy a lifetime supply of it if it stops being produced. If that is not possible, it should be easy for a small independent company to produce, or the second hand market should be overflowing with enough of them that replacement parts will be easy to find for many years. At the very least, I want it to be possible to disassemble the tool into smaller parts, to be able to service and run it myself. Worst case, I want whatever external requirements it has to be important to other people.

Now, this sponge might seem like a weird choice for highlighting this preference. Worst case, I could have just used old rags or something. But what the whole episode with the sponge illustrated for me was that what makes me like these tools is often the same thing that makes them hard to find. The sponge being hard to find is closely tied to how cheap they are to ship. And imagine trying to make these dried up sponges look good on a shelf in a store. Or even worse, the company which "makes" them trying to promote them in the way you would promote some complicated aparatus for the same task. This makes it an uphill battle both to follow my taste and to explain it to others around me.

One area of my life where this preference makes itself very visibly known is my choice of software, or in many cases lack thereof. I like small tools, with open source code, with functionality simple enough that I could implement parts of it myself. If I can not find any such choices for doing a specific task, I often simply choose not to do it instead. Part of what is going on is that I know a lot about computers and related technology, and so I can see the complexities involved better than for, say, a sponge. But I think a lot of other peoples befuddlement around some of my technology choices stems from the fact that much information technology is deeply reliant on social factors. A chat app is kind of magic: you can message anyone instantly, and get a reply much faster than if you had to wait until the evening to call them. Except you can only message those who have the app, and only get a reply as fast as they check their messages. Anyone who does not get the app or check their messages regularly kind of ruins this magic. So you get a bit frustrated with them even though you don't really know why, and ask yourself why they would say no to something this magic.

This is all to say: we should talk more about the digital tools we use from a social perspective, and that of course I am an avid user of the terminal on my computer. In case you don't know, a terminal is that text interface you see whenever someone is doing hacking in a movie. It has a lot in common with blackboards: it is an old tool that is mostly used by nerds nowadays to do complicated looking stuff, often featuring white text on a black or dark background. And just like a blackboard (and may other tools) you quickly find that you want some auxiliary tools when you start using one. But in contrast to the blackboard, I started exploring the terminal in much more of a social vacuum. Working amongst mathematicians and engineers, people around me use a terminal from time to time. But at least among the younger cohorts, it is something you use a bit to do some technical work and then go back to another window with a text editor or web browser.

But since I started to use a Linux system daily for the first time when I started my PhD, I had gravitated more and more towards the terminal. The beauty of a text interface is that it is easy to design and design for: it is mostly text in, text out, over and over. If you have used a Unix shell, you know how this allows you to automate interactions with programs, to make programs talk directly to each other even though they were developed independently. In short, it is a piece of software I am much less hesitant to rely on than visual desktop environments that show you windows of things, like what is included in macOS or Windows, and things like Gnome and KDE on Linux systems. And that lack of hesitance has made me explore doing way more tasks in the terminal than most people around me.

I have not explored this world in total social isolation though, since there are lots of people on the internet who write about this stuff. But I don't have the same kind of interpersonal relationships on the internet that I have at work. I mostly observe what other people do and say, and have to take a fairly sceptical stance to what I see. But this tool called fzf kept popping up in all kinds of contexts, and so I got a bit interested. Many people seemed completely lyrical about it, promoting pieces of software they had written mostly through saying that had fzf integrated into it. But when I tried to look up what this program did, I could not figure it out. Up until a few months ago, the tool's own description was "fzf is a general-purpose command-line fuzzy finder". To my best understanding, it was a tool for searching through text that could handle non-exact matches. You know, like every single half-decent search engine you can find. I thought it was cool that someone made it and that it seemed to be fast, but had a hard time imagining why I would need it.

The situation was different than it had been with the sponge. I had seen that the tool existed, but I could not see what so many people could be using it for and what they were so excited by. It was as if I had only seen the dried up sponge in that storage closet, and someone had told be it was used for cleaning blackboards. Without the context of how it was used, I would probably have thought that it looked a bit too small, wondered why anyone would use it instead of a rag. It would have thought that I understood what people meant when they said that it could hold more water than a rag, but had no idea to what degree they meant. To understand what fzf truly was, I had to experience it in action.

At some point many months after I first heard about (maybe even years later), I was trying to search through a list of authors of papers. I kept misspelling some names and was getting a bit irritated, when I remembered fzf and decided to give it a try. I downloaded the program, and figured out how to send the list of names into it. And then the search interface appeared. Everything I am about to say about this interface is going to sound as unimpressive as a TV-commercial about sponges, but just bear with me. At the bottom of the screen you see an area to enter your search terms. Above that is a list of the most relevant lines of text fed to the program based on your query. The best option is selected by default, and you can easily move through the other options. As you type your search query, the list above changes as you write. And when you found what you are looking for, you press enter, and the interface disappears as the selected line of text is emitted by the program. Just seeing these things in action made me go from uninterested to having my head spinning with possibilities.

The thing that makes me love fzf is not the fact that you can misspell something and still get a hit. That is the cherry on top. The secret really lies in how simple but flexible it is to set up the menu and select options from it. Such a menu might sound quite standard issue in graphical interfaces, but in the terminal it is not. And the menus you do find in terminals are usually not very comfortable to navigate, since they are either focused on search or are focused on moving around options sequenctially. With fzf you can do both without having to figure out what you want to do beforehand. This is what makes me — and I suspect a lot of other people — really love fzf. It is my go-to option for navigating large lists of text, either to find a certain line or even just to manually look through it. And it just works. I am not waiting for new features, it is not something I need to make sure is kept secure through updates and patches. This is not a coincidence: Since the tool is just a search interface and not much more, not a lot of things can go wrong with it. The same thing that makes it so fantastic is what hid its true usefulness from me.

This is not to say that some of these tools can not be explained better. Nowadays, the description of fzf is "fzf is a general-purpose command-line fuzzy finder and an interactive terminal toolkit", which I think at least might whet someone's appetite to find out more. And the dried sponges could have come in a box with pictures of the final product on it. But I think we need to have some patience with these tools and the people that make them. The simple beauty of the tool can work against you if your audience does not know what they are looking for. This should not discourage you from making such tools. It is okay if someone else — who had to go through the journey to discover its true value — is the one who figures out how to pitch your tool. For those of us who fall in love with such tools, we must remind ourselves and others that sometimes tools require patience. But most of all we must remind ourselves that some of the best tools hide in plain sight.