The ultimate note-taking solution

šŸƒMunaf āœ…ļø
5 min readFeb 16, 2024

--

In my 20-year career as a software engineer, Iā€™ve worked with both Windows and Linux in various programming languages. Iā€™ve found that thereā€™s no one-size-fits-all solution for note-taking. However, I can share my method which I believe is not only the best but also the future of notes.

Photo by Aaron Burden on Unsplash

Markdown: The Middle Ground

I dislike markdown. Itā€™s too simplistic. Hash (#) and pound (!) and various quote-type (ā€œ, ā€˜, `) characters for almost everything, littered over my notes like bits of bubblegum under a school desk, or plastic bags floating around the information highways. I donā€™t want to see any of that in my notes. It needs to be rendered for it to be mildly appealing.

But, the alternatives are much, much worse.

  • Rich Text Format? NO.
  • HTML and other XML-based formats? Not.
  • The Microsoft formats? Good luck syncing between platforms!
  • LaTeX? We should discuss this later!
  • Notion? As bad as Microsoft products, in my honest opinion

Markdown seems to be the only solution that strikes an acceptable balance between syntactic litter and visual enhancement.

Comparison table of pros and cons of popular document formats

Editors: The Gatekeepers of Information

The software development world is plagued with bits and pieces of information. This information is usually mildly related but most often, completely unrelated.

  • Mildly related: Information about a project, or testing thereof. Usernames, passwords, variable contents, IP addresses, snippets of code.
  • Unrelated: last week vs this weekā€™s project. Bugs that were fixed.
  • Other: We rarely have a 1000-word essay on some kind of process. When the need for that arises, there will often be a clear process that must be followed. Even as a draft, you would likely start off editing the inside of the home of the process that it belongs to.

A system specification for a microservice would probably go into the company wiki on Confluence, Notion, Sharepoint, document repository, etc. A test plan? Microsoft Excel, or Confluence. Release documentation? Microsoft Word, or Confluence.

Access Across Platforms: The Cloud Solution

The software fraternity is divided into two groups based on the operating system of preference: Microsoft Windows, and Non-Microsoft (Linux, macOS, etc). I donā€™t know a single Windows software engineer who hasnā€™t heard about Notepad++. There are others, but Notepad++ is the most popular. In Linux, there are a few options.

All too often, Iā€™ve needed to access my notes in the operating system that my notes are not in. Eg. My Notepad++ notes are stuck in Windows, but Iā€™m spending a Month in Linux on some project.

The Power of Accessibility

So, how to access my notes on all platforms? I create a cloud store (on any of the many versioning systems out there, such as Bitbucket, Github, Gitlab, Dropbox or Google drive). Then, all I need to do is pull/update from and push to the cloud store. If youā€™re worried about security, you can back up your notes on an encrypted USB drive and carry it around in your pocket.

Coming back to editors, the solution that works best for me is to use Obsidian, VS Code, and Notepad++. Yes indeed ā€” all three. In one case, I opened up a subdirectory of the note folder inside Microsoft SQL Management Studio, to access a folder of SQL scripts. In another case, at some other point in time, I imported my notes into another markdown note editor. Thereā€™ve been so many I canā€™t remember them all.

Notepad ++
VS Code
IntelliJ Idea

The last image is a screenshot of an obsidian, Gitlab note store open in IntelliJ Idea ā€” a popular Java development IDE. I like to open source code snippets in a development environment where I can follow method names, or check a call hierarchy, or even write and test code as I write articles.

Over the last 2 decades, there have been many more editors to view my notes repository. I moved from Bitbucket, to Github, to Gitlab. Ultimately, it doesnā€™t matter which VCS you choose. As for Editors? VS Code, Notepad++ and Obsidian have been the 3 that stuck.

You may have noticed the .gitlab-ci.yml file in in the topmost image. This file allows me to hook into a Gitlab process (pipeline) to do some automation tasks on the folder. In this case, it publishes my notes to a Gitlab pages site - which then makes for "less inconvenient" browsing of my notes in a browser.

The ability to run code against your notes is a superuser feature. Testament to this is the entire Obsidian extensions movement. The Notepad++ extension community may not be as large as Obsidian. However, Notepad++ extensions are not restricted to text processing. If Iā€™m wrong, please correct me.

Conclusion: Keep Exploring

In conclusion, the true power of information is in how accessible the information is. With various lenses (applications), we can look at the same information in a new light. Each lens comes with itā€™s plugins, extensions, and features. The power that you have at your disposal is mind-blowing. And yes, as a futurist, I believe the future of note-taking is in accessibility of your notes.

The only way for me to know if you want more is if you like and follow. Therefore, please like and follow. Thank you for reading.

This post was originally published at my blog. A similar version went out on my Impact newsletter at LinkedIn. Follow me on LinkedIn

--

--

šŸƒMunaf āœ…ļø

A dad, developer and diver discovering neurodivergence after 40 šŸ§  What could go wrong? šŸŽ¢ The singularity is here šŸ¤– munafsheikh.com