As the number of projects I work on grows and the number of technical issues encountered increases, I find myself wanting to keep a track record of any problems and solutions I encounter such that they can be easily referred to in the future. This is why I am looking for a note taking app that allows me to organise my notes hierachically, as well as tag them, categorise them, sort them, search them etc. When programming, it is necessary to keep track of lots of things at the same time. Debugging an application might take you through multiple method calls, libraries, and you might even have to fix a number of other bugs that you find whilst looking for the root cause of the original bug you tasked yourself debugging. Going off tangents whilst programming is so common that it would be really useful to store the whole train of thought and solutions you created such that, when you do find yourself finally backtracking out of that deep hole, you can easily traverse back up the list of bugs that lead you where you are.
Writing this down on paper works, and trust me, I like taking physical notes. In fact I started many books and folders containing notes and configuration guides but I never ended up looking at them a second time as they were extremely hard to navigate. Organising pieces of paper and finding recorded information months after it was written down is a very difficult and time consuming task that almost certainly disrupts your workflow and mindspace at the time when the information is urgently required.
Electronic notes can be categorised, tagged, searched and easily edited and amended, which is very convenient and powerful. The issue with finding a note-taking app is that you are locked in to their data format once you start using it. After years of using an app with potentially Gigabytes of data stored in a specific format, the last thing you want to do is abruptly decide you want to use a different note taking app. Transferring from one app to another is close to impossible unless your notes contain very basic formatting with no vendor specific features (such as Evernotes cross-references and vendor specific formatting and styling).
Initially, I wanted to write my own basic note-taking application that does exactly what I wanted1 but who got time for that. Other people would have had the same issues before, and someone surely has already written a note-taking application optimised for programmers, right?
There are existing note-taking solutions, most notably Inkdrop, the design of which must be commended, and Quiver (unfortunately only available in the Apple ecosystem). These are paid subscription based services. I am very hesitant about taking on new software subscriptions because subscriptions in general add up quickly. In addition to bills, there is now Netflix, Windows 10, Office, the monthly usage cost of your set-top box etc…. Since I did not want to sign up for another subcription, I checked out the free tier of one of the most established note-taking applications out there: Evernote.
The problem with Evernote
From the get-go it was immediately apparent that Evernote, despite its expensive plans, does not include features that, in the programming world, are simply taken for granted. Features like Markdown support or even basic styling2 functionality are completely missing. Lacking heading styles, the user must select text they wish to convert to a heading, increase its font size and make it bold just to create one heading to structure an “ever“-note. A note can create any number of headings so this process quickly becomes tedious, though it is very much the norm for the average consumer using Word or Outlook. Markdown is a much better solution, as explained later.
Don’t get me wrong. Evernote is a very impressive application with a rich feature set that I would love to use. In fact it ticks most of the boxes in terms of features I need. However, it is missing crucial features that I, as an accustomed Markdown user, have come to appreciate. The problem is that I cannot see myself spending the rest of my life going through a ridiculously overcomplicated procedure to apply basic heading styling manually. This - unfortunately - has become the norm because of office applications such as Word and Outlook.
The Beauty of Markdown
The lack of markdown support is a real shame. This blog uses markdown as input in order to render these post pages. Markdown uses simple syntax in order to denote styling. Here are the basics of Markdown:
# This is a heading ## This is a subheading **This text is bold** *This is italic* * This is the first item in a bulletlist * This is the second item 1. This is the first item in an ordered list 2. This is the second item [This is a link](www.danielha.tk) ![This is converted to an image](https//danielha.tk/assets/img/profile.jpg)
This text is then converted to beautiful, formatted text as you can see on this blog. Any good markdown editor even hides these symbols from you once it knows how you intend to style a selection of text, making Markdown very useful in quickly applying heading styles and various list styles.
Overall, Markdown makes note-taking much faster and less fiddly as you dont have to worry about applying styles. Once you understand the basics of Markdown, your productivity increases dramatically because you can simply type out any quick formatting you want to apply and the editor automatically converts it to the corresponding format. Anyone who uses Markdown for any short period of time would agree with me that typing simple syntax in order to apply formatting is astronomically more efficient than grabbing the mouse, navigating to a tiny B button and clicking it just to make some bold text.
Whilst researching if there was some kind of Markdown plugin for Evernote, I came across a forum post listing reason why Markdown is not supported by Evernote. One of these reasons is that it would interfere with the way notes are currently stored. Another reason is that the majority of users do not know Markdown and it would be intimidating for them to learn it. (Nobody said to get rid of the existing formatting system…)
In a nutshell, Evernote thinks catering for a small group of efficient note-takers would simply not be worth it. There is a reason Markdown came about in the first place and the least I would have hoped to find when I opened Evernote for the first time is the option to enable Markdown, even if it was disabled by default as to not bother or confuse the average user. For a note taking app that charges up to US$90 a year in order to get access to all features, Evernote should really include some sort of markdown and basic styling support.
*Update: ** Evernote is *buggy! Pasting links results in them being inserted 3 lines below the selected lines and deleting checkboxes is a nightmare, especially on mobile.
a tagged, categorised and cross-referencable hierarchy of searchable notes Markdown support. ↩︎
A style refers to a predefined set formating rules which can be easily applied to a selection of text with the click of a button or keyboard shortcut. For example, you can create a style for text that you want to appear bold and slightly larger than paragraph text. Word supports this feature and even Outlook. ↩︎