Learn By Example: CLI Text Processing with GNU grep and ripgrep

Sundeep Agarwal’s Learn By Example series of ebooks is an invaluable source for learning programming and CLI text processing.

Earlier this year, Agarwal updated his CLI text processing with GNU grep and ripgrep ebook, adding a new chapter devoted to ripgrep.

Agarwal is generous in making his book available to read online, but he also makes his books available as PDF/EPUB for an extremely reasonable price.

Will Note-Taking Apps Make You Smarter?

The Verge’s Casey Newton thinks they have the answer: probably not. But does the question even make sense?

One solution to this data paralysis is to take notes. As a journalist, of course, I have always taken notes. A few years ago, I thought we had seen some true breakthroughs in note-taking, and increasingly put my faith in those tools not just to capture my writing but to improve the quality of my thinking.

. . .

Initially, I threw myself into this kind of associative note-taking. I gathered links around concepts I wanted to explore (“the internet enables information to travel too quickly,” for example, or social networks and polarization). When I had an interesting conversation with a person, I would add notes to a personal page I had created for them. A few times a week, I would revisit those notes.

I waited for the insights to come.

And waited. And waited.

The authors later concede that “thinking takes place in your brain” (who knew?) and likely can’t be automated by note-taking apps (amazing insight, right?)

One thing I encounter on forums about note-taking apps is people who first encounter them from YouTube videos, where the presenters generally have built extremely complex systems on top of applications such as Notion, Roam, or Obsidian. Such systems seem inherently unwieldy except maybe for the presenter’s own idiosyncratic methods, and even then, I’m skeptical.

The point of taking notes is to record events, processes, or information so people don’t have to try remembering everything. The point of a note-taking app is to have a place to organize and locate relevant notes when they are needed.

For example, I might be working on a specific project. I might have everything from meeting notes to technical process checklists to documents related to the project. In some cases, with long-term projects, I might end up with hundreds of individual notes related to the project.

My note-taking app facilitates organizing those disparate items and lets me quickly find information about key decisions or processes extremely quickly. Organizing information so I can retrieve it quickly later if needed is 90 percent of what I use a note-taking app for.

Sometimes, I do use those notes as references to distill further that mass of information down, such as if I need to write a report summarizing a project.

This doesn’t make me smarter or improve my thinking, but it makes my life a lot easier because I can find almost anything important with just a few keystrokes.

And that’s enough.