I've long been interested in the domain of "personal knowledge
engineering" and this clearly seems a common thread within our
community. As a brief overview of the "SOTA:"
* Emacs and Vim users skew towards Org-mode or Vim wiki.
* Roam Research is sort of a recent web-based alternative.
* There's a lot of competition in the domain of fully-fledged note taking apps.
Evernote has long been viewed as a king of note-taking but lost its edge over
time (bad editor, bugs, lack of attention to their users).
Memex seems to be gaining popularity even though their
software looks somewhat buggy at the moment.
* Otherwise, people naturally develop their own (similar) systems.
I myself have independently developed a custom-made Vim wiki before starting
research into this topic.
It basically consists of a few grepping/Vim aliases to search/create Markdown in
a `~/.notes` folder, backed up to GitHub. `mod+-` is bound to an i3 sratchpad
where Vim is constantly open to `~/.notes/index.md`. This drastically reduces
friction when making new notes.
In any case, seems interesting that a lot of the personal note-taking systems
have separately adopted similar principles to what Zettelkasten proposes:
1. Heavy reliance on tagging
2. Some sort of deep linking
3. Preference to making small, independent "knowledge chunks"
My current problem with these tools is that I tend to treat them as mostly a "write-only" medium. i.e., I don't really refer back to them that often. What I'm really looking for is a tool that will let me _serendipitously_ encounter ideas from the past. For that, I think that Roam with its Mediawiki style "backlinks" might be the next thing that I spend some serious time with.
Either that or a tool that somehow encourages me to refactor thoughts from the past into more (currently) useful content.
As for idea rediscovery I'm personally happy with the setup I devised for myself
so I can only suggest trying to emulate something similar. If you're interested,
some guiding principles I follow:
1. My note-taking app (Vim, but could also be the browser or anything else) is constantly open in the
background, and I have a keyboard shortcut to show/hide.
2. I maintain an index document of sorts (with TODOs, recent thoughts, outward
links). This is frequently updated and I don't think too much about
3. Either Markdown `#` headers or `*` are mapped to Vim folds,
which allows me to use `zm` and `zr` to quickly expand and collapse document
4. Treat tags as a "brain-dump". Just quickly come up with some keywords before
starting to write
the note. If you do that, I find even simple tools such as ctags and grep immensely
help with future rediscovery.
5. Backups are on GitHub so I have the double convenience of both tracking document
history, as well as being able to access all notes from mobile.
It's served me well thus far; most commercial note-taking apps will handle (4)
and (5), while (1) is easy to resolve (e.g. AutoHotkey on Windows) so there's
probably no need to make drastic changes to your setup if you wish to try it out.
Actually, I'd never move away from plain text or a plain text format like Org, Markdown or similar as it is really future proof. Will Roam or Evernote be around and well maintained in 20 years? Probably not. I'd recommend you to use your favorite text editor plus Markdown. If your favorite text editor is Emacs, then consider Org.
I've been guilty of this too. A note is a way to get something out of your head. I always return to plain text files on my computer because that's the fastest/least resistance and there just aren't any additional benefits for me to using other approaches. Linux command line tools are a simple yet effective way to work with text.
And he collected and refinend his knowledgebase for nearly 40 decades, because this was actually his job and he had nothing better at hand. Most people today use knoweldebases just a tool on the side and they have computers now. Naturally they strive for faster workload and higher quality. Something you can't get with pen&paper.
> Will Roam or Evernote be around and well maintained in 20 years?
Probably not, maybe they are. But they are not good competition there. Evernote is mostly tooling and servers, just a bit interface and mostly just fancy richtext. The advantage over markdown is quite thin these days. Roam might be a bit better, bit I think it's just a fancy wiki with autolinking, so not really good either.
The actual competition are apps like notion and airtable and Office Suits. Interfaces and tooling which goes above and beyond simple test with fancy colors. Markdown is not there, probably never will be. Orgmode to some parts goes there, but has other problems.
My favorite editor is Vim, but a big part of why I learned to use Emacs was to try org-mode. Now, org-mode is pretty much the only thing I use Emacs for (email too, but not as often).
I've been obsessing about this for a long time and concluded, as you have, that AsciiDoc is the One True markup format for me.
I don't have anything to offer an Emacs user, but I have created my own Vim wiki plugin which is heavily inspired by VimWiki and uses AsciiDoc as the native syntax. The plugin is pretty much brand spanking new, but I use it all day every day.
I've already converted some of my note extraction tools to pull from this wiki format and the dream is, ultimately, to have everything including my website pull from this one source.
I wish I had the link, but last week someone linked to something called `bash_log` which was someone’s bash function that created time stamped md files for simple journaling. Nothing groundbreaking, but for me it was a step up.
Currently, I’m using StandardNotes, the forementioned bash utility with GitHub pushing, and god-help-me random moleskins. I’ve also tried Dynalist which was nice but I didn’t like that I couldn’t lock it down and link it to GitHub.
If anyone has any suggestions in the context of what I’ve posted, I’m all ears. The article gives me some ideas, as does your response. I’d be interested in more concrete examples of what you’re doing if you wouldn’t mind.
I wrote this tool for accessing Standard Notes on the command line:
I imagine it would integrate with bash_log quite well.
Back your data up first, and I'm guessing you could just `cd` into your notes folder then use bash_log straight from there. You could also set LOG_DIRECTORY in your .bashrc to be where ever you mount Standard Notes.
My personal goal with this idea is to make everything quickly searchable, preferably by voice at some point in the future.
“How do I ... in Swift|Scala|Rust”
I built a small Swift Cookbook on my website a few years ago. I recently moved it to Github to update to Swift 5.x and to move towards my goal.
Another example is Chris Albon’s recipes that I’ve found useful:
> 2. Some sort of deep linking
This makes me think of Ted Nelson’s Docuverse . Thanks for the note-taking review.
Notion is very popular, and Roam Research  has been the popular scrappy upstart that people have been looking at, but I've been unhappy with these since neither has an API (and neither are open source.)
I would _strongly_ urge HN readers to take a look at Tiddlywiki . It's popped up on Hacker News before, and I wrote it off, but I've been taking a closer look recently and its _incredibly_ powerful, as well as completely customizable and open source. It runs off of a micro-kernel architecture, so the core application itself is implemented in code that you can change, edit, and manage just like you would do with your own notes. It's really easy to get started (it's a self contained HTML file) but seems so have some robust saving and backup functionality.
Please please give it a look if you're looking at tools in this space. I've already started using it and I'm _very_ happy with it.
(Not affiliated with Tiddlywiki, just a really happy user.)
I think their UX takes a little bit of getting used to and can be improved. This project in particular wouldn't be incredibly difficult to modify, so it didn't worry me too much.
Regarding permalinks, there's actually options you can configure both to show a button to copy a permalink to a tiddler as well as to display the correct permalink in the URL bar.
Here  is a link to a view I created that links to a markdown plugin (which should still work) as well as to information about TW's plugin architecture. If you're interested in learning even more about TW's internal architecture, check out their developer documentation here .
I'm definitely interested in tiddlywiki, but there's so many options it's a little overwhelming on first glance. What does your implementation look like?
I branched out to using the Tiddloid Lite  Android client, (Tiddloid and Tiddloid Lite are both free and open source, the Lite version just has a different feature set,) and I just uploaded my previous wiki into Google Drive and the app just worked... saving became completely automatic and it syncs to Drive without a hitch.
I'm looking into standing up a TiddlyServer  soon for my upcoming project, and I'm planning on eventually doing some modifications to do data storage in a database instead of on disk.
One thing's for sure: it's got a great gradual way to "get into" using it... it just isn't great at communicating those options in a way that isn't overwhelming.
My current setup:
- I use an Onyx Boox Note 2 to take handwritten / drawn notes when I feel a strong need to do it digitally. It has an ePaper screen that's super smooth. The notes stay on device and are backed up (but not synced to my Tiddlywiki)
- I keep a tiny paper notebook with me at all times for jotting down ideas and thoughts that appear in my head during the day
- I copy abridged versions of my paper notes into Tiddlywiki at the end of the day or the week to reflect on them and to have them be indexed and searchable.
This solves the awkward problem of handwriting recognition being utterly unserviceable for my handwritten notes, ensuring everything that matters is searchable since I copied it manually. It isn't too much work.
During export Trilium fixes the internal references to standard HTML links so they reference pages in the structure like "./sub-folder/my-topic.html" (but yeah, it was not always like that).
Paper, it turns out, is always "on". There's no battery to worry about, no booting up and loading the app, and no Slack notification interrupting your flow. Paper calms you, because you know it never ever interrupts.
I've really enjoyed evolving the tools I use for notes. Right now I take all notes in a large dotted moleskin using a Rotring Pro. Turns out the more enjoyable a tool is to use, the more likely you are to use it. The notebook is the lower end Moleskin ($20 for a 3-pack), and that's a nice balance between quality and feeling comfortable "wasting" a page.
The downside is now I am developing a rather large paper notes collection that I don't want to burn.
That's why I often use a tablet and stylus for anything I intend to keep. I enjoy using the gear. I like having pens and markers created exactly how I like them and they never run out. I like being able to make my paper as big as I want it to be. Sometimes I want blank paper, sometimes dot grid, sometimes lines, etc... and I can have them all in the same notebook. I like that my handwriting is recognized and I can search it. It's great being able to paste in an image that I capture with the camera or find on the web. It's nice being able to move a paragraph to make space for something I forgot.
I don't have trouble with Slack or email because they aren't installed. No notifications are allowed on the tablet, except for OS-related ones (ie an update is available).
That said, I do still use a paper and pen all the time as well. I like paper and pen in meetings to capture and then after the meeting I format and transfer the notes to my digital system. I like pen and paper when I'm on the phone because I like scribbling and doodling as I talk.
Basically the divide comes down to what is ephemeral and what I want to keep. Anything that needs to last has to be digital for me.
Right now, it seems like the only real solution is to homebrew something that hits the Microsoft API and associates document IDs to contexts, then launches OneNote for the given document when it comes time to view/edit.
My problem with a graph structure is that ultimately I end up with notes that fit more than one bucket. For that reason I usually gravitate to a structure built on tags.
Computer notes tend to be un-forgettable and also open to machine indexing and searching.
As a Moleskine aficionado, one thing to mention is that I prefer the squared paper, soft cover, and certain colors (depending on the subject). They make 3 or 4 different sizes, all in hard and soft cover, and I believe around 4 colors. Frustratingly one tends to never find all permutations in stock in any particular store: invariable the combination you're looking for is not there. Even via Amazon every option is not in stock at any particular time. However, I recently discovered by chance that there are Moleskine corporate stores. I visited the one in Century City Mall in Beverly Hills: they had absolutely every combination of size, cover, paper, color available, and actually some options I had never seen before such as a "double thick" version of the 8x5.
My process is to write everything in mechanical pencil, then review and trace over certain things (depending on topic) with Pigma pens with archival ink.
I prefer the thinner lines of a 0.5mm pencil, but I'm old enough that it's pretty obvious I'm never going to learn to not break the tiny leads.
Edit: A Japanese friend introduced me to Pentel's black erasers. I've found what appears to be the same product in the United States, but they're shorter, so I generally try to find some place I can buy them from over there, despite the extra cost.
And how do you find “all the notes about GCC” without some kind of library index system?
So for me it’s text files in Markdown, shared between my devices, with a variety of ways to search and display them.
Principle #1: Writing is not the outcome of thinking; it is the medium in which thinking takes place
Principle #2: Do your work as if writing is the only thing that matters
Principle #5: Standardization enables creativity
Principle #6: Our work only gets better when exposed to high-quality feedback
While I confirm that writing is a powerful medium for thinking, anybody writer with a shower to take or a hike to walk will tell you that thinking takes place in many ways.
Parts like "If you want to learn and remember something long-term, you have to write it down" depends so much of context. Again, writing down does help me to commit things in memory, but for some information, audio is better. For others, repeating in my head is better.
Good advice all in all, but the definitive tone of the article is not needed IMO.
Writing something down requires clarity, and clarity can be gained in many ways. Writing something down that isn't clear yet will result in (hopefully) spotting that lack of clarity before you press 'send' or 'publish'. But that doesn't mean that all for stuff that ends up written is happening while writing it down and without a very good idea of what you are trying to communicate beforehand you'll end up with bad writing.
This is an article about note taking, not taking showers or going on hikes, or thinking in general, so I think trying to interpret its points outside that context is unreasonable. I think you’re imposing an unreasonably literal an exclusive interpretation of the point. The author doesn’t say it’s the _only_ medium.
On definitive tone, would the article really be clearer if it constantly went off on digressions about non-note taking contexts to every single point? I see criticisms of articles like this here all the time and it’s really tiresome. If every article linked here was full of caveats and digressions on every last point, they would be unreadable. I’ll take a succinct, opinionated expression of someone’s experience and point of view over a rambling exploration of every last facet of a topic any time.
No, but the author does say:
"Completing these tasks is exceedingly difficult inside the confines of our heads. We need an external medium in which to perform this elaboration, and writing is the most effective and convenient one ever invented."
Keeping stuff in your head while thinking with the stuff in your head changes it. The same with memories. If you have not noticed this, please challenge the statement: Keeping stuff in your head does not work; you need to externalize in order to use your differential engine, aka brain in order to 'think.'
Having said all this, I think because I am. not the other way 'round! everything else that you may think is thinking, maybe emotional/felt or aesthetic judging, would come from deeper down the stack.
Anyway, tell me about these other media.. and show me how you're not driving complex symbolic insights with them!
its all reasoning by analogy for us anyway :)
> Principle #1: Writing is not the outcome of thinking; it is a medium in which thinking takes place
"the medium" → "a medium". It's still a powerful statement.
I can learn like that, without any thinking at all!
We can only learn anchored in feedback, and if you can give yourself the feedback while writing, talking out loud alone, or better yet, with a listener, then you get feedback that keeps you thinking.
Verbalization and conversation maybe media, but writing, coding, sketching definitely are places where I notice my thinking.. What other 'media' did you have in mind?
I think recording it with audio might be ok too, because you won't lose the idea. But the next step after that is to work with it, and audio doesn't easily give you immediate playback.
With writing there's sort of a feedback loop where you look at what you wrote and turn it over and figure out what's wrong with it and rewrite it or expound on it.
That said, it's your call on "lists of 10 things" because there are some trite internet ones, and some 10-commandment ones.
One of my professors did this. His notes looked as if they were literally fit to print exactly as is. He would do multiple drafts of his own notes.
1. That the creative part should be applied to first creating the standard, and then when dealing with the ideas, deal with the ideas, not the process.
2. That a standardized process makes creating easier because you're not trying to do it all at once.
It's hard to argue with either one of these. Additionally, constraints are often very helpful in the creative process. Let's say you're developing a character for a novel. Would you rather face a blank page or a character profile? You're still free to break the standard as necessary, but you've at least got some kind of foundation to stand on. Even being a hacker is about being creative in the face of standard processes...
I read an article that inspired me to write down every idea no matter how silly, and to try to work on 5 to 10 of them at once, and to always have one that is my main driver.
Over the last 4 years, I've tallied 264. One has supported my research for 3 years (#021). One is my primary hobby (#013). Several have since been announced as results or products by major companies, validating the idea and removing the need to work on it.
EDIT: I cannot quickly find the article, but I'll summarize.
1. Write down 100 ideas in one sitting. Any ideas. By the end, you'll be forced to really think outside your comfort zone, since everything prior is usually your first-order thoughts.
2. Choose 10 of the most promising to work on. Work means just pay attention to, make incremental prototypes, etc.
3. Choose the top contender to throw your weight behind. Maintain a 1/10/100 ratio as you retire ideas.
My difference is I keep the list rolling and append new ideas as they come. I never sit down and make myself write a new batch (I should!). I'm actively working on about 5-10, in various stages of funding (I'm on a semi-soft money funding model).
EDIT 2: Found! http://blog.fogus.me/2015/11/04/the-100101-method-my-approac...
This is not a "fact", it's just a common convention used in medical drawings. The actual fact is that arteries are bright red, and veins are a dull red.
I've found two things that matter most for me:
1/ you need an editor where typing latency is low. Below 10ms. Otherwise you will get in a bad mood and make more mistakes. Electron apps need not apply
2/ creating, linking, and finding notes must be fast
On top of that, it must be future proof.
I've found the ideal solution in howl (howl.io). This is a text editor, built in moonscript and with sane default. Typing latency is 6ms, faster than anything else I could find (on linux, non compositing window manager)
The trick for liking (in markdown) is autocompletion. It will autocomplete based on all buffers open. My trick is to run :exec ls (list of files in the project directory) and leave this buffer open. Then ctrl space will autocomplete filenames. The rest is trivial.
Oh God, Howl deserves so much praise. I hope it gets picked up on HN one day. It's only missing a tiny push, having a community around it would be amazing.
I have seen so many play-things in the note-space that I want to give just a few stats from my 6yo personal emacs setup:
I capture and refile into 14 .orgs indexed at varying depth using the agenda ag and helm for search as needed.
grep "\\" bmarks/*.org |wc etc say there are 5669 notes, 62652 lines 437644 words 3,663,683 bytes total.
since 3/14 I have annotated 111 pdfs, linked many more, captured 508 images. 300+ days logged before switching to a weekly format 201 weeks ago.
I can attest to the sentiment that there is actual communication going on between creator and such a system. :) a multi-media key takes me into capture and either a line-oriented popup for 'jots', a floating window or a full-screen distraction free mode where i can quickly see, that the great thing i discovered yesterday slipped from my mind 5 years ago.
The most important improvement to my note taking was realizing that, like Luhmann, I wasn't taking notes but curating an exo-brain.
I had seen emacs as a rinky-dink over-complicated under-documented religious thing -- and not as the low-stress 'does everything except long-lines really well and never crashes' thing that is now at the heart of my computing life. So.. to continue learning emacs for the next 30 years is definitely on my agenda because its worth it for the quality without a name .. absent elsewhere.
It was cool to see how his manual linking (not just tags) would force him to review the neighborhood he would place his cards in. I neglect that sometimes and so the epiphanies and understanding I get from integrating content have to sometimes wait a cycle or two or come when i check things in or close out the day.
Anyway? My point? Invest yourself into org-mode and take notes for a few years to learn how to take better notes while building something that can last you a whole life long. it worked for me. ty!
1. Get started, doesn't matter how dumb your notes are
2. Use tiddlywiki for connecting ideas
3. Read the book How to Read a Book
CTRL+C in browser and CTRL+V in Sciter Notes (https://notes.sciter.com) + tag and book selection.
Related from a few weeks ago: https://news.ycombinator.com/item?id=22085837
However, there is an editor that makes linking between notes seamless, called Bear (bear.app).
So `3` is the third branch off `21`, `d` marking that it's the d-th (fourth) in line on that branch.
But maybe I'm still wrong, I agree it's not clear.
Edit: Having said that, even by what I'm saying it should end `53a`, not just `53`.
If you're looking for notetaking and documentation of stuff then I wouldn't really know where to start with that.
pierbover11 at gmail
PART I - Paper notes (Yes I still keep paper notes)
1 - Prepare a batch of 10-20 prints of my special note-taking pdf for each project, depending on the size (small if within 4 sprints, and big if more than 4);
2 - Write down names of attendees during the meetings, so that I know who to contact when I need info
3 - Prepare a folder for each project and always put the notes, one page for a meeting, in the following order:
Top -> Always the most urgent or important meeting notes. E.g. KPI meetings, or telemetry meetings
Then I put the rest meeting notes on reverse chronological order (most recent at top)
In this way, I can always review the previous meetings, as well as the most urgent issues in under 5 minutes, which is good because I work in Agile and in most of the companies that I worked for, this means Fast, not Efficient.
PART II - Electronic notes, scripts, dashboards and spreadsheets
I have a top-level One-Drive folder called "Company_Team_Name", which is also shared between Win10 (Host) and Ubuntu (VirtualBox). I have two child folders under it, "Company_Team_Name/Project" and "Company_Team_Name/Task".
I use the following tools:
Excel, for results of analysis and other stuffs;
SQL, my bread and butter;
Python, sometimes I write Python scripts to help my analysis. I do not like notebooks so I write fully operational programs;
Shell, some Linux command line tools, like csvsql, are very useful for simple tasks;
Tableau, for all dashboards;
Typora, for all research note taking
I organize the project folders in Datagrip, as I pretty much need SQL for every report.
1 - In Ubuntu/Win10, create a new folder under "Company_Team_Name/Project" with the name of the new project, assuming it's a 4+ JIRA long project, not an overnight task.
2 - In Datagrip, create the following folders for each report (I worked long enough to know that we need these reports):
"./Pre_Analysis" -> For pre analysis of the project, usually some data dumps or small analysis of similar features in the past;
"./Small_Analysis" -> We usually release a feature to only 5%-20% of the population for technical sanity check and small analysis (actually same as full analysis but only on most important KPIs);
"./Full_Analysis" -> 100% population Full Analysis, usually performed twice because CXOs will require a more detailed look after reading the first full analysis;
"./Tableau" -> put all dashboards here
3 - SQL scripts, Python scripts, Typora mds and Excel spreadsheets will be grouped under each report sub folder
In the meantime, I'm considering writing a shell script, or a Python script to automate creating those folders. I'm also considering using each Project folder as the venv directory for Python, but since all projects use the same Python package configuration (pandas, odbc, etc.) I just install packages on the primary Python interpreter.
This is a configuration that I find to be extremely efficient to work in an Agile environment.
For professional life: Pen + dot grid notepad - developed independently, but similar to the bullet journal technique. Dot grid plus pens make the whole thing ultra customizable. I can sketch engineering designs, make a calendar, track action items, take detailed notes, all in the same format. The key is to be strict with page numbers, dates, and index as much as possible.
Things I occasionally miss - keyword search (I can still look things up by date or subject in the index), multimedia inserts (think dragging video/photos/sound clips into one note), never ending space (notebooks run out of pages), easy backups (thinking about digitizing with photos or scans), team collaboration (if this is necessary I use Trello).
Things I like - no OS/tech stack compatibility issues, "it just works", lighter then a laptop/tablet, don't need to charge, easy to read, can bring into a secure area (where outside electronics are not permitted), travels well, hard to damage.
For personal life: add Google keep for simple lists, and then a mix of Trello and dot grid for larger projects (less strict formatting than professional life project management).
How I index using pen/paper:
Every page has a number in the upper outside corner.
Every entry into the note book has a title + subject tag, date, and the initials of a list of people linked to that entry. For easy reading and scanning I put all of this on one line. The title and subject are dark lined (thick), followed by the date MM/DD/YY, and then the initials inside a ( ). Each piece of info is separated by a ";". All of the info listed is underlined.
under the intro line, I also break down actions, notes, calendar adds, etc with 3-4 different symbols. All I all this makes it clear and easy to scan quickly as you are looking for things.
Each month I have 4 or 5 pages devoted to organization.
I have a task list. Two bulleted columns. Old tasked are migrated over from the previous month. New tasks are added as soon as they are generated. Completed tasks get an X through the bullet. Migrated tasks get an >. Tasks that are linked to journal entries get a page number and a tag.
I have a calendar page. 1 column, all dates of the month listed . Meetings, important actions and events are are listed by day, or with arrows over multiple days. Linked by tag/page number if applicable.
I have a subject index. Major tags, reoccurring subjects, get a line or two. Page numbers with those subjects are added to the index.
I realize this sounds complicated, but it's not once you get into a routine. The biggest this is it's okay to make "mistakes", and to get used to not having a delete key. Change is part of the notebook. Think of it like a change log. It's also important to be able to see what you change. Since I work in pen, I just make a single line through things I want to change.
Note: when I finish or complete something on a task list or the calendar, I'll mark or change the symbol, I won't cross something out just because I'm done with it.
Finally, I have a bunch of multi color pens I use. They are all the same brand/model, but I tend to use a different color each day. That makes it obvious as you are scanning that you are on the next day. I don't use specific colors for anything in particular, too hard to keep track of.
Hope this helps.
Reposted from an older thread @