The ultimate note-taking solution
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.
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.
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.
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.