Michel Foucault had this to say to contemporary critics of Hegel:
"We have to determine the extent to which our anti-Hegelianism is possibly one of his tricks directed against us, at the end of which he stands, motionless, waiting for us."
It seems any investigation of prior art regarding knowledge base systems comes back to Emacs, where the solution to all problems of note taking and memory retention is patiently waiting for everyone to finally learn Elisp. But Emacs is for dinosaurs, we repeat for the 100th time ...
I have come to the point where I don't think 100% of what shows up in modern editors is a re-inventing the wheel. Multiple cursors, for one, was actually a decent replacement for short-and-not-too-many-lines macros. Roam seems ok if used with discipline.
All the new things do however prove the Emacs model at least partially right: most things can become well integrated into Emacs. Multiple cursors and editable fired (file manager) buffers? Worked from day one!
Does anyone have any research or experience with using "personal" systems like these as a team? I've always seen them described as having a single user, but many of the links seem like they'd be just as powerful for a (maybe small, maybe tightly-knit) team.
I've used RoamResearch in small groups, and it works well. Just don't try to edit the same block simultaneously (last one wins).
If anyone has successfully done something similar with org-roam, I'd love to hear about it. I've never been on a team that would even consider it, given the Emacs learning curve. That said, I recently helped a Vim + Bear user switch to Doom Emacs + org-roam, and he was swimming in days.
Is anyone aware of projects to diff / merge content in collaborative knowledge graphs like these?
org-roam is great for personal use, but it’s not quite yet ready for team use. It kind of breaks when synced across multiple computers likely because it stores absolute paths in a sqlite database.
Author here. You can move the sqlite database to a separate location by setting a variable, and that should resolve the syncing issues. I do this and have the files synced via Dropbox across my different machines.
I tried storing the db in a shared Syncthing directory, but I had to make sure I only had one copy of Emacs running on any given machine. I of course couldn't do that so I would get conflicts with the db file and have to manually clean it up. Did I miss something?
Since these systems have been coming up so much on HN, I have to ask: are there any such softwares that play nicely with images, PDFs, and Word/Excel docs? I've been trying out Devon think and it's pretty good, but I'd prefer to support a FOSS option.
I've used org-noter to annotate PDFs in line, so I'd expect org-roam + links wouldn't hurt. Org will display images inline. I don't have a great answer for links into Excel. Do you need the data to "come back out", or just reference capability?
I can confirm org-roam links + org-noter works well for linking ideas between PDFs. I haven't found anything better, and regularly demo this to friends.
I see a screenshot there defines an anki card? Couldn't find any mention about anki in docs or on the github (I only skimmed though). Would be interesting to see if there is a possible interplay.
I myself use vanilla org mode for this purpose (spaced repetition). My workflow is the following:
1. Create a hierarchical structure with leaves representing
bits of knowledge. For example postgres/indexes{btree, GIN, ...}
2. Have a study session with materials (books, video, etc).
3. Try to recreate a concise version of each subject and place it under leaves, so put text in btree, GIN, etc. If I cannot do something I skip it and fill as much as possible.
4. Verify written, fix if necessary.
Then, the document will sit there for a while and when I feel that I need to review a certain subject I would open a tree node and try to recall the child nodes, or sometimes go directly to leaf nodes and try to explain each. Then verify with the data there, maybe do additional research if something isn't clear.
I initially wanted to make anki cards for every piece of information that goes to leaf nodes, but it seemed that hierarchical organization suits me better. It would be interesting to try an automatic card system that would keep track of when I reviewed the concepts and remind me to do so.
The example in the screenshot uses anki-editor which lets you write anki cards in org-syntax anywhere in your knowledgebase and then sync them with your Anki.
As org-roam itself is not a spaced-repetition tool it does not mention that particular setup in the docs. IMO, the one thing that none of the alternatives to org-roam offers is a (very) vast ecosystem of packages. As your notes are just org files underneath, org-roam plays really well with any other org-mode package.
Wow, that resembles something I wanted to implement myself. It's crazy how most of the things you think of doing are already done.
I think I will migrate to it eventually, thank you.
> I see a screenshot there defines an anki card? Couldn't find any mention about anki in docs or on the github (I only skimmed though). Would be interesting to see if there is a possible interplay.
I saw that too! I love the idea of using Git and an editor to manage my Anki cards.
All the the recent Org Mode content on HN has really gotten me interested. I feel like I’ve tried so many systems over the years (including just using one big text file in Joplin currently) ... this one seems to be very well-liked, but the learning curve, at least for someone who is new to emacs, seems steep. I’ve started by just installing Doom on my clients and am slowly learning my way around.
Two questions for those with more experience:
1. Do you think this is a good system for someone NOT actually working in emacs all day long (I’m not a programmer)?
2. I see some mobile apps out there that claim to allow Org Mode use on phones ... is this system of note-taking / task mgmt actually usable on a mobile device?
I'm one of the people who started using emacs just for org-mode about a year ago. I've been using it daily to manage my schedule, TODOs and projects. It's nice, but IMO overhyped by a very vocal religious minority. I've been spending as much time configuring little things and working around rough edge cases than it has actually saves me. Elisp is still somewhat of a mystery to me and I'm mostly copying and pasting snippets without truly understanding what's going on.
I've encountered so many little issues that resulted in hours of debugging and searching for solutions that the net productivity gain has definitely been negative. True, if I stick with it for 10+ more years, the productivity gain will likely become net positive, but who knows if that will happen. IMO it's quite likely that better systems are going to be invented over the next 1-2 decades. It's clearly outdated.
Only do it if you are willing to invest a large amount of time into learning emacs, and if you are planning to stick with it for decades. The best for me way to describe it is: Emacs is the ultimate procrastination tool. It's great at making you feel productive by letting you do meta things with elisp and configs, when you really should just be getting stuff done.
I've used emacs in a dev environment and about 5 years ago i carted my 3000 or so text files from vim/markdown to emacs/org-mode.
I agree, it is an amazing procrastination tool. My advice is to stick to spacemacs with very few configs. About a year ago i started from scratch with my .spacemacs. Now I've got about 20 lines in there, I use deft/org-roam/fira code, and org-attach and I think the less you fiddle the better off you'll be. Think of it like a 20 year old car-yes you can put a turbo in there, yes, you can chop the springs and lower it, but 1 there will be less people to help you when it breaks, and 2 it will break more often.
Honestly, org-roam is moving so fast that if you aren't in the slack or at least watching the commits, I'd think twice. I'm betting there will be breaking changes in the future, whereas deft is rock solid.
There is an alternative named "Foam" https://github.com/foambubble/foam which is described as a Roam Research alternative which combines VSCode, a Markdown editor and Github. Foam appears to be easier to use for people who don't use emacs a lot.
I have tried using Emacs for other purposes, such as writing code. Ultimately I gave up and went back to Vim.
I have also tried other task management systems (you can do a lot with Org mode, but I use it only to keep notes and to-do lists). Org mode is far superior to the other systems I have tried or otherwise considered.
I think of Emacs as a a programming environment. By itself it’s not useful. It needs applications to make it useful. Org mode is one of those applications. Some programming languages have good Emacs modes so Emacs might be worth using to write code in those languages (I program mostly in Haskell, and the Emacs modes for it leave a lot to be desired, so it’s easier to just use Vim.)
The old jokes about Emacs just needing a good text editor really are true. If someone has programmed Emacs to do what you need, or if you’re willing to do it yourself, Emacs works well. If you don’t want to program your editor, don’t use Emacs. Org mode is so good at what it does that I keep an old Linux Thinkpad around just to use it, though I can use it on my Macs as well.
Though I’ve heard of Org roam, I’m not sure what it would add to my workflow so I haven’t used it.
1. I also only use Emacs for org mode. I'm a relatively recent convert (been a few months now) but it's easily the best thing I've used. My main use case - taking notes in meetings, and converting those notes into tasks that I can see in the org-agenda.
2. I don't use it for coding. If I have to code these days, it's in Sublime (and I'd still choose Vim over Emacs for dev anyway)
(And this is all without org-roam, which I could not get working properly with Mac Emacs. There's only so much time I'm willing to invest in these things)
1. Yes, definitely. People do all sorts of stuff with org-mode that has nothing to do with programming, from todos to publishing. Check out the org manual for use cases.
2. You can't use org-roam on mobile but there's Orgzly for generic org-mode viewing and editing. You need to go through some steps to ensure non-conflicting syncing though.
I keep a small folder with files I want Orgzly to pay attention to below my main "org-roam" folder (mostly scheduled stuff - like Calendar.org and Todo.org). I treat them as "read only" on my phone except for "PhoneInbox.org".
That is where I add items on the go with Orgzly. At some point I move these out into other org folders (inbox processing). This makes capture into Orgzly very, very fast and using Git keeps it all synched up without issues of file conflicts, etc.
Workflow is something like:
1. Sit down at desk, save all agenda files, and do a commit/push (Emacs/Magit) - this is the entire repo including the sub dir with my Orgzly files
2. On phone (Mgit Android app) do a commit/pull
3. Pull down to desk
4. Resolve conflicts (usually none)
5. Do whatever inbox processing on PhoneInbox
6. Redo the commit/push and pull changes to phone.
This keeps an entire repo of my org files on the phone for reference but minimizes the number of files Orgzly has to deal with and also reduces conflicts from editing a file in Orgzly and on phone. Sounds onerous but I might do this a few times a week, possibly daily if I am having a busy week.
I've been using org-mode for over a decade now. I'll be honest, if you aren't using Emacs regularly, I wouldn't recommend using it just for org-mode. I will say that org-mode was one of the things that got me into Emacs though, so maybe if you like it you'll stick around in Emacs? :)
I do like org-roam, but wonder if it's over-engineered. The main thing you need is backlinks, and you can get that without all the complexity of an additional package and sqlite dbs.
Net effect of that tiny elisp snippet is what when I open an org file, I get a buffer beside it (powered by ripgrep/rg) with names + context snippets of all the other files in my org dir that link to it.
Emacs is definitely ugly and antiquated. It has terrible curb appeal. But unlike any "pretty" software I've ever used, if one sticks with Emacs long enough, sweating bullets to learn its odd ways of doing things and customizing it, there comes a point where you suddenly realize it's reading your mind. After that, it's impossible to imagine getting work done on computers without Emacs.
Yes, a common reaction, until newbies (like myself) find configurations like Doom Emacs and Spacemacs and come to realize the opposite. For myself it's only missing a slightly better "rending experience" like VSCode.
I love Spacemacs but due to varying configurations per build on different OS' Emacs either doesnt work at all OOTB with Spacemacs for me, or it works just enough to show up broken. Without cross-platform consistency I'm better off using Neovim + Spacevim which sometimes fails on me due to fonts, but its less broken.
I tried both of them and just gave up. Emacs for me has nothing on a modern IDE and a light weight vim config for file editing. When it comes to reading email, browsers are far better option.
I've used both. The problem I had with ZD is that it uses a non-standard "ligature" (not sure what the non-coding term is) to identify zettels. This means lock in not just to emacs, but to a specific package. Org-roam OTOH uses standard org-mode notation, which means I can freely mix deft with org-roam or any other package that plays nice with org-mode.
There's nothing wrong with saying something like that. Trademark is more concerned with brand names, logos and slogans. The purpose of which is prevent consumer confusion about the source of a product.
After seeing the "Zettlekasten" concept trending on HN, I've been wondering when someone might bring up Emacs org-mode, because the promises of both technologies seem to overlap. This seems like a step in that direction.
I've seen people do both successfully. It plays fine alongside existing non-linked org files. I personally have ~/org with my preexisting files, todos, etc at the top level and (setq org-roam-directory "~/org/roam") as its own thing to try to make it easier to clean up if I decide I don't like it after all. Having a good time so far though.
I recently started using both org-mode and org-roam, but I keep my notes/bookmarks/journals/etc in a notes folder, with a timestamp. So far a combination of aliases, and tags help me find what I'm looking for pretty easily.
"We have to determine the extent to which our anti-Hegelianism is possibly one of his tricks directed against us, at the end of which he stands, motionless, waiting for us."
It seems any investigation of prior art regarding knowledge base systems comes back to Emacs, where the solution to all problems of note taking and memory retention is patiently waiting for everyone to finally learn Elisp. But Emacs is for dinosaurs, we repeat for the 100th time ...