Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Org-roam-UI – graphical front end for exploring your org-roam Zettelkasten (github.com/org-roam)
134 points by coldblues on Aug 1, 2021 | hide | past | favorite | 44 comments


org-roam + org-babel + emacs-jupyter has been my default literate development environment for ~1 year.

This package is a hugely welcome upgrade to org-roam-server, and I'm excited to integrate it with my workflow. Thanks!!


I was a pretty big emacs fan in undergrad about 15 years ago. Since then it seems like editors/ides have advanced and eaten emacs’s lunch, and I can barely understand my own .emacs anymore due to disuse.

Org mode is the one thing that keeps me interested in emacs, but every time I try to get into it I get hit by emacs anachronisms.

I’ve not used this tool or Roam, but are there modern org-mode front ends?

Aquamacs is a macOS-flavored emacs distro, but it still intentionally feels like emacs. I’d really like an “org-mode-only” app that feels modern and lets me forget I’m using emacs under the covers.


> Since then it seems like editors/ides have advanced and eaten emacs’s lunch

Is that true? I know that popular editors have tons of extensions available (with VSCode leading the pack), but is any other editor as programmable and user-tweakable as Emacs? I think Atom was an attempt in that spirit, but its momentum was completely killed by VSCode.

As an example, which other app will let you link to emails, or specific locations in code, in your organizational tool?

I feel that Emacs puts the user in the driver's seat in a way that almost no other piece of modern software even comes close. The only comparable, in my mind, is the *nix/GNU ecosystem, and that's about as ancient as Emacs.

----

PS: One more option that hasn't been mentioned yet is Neorg (Org+Neovim). Was on HN recently: https://news.ycombinator.com/item?id=27802153


Actually, I forgot to pay homage to LightTable. It had a fantastic vision, a compelling initial demo, and showed it was possible to radically innovate in the editor landscape. IIUC, it played a role in inspiring Atom.

Pity things turned out the way they did. I sometimes feel that if the project had stuck it out for a decade with a slightly less ambitious goal, it could have really moved the computing experience forward — even if only for developers / power users.


> Since then it seems like editors/ides have advanced and eaten emacs’s lunch

Citation needed, my Emacs talks to the same LSP daemon that my coworkers' VSCode instances talk to, and Emacs has a lot of text editing features VSCode doesn't

Plus VSCode is just uglier, and is Microsoft and is it even GPLv3?

Maybe I'm becoming irrelevant and I'm going to find myself without a job soon


I'm all for Emacs, but calling it prettier than VSCode is a bit of a stretch :D

Of course aesthetic taste is quite subjective, but I think a lot of people will agree that most modern software (including VSCode) looks much slicker than Emacs (excluding extensively customized outliers).

As for my personal taste, Atom is by far the visually most appealing editor I've seen. I don't know enough graphic design to articulate the difference, but I wonder why the look & feel is not replicated more widely.


> excluding extensively customized outliers

I might be wrong here but extensive customization is hallmark of Emacs.

I would find it very odd if someone wouldn’t customize its presentation to The Exact Way They Like.


Emacs is a text-based editor so it cannot be customized as much as a browser can.


Emacs is a Lisp machine. Even Firefox during its XUL heyday was not as customizeable as Emacs is. Nowadays, with browsers using WebExtensions, browsers are laughably inflexible by comparison.

Here are a few topics for you to consider:

* Function advice (https://www.gnu.org/software/emacs/manual/html_node/elisp/Ad...)

* Generalized variables and the cl-letf macro (https://www.gnu.org/software/emacs/manual/html_node/cl/Modif...)

* Hooks

* Lisp macros in general

* Special variables and dynamic binding (note that Emacs Lisp has supported lexical binding for years; some still don't know this)

* Buffer-local variables

* Live evaluation of Lisp code, including redefining functions and variables, vs. building and loading an extension in a browser

Or maybe you were just joking, in which case, you got me good!


Not joking. Emacs can't even do wysiwyg word processing, let alone the kind of interactive environments that browsers support.

Chromium/Electron is a Javascript machine, with graphical debugger; network monitoring; the world's largest package ecosystem; tab-local variables [1], built-in support for peripherals via webUSB, obviously live evaluation of js, 3D webgl, ...

[1] https://developer.mozilla.org/en-US/docs/Web/API/Window/sess...


It feels like you haven't gotten deep enough into Lisp and Emacs. Emacs is quite the epitome of malleable software systems. There isn't a single software product as flexible and configurable by design.

Just because it is currently doesn't have a graphical layer or cannot run a browser engine within (which is just a matter of time), that doesn't make it less flexible.


That's just stating the claim again, not providing evidence. How many browser extensions have I written? How many emacs extensions? Fwiw I did everything in Emacs for many years.

Regardless of the differences in the core platform, the ecosystem is where the real power is. The number of full-time paid contributors to Chromium/Electron/VSCode is dramatic, and it shows. The reach of the VSCode ecosystem means there are now competitive ports of Magit and other key packages.

Maybe the Emacs system has a little more power than a browser. VSCode disallows extensions from messing with the DOM to ensure stability; Emacs doesn't, which means less stability and more flexibility. But it's not much use in practice, or I haven't seen the use.

Anyway, Javascript and Elisp are both basically low-end lisps, largely written in C/C++, and running on x86 machines. Neither resembles the theoretical Symbolics machines of yore.

Maybe with billions in funding Emacs could start competing with the Chromium/Electron/VSCode teams. But that's not gonna happen. I can't afford to write my whole environment alone, so I go where the people are.


> Maybe with billions in funding Emacs could start competing with the Chromium/Electron/VSCode teams. But that's not gonna happen

We've seen that many times. With proprietary and free editors and IDEs. Eclipse, Delphi, NetBeans, Sublime, Atom, XCode, MonoDevelop, InteliJ, Visual Studio, VSCode, etc.

Many times in history there were "Emacs and Vim killers", and yet after over 45 years, Emacs is still here and Vim keeps improving. I can bet that 20 years from now and without billions spent on funding, Emacs still would do some things better than any of existing IDEs.


What I like about emacs, from an aesthetic perspective, is that I can turn off everything except the buffers and the minibuffer, and quickly tile the views I need.


VSCode's licensing is a travesty. Nobody at a company with any serious IP should be using it anywhere.


> I was a pretty big emacs fan in undergrad about 15 years ago. Since then it seems like editors/ides have advanced and eaten emacs’s lunch, and I can barely understand my own .emacs anymore due to disuse.

If I'm writing Java I'll definitely use a JVM hosted IDE like Eclipse, but other than that I'm just not seeing this. For example, I recently decided to try VSCode for a popular scripting language and if anything configuring it to work properly was actually more difficult than getting lsp-mode and few helper packages working in GNU Emacs.

Spacemacs[1] is another popular "modern" Emacs distribution that you may be interested in.

[1] https://www.spacemacs.org/


Logseq might fit the bill: https://logseq.com/ I've been using it for a few weeks now after switching over from Roam and it's been great. Everything is plaintext (I use it in markdown mode, but they support org-mode).


I wrote a blog post about integrating org-roam with logseq [1]. Unfortunately this doesn’t work with the the new V2 org-roam update, so I am sticking with V1 for now.

[1] https://coredumped.dev/2021/05/26/taking-org-roam-everywhere...


Such a tool would inevitably fall behind in what it supports and would lack as well useful integration. It would lack depth and breadth.

If prior to 2020 it would have lacked roam support. If prior to this month it would lack roam v2. Then again its useful that org links can link to everything from a page in a document to an email which isn't possible if disconnected from the rest of the emacs ecosystem.

What does it even mean for something to be "modern"?


I started from bare emacs configuration and can safely say I almost never touch a line of lisp now that I've switched to Doom emacs. I just uncomment some packages I want (like magit, org-roam, etc.) and it runs off and configures the packages in a non-conflicting manner ready for production.

That's not saying banging on lisp to get your emacs into that perfect state isn't fun, just that now that I'm a capitalist worker I don't really have the time for it any more. Highly recommended.


I’d second Doom emacs, I consider it the best way to use Vim :D

However, I am using it less and less, and I find myself using VSCode more and more. I now very rarely find myself using Doom emacs or vim. I’d say for small changes I still use them, but any time I think I’m going to be doing a significant amount of work in a directory or file, I always open it in VSCode. Not sure when that change happened, honestly.


Look for Obsidian[0]. It's very similar, but operates on it's own Markdown flavour (with imports for Rome and Zettelkasten), that allows you to create pretty elaborate networks of info.

[0] https://obsidian.md/


"Prelude is an Emacs distribution that aims to enhance the default Emacs experience"

https://prelude.emacsredux.com/en/latest/


I've seen several posts about Zettelkasten lately. What is it with this whole Zettelkast way of taking notes? How did Zettelkast become so popular out of the sudden?


The book "How to Take Smart Notes" and YouTube productivity gurus, most likely. I like the method, it's a natural way to structure your notes and spend more time actually writing them than categorizing.


It's a fad, just like bullet journaling was a few years ago.

I'm certain that (again, like bullet journaling) underneath the hype is a decent productivity system, but you have to wade through hordes of breathless fans eager for you to click that subscribe button, etc.


It's not a fad. The methodology has existed since the 14th century. It's just like with Meditation - those who firmly believe that meditation doesn't work usually are those who never practice it. The difference here - Zettelkasten doesn't require years and years of practice to reap the benefits.

And to answer the previous commenter,

> How did Zettelkast become so popular out of the sudden?

It has not become popular out of a sudden. Different applications for the slip-box method for taking notes existed long before. Roamresearch has popularized it relatively recently. I guess maybe they've done something right; I don't know, I never used Roamresearch myself.


Zettelkasten is just one incarnation of the hypertext idea. Wikis and the web being others. Calling it "Zettelkasten" is perhaps a fad, but the thing itself will never go out of fashion because it mirrors our thinking in a fundamental way.


it definitely is a fad but of all the fads the backlink based 'unstructured' way to take notes is honestly a very smart idea. It's the first time I've actually stuck with note-taking because it sort of organizes itself which for me was always the biggest problem with notes.


To me, having to manually make links between notes doesn't seem unstructured, nor does it seem self-organizing. What if it doesn't occur to me to make a link in A pointing to B? Then if I'm reading B and looking at its backlinks, how will I know it's related to A?


I can't speak for every implementation, but in the one I use (logseq) if you say back-link 'Podcasts' in 'Audiodrama' then in 'Audiodrama' 'Podcasts' will show up as a 'linked reference' like so (https://imgur.com/5FADCI5), as well as a bi-directional connection in the graph you can get of all your links.

Over time this produces something like this (https://imgur.com/6I9ojRG), which is what I meant by self-organizing. Just with back-links without having to create any hierarchies (what i meant by unstructured) you get a data-structure that is actually still pretty insightful.


Every time emacs comes up there's the obligatory hate rant about how they moved on to better more modern tools with vscode being praised but everytime I've tried it, its slower than emacs and crashes more often or just flat out does not work. It seems its only useful for js.

I'm always on the lookout for better tools but I honestly feel there is nothing out there. My requirements are of course an emacs but better, why would anyone switch to worse tools?. It has to be faster, more stable but be customizable, its fine if it lacks features just as long as I'm allowed to add them myself. So far I haven't found anything.


Did it ever cross your mind that comments such as yours contribute to the rant you're complaining about?

It really is a self-feeding flame war, and I agree with you, it's kinda annoying.


What are you doing that is making vscode crash? Can you reproduce it? I've never had that happen, and I am sure they would take a bug report.


I usually run under linux, with C or C++ codebases. I try it every 3-6 months based on recommendations I read online, it starts fine but after a while it slows/freezes/crashes. I don't bother to do reports to microsoft anymore, wasted enough time doing that with vs studio.


VS code crashes quite often on linux for me, especially when working with files over ~4k lines.


You could do all this work, or you could just use https://obsidian.md/


But then, how would you insert a link (in a note) to a specific line in some codebase? In a different branch. Or a link to a specific email thread in a mailing list?

How would you attach images to your notes and manage them in a git repo? How would you encrypt your notes?

How do you insert current or tomorrow's date in a note? How do you find all the notes tagged with a date? ¹

Most importantly, what would you do when you accumulate several thousand notes, and suddenly Obsidian authors ask you to pay for it?

Having my note taking system in Emacs has incredible benefits - I have google-translate, thesaurus, dictionary, spell-checker, Grammarly checker, etc., All right here, everything is accessible without focus and context switching. And, of course, I can change virtually any behavior of any part of the system. And I never have to worry that someday, someone would ask me to pay for "premium features".

-----

¹ I don't know, perhaps Obsidian has some of those features, and maybe they are even better and more intuitive than in Emacs, but I doubt it would ever be as versatile.


Obsidian has all of this functionality. And underneath it all it’s just markdown files. If they go away or start charging you’re left with your notes just fine.

I don’t have a dog in this or really care what other folks use - but just fyi for others reading.


I’d love to learn more about your setup, especially how you attach images. Still tuning my own org mode config!


Some functionality I mentioned is built-in, some is done via packages:

- google-translate

- mw-thesaurus

- gucong/emacs-sdcv

- emacs-grammarly/lsp-grammarly

To make Org mode take care of versioning of attachments for you: https://orgmode.org/manual/Automatic-version_002dcontrol-wit...


Not op. Use the misnamed org-download.


obsidian has a whole number of these things - to what degree, I do not know, but it's definitely worth looking


Obsidian is very nice - my kids use it. But for me personally, Org-mode offers far more than Markdown can ever possibly have. And Emacs, Org, and Org-Roam is an incredibly flexible system - one can tune it to almost a crazy degree and become immensely efficient with it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: