I guess one could use markdown stuff - but as a proper programmer, I already have new, minimalistic, extensible alternative in mind that's :100:% better... :joy:
I am already working on a note taking workflow in vim. The general idea is that I break up my literature in a directory structure that goes <genre/discipline>/<text-name>/<chapter/section>. Then I have a vimscript function that pulls that data and creates frontmatter for my markdown file. I was thinking about linking references with relative paths. Ideally I would find some software that would use the directory structure and path links to build a data structure that I could slap a gui on top of.
As easy to use as a word document or bulleted list, and as powerful for finding, collecting, and connecting related ideas as a graph database. Collaborate with others in real time, or store all your data locally.
Literate programs that can access databases to update spreadsheet tables in my org files which i can export to PDF, etc, etc. I do my diagramming with diaa and the org integration with it, etc.
graphics support in emacs is pretty decent these days. I can keep a PDF of Thinking in Types open in one pane while working on the code examples/problems with intero in another buffer.
I started implementing Zettelkasten for my notes about 2 days ago. It is all plain-text files, edited with vim. Future proof. But I use the rib static site generator to generate HTML, for easy browsing. Since I use mmark parser, I also added an extension to it to convert wiki-style links for zettels. I have more plan in roadmap. As the system evolves, I hope to write blog posts describing my workflow. See also #Random where there is a topic on Zettelkasten already (I guess I should just move over here?)
Another workflow improvement I implemented recently is to use fzf with rg to "quick open" (a la Notational Velocity) any zettel, by search for their title in markdown metadata.
@Sridhar Ratnakumar I was doing the same, but have switched to zettlr for the latex rendering (in markdown files). Zettlr is just really a markdown editor with zotero support.
I use this in a script, in conjunction with i3's floating window mode + tmux + keybinding to implement a layman's dmenu but for opening and editing zettels from anywhere in desktop
In end, whatever tool we pick - what's important is that our notes remain for entire lifetime (of productive work). If you start with something with Zettlr or Bear, that's okay - but in future if you feel that the app is not what you want, you can always export your notes, write a script to migrate it to a new system.
Once my plain-text system evolves to a point, I'd like to open source it - based on rib and nix (should include tools like fzf, rg, tmux, nvim, etc.). So people can just nix-build it and use directly.
I've been experimenting with a workflow for writing notes and blog posts by hand on a Remarkable, converting to text on the fly, and piping it through maildrop scripts that sort it into the right bucket.
@James King that definitely sounds ideal! I haven't been too happy with Remarkable's OCR, have you been using it or are you piping through another ocr reader somewhere in there?
yeah, I was actually writing my own CLI for a vim-based zettlekasten and would use remarkable png exports for any diagrams. The whole thing was just a lot of manual labor as I was bootstrapping it from my index-cards. : (
eventually I gave up -- I'd honestly love to see someone else succeed at this, even if it's just some sort of LSP for zotero-references and zettle-ids.
I use a bunch of maildrop scripts that I can email reMarkable docs to that sort things into folders for me which I can use to later publish stuff from, etc. :+1:
i self-host my mail though on my VPS which makes this kind of thing possible... might not work for everyone, but it's pretty neat to be able to pass reMarkable docs through their OCR and have it drop off in my mail, sort into blog posts, and be ready for draft. :)
What do you all use as the reference system? There is bibtex, but that seems like an overkill - as I'm most likely to reference simple things like Slack conversations or web pages rather than academic papers with complete citation.
@Sridhar Ratnakumar I use zotero for everything -- there is a plugin I use that will save the webpage as a single .html and also request archive.org snapshot it. Zotero will eventually cost money for cloud storage so I just disable that and keep the zotero folder in dropbox
I think anything lighter weight might require a custom solution -- you can always just fork that plugin as a standalone service: https://github.com/leonkt/zotero-memento
A more forward-thinking, decentralized service would upload to the IPFS -- but right now it's usually best to upload to a service that is memento-compliant: https://timetravel.mementoweb.org/about/
Sam Stites Zotero will eventually cost money for cloud storage so I just disable that and keep the zotero folder in dropbox
How is that working for you? Zohoro officially warns against it in their support documentation, for example: Storing the Zotero data directory directly in a cloud storage folder is extremely likely to corrupt your Zotero database and should not be done.. https://www.zotero.org/support/sync#alternative_syncing_solutions
Perhaps it is possible if Zotero is used from only one computer? Because it seems to me that their warning is related to running multiple copies of Zotero with a common Dropbox folder.
@Fintan Halpenny@Sam Stites Do you use a reference system (which, incidentally, lives outside the slip-box) ? I can see why academics would need it. But why should programmers bother?
Source: The goal of this article is to present the generic form of the Zettelkasten (in English—slip-box) as invented by Luhmann himself, as well as why it works and some of the theory behind it. F…
I've decided that I'm not happy with markdown and want extensible, self-contained markup format for zettels that's readable in plain text - not the quickest approach to get started, but hey, maybe I can build something interesting this way :slight_smile: :
New format for making articles (and notes)
28.02.2020
#zettelkasten #zetta #notes.meta
===============================================================================
Let's call them "zettas"
------------------------
Some note here. Some note there.
[image https://some.image]
Some image description
Some more notes. Indentation FTW!:
[code haskell]
main :: IO ()
main = putStrLn "Hello World!"
Plain link: https://some.link
A little bit of math:
[math]
1 + 2 = 3
Some formatting, hopefully as human-readable as possible:
- lists
- /italics/
- *bold*
- ~strikethrough~
- ^superscript
- [code haskell](inline code)
- [code](unknown programming language)
- numeric references [1]
[ ] some
[X] checkboxes
[ ] too
1. numbered
2. points
> Quotes of course.
Optionally With Person's Name
Cross-references to other zettas, like [z 123456-Some-zetta].
Subtitles
---------
that use indentation for their content
|--------|---------|--------|
| tables | because | they |
|========|=========|========|
| can | be | pretty |
|--------|---------|--------|
| useful | some | times |
|--------|---------|--------|
All of this should be parse-able. Plus, one should be able to add "extensions"
- those [code zetta]([_](..)) blocks could be mapped to output with custom
style, e.g. when generating HTML or could return some graphical element to show
in IDE. For example, [code zetta]([image url](description)) shows inline image
with description when turned into HTML. At the end, this format could work
for anything text-oriented, from wiki to blog.
===============================================================================
[1] footnote for my reference
29.02.2020 Some fixes and extensions
@TheMatten your comment reminds me of my frustration with markdown and then searches that have led me to various places; at this point in time I am just using XML for markup (in a blog, not anythign related to Zettelkasten)
I see - I find {X,HT}ML overly verbose and ugly personally (I mean, reason why I started tinkering with gitlab.com/thematten/html-do, which I should finish, sorry Srid :slight_smile:) - but it's simple at least
I've already started building parser for "Zetta" - let's see how it comes out :slight_smile:
That's that "extension" thing I'm thinking about - sort of code blocks on steroids that could be mapped to custom output in parser
It's that extensibility vs. good integration fight - I choose to have wired-in, readable syntax for common forms and lightweight syntax for extensions - basically as if markdown got support for custom extensions
Racket is cool - I hope that one day we get language with Agda-like syntax and type features with Racket-like extensibility - that would be a killer combination
Until then, it will be hard for me to get over those parens :big_smile:
Recently I used algebraic-graphs library to build a graph of my zettels. This then allowed me to build a "tree" of notes and show it in index.html. It is rather cool! I never set out to create hierarchy like you do in Workflowly or Dynalist; only build connections between notes. And yet a hierarchy (more like, 'heterarchy' - because it is a DAG not a tree) evolves organically.
Actually HN is where I first discovered an article talking about the book and the article author's 10 take away points. I think I shared that article with you too :grinning_face_with_smiling_eyes:
@Bolt I'm still in the early stages of this but I started an alternate base in the form of literate haskell files which I intend to heavily document and then use with pandoc to create a website: https://github.com/ssbothwell/hcatlab
I would love to get contributions. Once I sort out the pandoc stuff I'll make a big push to add more modules and document everything.
Now i'm not saying that a community concept isn't useful, but it is also distinctly different -- after all, how is a tool like this for haskell fundamentally different than haskellwiki?
@Bolt I haven't really started on documentation but there are a few modules where I copied content from google. I think Functor and List have some copypasta
@Joel McCracken My idea was to make something like Haskell Wiki that is fully typechecked (and property tested), where the implementations are more pedagogical then what you might see in the real libraries on hackage, and where its totally self contained so you could clone the project and play around with it in the repl.
@Joel McCracken ahh sorry I kinda went off topic. Yeah I think from what I understand of the system, a Zettelkasten makes more sense as a personal knowledge base.
@Solomon Bothwell Could you give an example of what a ... page would look like? Your idea cues to something interesting, but I don't understand what it actually will be, in the end.
@Joel McCracken In Zettelkasten, category hierarchy (heterarchy, actually) is organically built bottom-up rather than top-down. I thought that that aspect is awesome to organically create a powerful Haskell wiki of some sort (that may also act as a book?). The idea is still in its fancy. I hope to produce a prototype soon.
I realized this only after using graph algorithms on my personal zettelkasten. The resulting DAG I rendered as category tree turned out to be rather interesting! More than what I could have done with pre-defined categories of Workflowy/Dyanlist.
Say that with this tool: just anyone could add zettel notes without moderation. However for linking them (to make connections), they will require collaborative agreement. A structure will eventually be built from the ground-up, using notes from various participants.
You reading my mind? That's exactly what I'm working on :-D I'll soon be replacing srid.ca with a Zettelkasten based personal website/blog/knowledge-base comboi.
Indeed, but first let me release the project (titled "Neuron"), that combines Zettelkasten + Wiki (also acts as the Haskell library to build these things) as the official open source repo
Announcing the open sourcing of my Zettelkasten library, which will serve as the base for my private Zettelkasten, and the upcoming "Haskell wiki" as well as personal blog: :megaphone::nerd:https://github.com/srid/neuron
I have made something that is still in beta but can be of use/inspiration to someone. basically is a little CLI that lets me write zettels like they were git commits and insert them automatically in a Graph DB like Neo4J!
I used polysemy to abstract some of the pain away!
Holy crap, just had my first instance of "surprise" my Zettelkasten gave me. Was adding a note on X, and then made a connection to P, Q and even R (something in topic of psychology/actualism). I would have never made this connection pre-Zettelkasten. All this after just 2 weeks of using the system.
For those who were curious: the new zettel was based on something from a Joe Rogan podcast. Because it reminded me of something I've come across a few times. Looked in my zettelkasten, and found those zettels. One of them from a new concept zettel I created, and another from a journal entry. Made a connection between all three, which lead to whole new concept (a label for a hitherto unnamed phenomenon)!
As easy to use as a word document or bulleted list, and as powerful for finding, collecting, and connecting related ideas as a graph database. Collaborate with others in real time, or store all your data locally.
I've found it useful to just use the Delta Chat Android App with two private email addresses. Doesn't support linking very well, but a nice user interface for short notes
@TheMatten I didn't see a lot of feedback about your proposed zetta format, so I signed up just to tell you how awesome that looks. Everything I need, and still mostly un-marked-up plain text.
@Greg Bell Thanks! I've started working on implementation of Pandoc reader that would make it possible to convert it to any common format - though I'll probably need to sort out some specification so that I know what to parse actually :big_smile:
Jonathan Lorimer I have heard people refer to a zettelkasten as a directed acyclic graph
Could you state who that is? I originally referred to it as DAG, but have since corrected that characterization. It doesn't have to be acyclic (although it is good to ensure that there are no cycles; neuron facilitates this by distinguishing links between z: and zcf:).
I think it was you who called it a dag, although I didn't know you corrected yourself, and definitely didn't intend to call you out. I more wanted to bring up the fact that it could have cycles.
@Sridhar Ratnakumar I would be interested in hearing what you thought of the blog post, although I don't suspect that there would be any useful content in it for you. Coincidentally it is also my first blogpost and I am keen to get feedback.
The post is nice and insightful, however, I'm still yet to find the exact minimal set of links to give a solid answer to "what the heck is Zettelkasten" without too much detail. The post above and How One German Scholar Was So Freakishly Productive are probably what's best for now. LessWrong article is just way too overwhelming without conveying the essence
https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125
Zettelkasten — How One German Scholar Was So Freakishly ProductiveLuhmann wrote over 70 books and more than 400 scholarly articles using the Zettelkasten notetaking method.
@Cyril Valyavin I would like to produce an answer to "what the heck is Zettelkasten" by expanding the Neuron documentation here, eventually: https://neuron.srid.ca/2011401.html
In my https://www.github.com/bolt12/zettel I implemented an edit functionality but it's pretty simple and cannot edit if there's some note is connected to the zettel you wish to edit
In my https://www.github.com/bolt12/zettel I implemented an edit functionality but it's pretty simple and cannot edit if there's some note is connected to the zettel you wish to edit
PR that implements it, using a rather innovative thing called "static which" (using nix to provide a static version of which; which embeds runtime binary path in Haskell program so that it is verified to be available on the user's machine): https://github.com/srid/neuron/pull/25
(cont. from #General > Zettelkasten/Emacs) I was wondering why did you chose to denote zettel links as [id](z:/) instead of [link display](z:/id) which feels closer to the way usual markdown links work, is there a reason? I find it weird that everything after z:/ is ignored by neuron but what's between the brackets is taken into account, usually it's the opposite: what's in the bracket is used for display and the link destination is uniquely determined by what's between the parens.
In the beginning it used to be like the way you suggest. But I wanted zettel links to be consistent across board, without any custom link inner text (which would make it inconsistent). So, it then became something like: [.](z://12345). I guess it occurred to me at that point, "why not put the ID as inner text?", and I made that change. Otherwise, the thing inside [...] would be ignored by neuron, which might be confusing.
Basically it is a way to navigate "neighbor" notes (backlinks are one kind). There is also outline notes (aka. overview zettel), and tags - both of those are valuable as well, they let an hierarchical organization evolve, which I find to be valuable (eg: in gleaning common patterns/insights from daily journal entries), but this person does not.
I think a very important thing for the usefulness of ZK software that is hard to discuss is the "visual context" in which you are editing a note. Roam/org-roam has clips of other notes based on backlinks, and TheArchive makes every note link a search so you see a list of the titles of other linked notes. Does Neuron have different options for this?
Neuron already supports backlinks, and I think it would be good to add support for showing those 'clips' (snippets) as well. Can you explain that TheArchive feature in detail @Capn Nemo I don't understand it.
@Sridhar Ratnakumar - hey, so I've been working on my own little series of articles of what is essentially FP design patterns/fundamentals. It's sort of GOF style with a brief section on what each pattern is used for, and a set of examples on usage. I want to add them to the Haskell zettel, just wasn't exactly sure how
@Vance Palacio Yea, it would be great to have zettels titled "Fold", "Optics", etc. I would say they should contain an introductory blurb, with a small example, and links to either a) other zettels, b) or external posts explaining them in detail.
@Sridhar Ratnakumar TheArchive doesn't actually have real links, just search. So click [[20200101010101]]and you'll get a search for that ID, with the notes that have it in the filename (i.e. the note you are 'linking' to) at the top and the notes that link to that note (i.e. they have links to it in their content) afterwards. The result is a list of notes that link to that note, but you just see the filenames, not their content. Just like a normal file directory.
What I really want is a for Neuron (@Sridhar Ratnakumar ) to support org-roam files, so that I can make those cool-looking websites out of my knowledge base.
It manipulates "tree spreadsheets", but what's interesting is that it allows one to "tag" cells and use "hierarchy swap" to morph tree into one where interesting tag appears on top
So you could do stuff like having tree with language cells containing cells with resources about binding to some web APIs, and you could move tag of some concrete API up to reveal all of it's bindings
I imagine this could be interesting alternative to tags in something like Neuron, living in zoomable tree at all times, but supporting similar "graph-like" workflows
I pretty much avoid Obsidian (on desktop) as I'm not a fan of its UX. I use VSCode with these extensions and settings (with the web view of Emanote by side).
But 'tis good to make quick edits on mobile though. If I setup a server with syncthing and Emanote running, I could even get instantly (within seconds) updating web preview.
Discovered CriticMarkup last week which I am hoping will be supported by more tools. I've been thinking of writing an AsciiDoctor plugin which will do this, actually. Since I tend to use AsciiDoctor for most of my writing. I use Roam Research more as a personal wiki than a true Zettelkasten, however.
This seems really cool! I'd love to learn more about your plans. Personally, I'm curious as to your choices and reasoning for thinking neo4j might be the solution as opposed to something lighter weight. Sounds really cool!
@Sridhar Ratnakumar Been giving emanote a whirl this morning. This tool is freaking fantastic! Thanks for making this, definitely gonna convert my personal site soon (if not today)
Sridhar Ratnakumar Been giving emanote a whirl this morning. This tool is freaking fantastic! Thanks for making this, definitely gonna convert my personal site soon (if not today)
Although I notice that the link to the blog folder isn't working. Navigating to vanceism7.ml/blog is a broken page but vanceism7.ml/blog.html is working. Not sure if that's an issue with me or gitlab or something else
@Vance Palacio To fix the blog thing, you want to delete urlStrategy key from your index.yaml. (looks like gitlab is not dealing with pretty urls and folders well)
Oh cool thanks for the tip. Switched the gitlab script to use the emanote docker image and now this repo is feeling real premium! Thanks for the help with setup
Giving a talk next week about documentation and mentioning Zettelkasten as a technique along with Second Brain. Made sure to put Emanote on the list, @Sridhar Ratnakumar so people give it a look. Thanks for making it, I hope things are going well with its development and the research you mentioned earlier.
Giving a talk next week about documentation and mentioning Zettelkasten as a technique along with Second Brain. Made sure to put Emanote on the list, Sridhar Ratnakumar so people give it a look. Thanks for making it, I hope things are going well with its development and the research you mentioned earlier.
The talk is unlikely to be available online as it's internal to my company. However, the gist is that documentation writing is like any other writing and the Zettelkasten method, combined with a good personal wiki tool, is a benefit in this scenario. Does this explain adequately? Want more detail?
End-user documentation generally use https://diataxis.fr/ - which principle conflicts with the atomicity of Zettelkasten. How would you consolidate these two?
I've found that people use zettelkasten in two different ways:
Interlinked notes, with 'backlinks' based navigation
The above ^, plus every note is required to be atomic.
For guide-like documentation it can work if you use it in the first principle only. Example: https://ema.srid.ca/
The second principle can work for stuff like internal wiki - where each page talks about one single thing only (ie. no long-winded explanation talking about disparate things). The bulk of https://neuron.zettel.page/impulse might qualify.
FWIW, I've been using org roam fairly often, and quite like it. It works for my needs. Mostly for non-tech at this moment, but I'm slowly working in technical topics.
https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125
Yeh, what a machine :sweat_smile:
If you want a short book on the method, @TheMatten, I'm reading How to Take Smart Notes which gives you a run down of it and contextualises its use
@Fintan Halpenny Cool, thanks!
zettelkasten.de seems to be nice source of information
Awesome :blush:
Does anyone have any software that they use for this?
I guess one could use markdown stuff - but as a proper programmer, I already have new, minimalistic, extensible alternative in mind that's :100:% better... :joy:
But seriously, it would be nice to have format with only one way of doing things and support for extensions
And I mean, we're programmers, we can always use code editors with plugin support :big_smile:
I am already working on a note taking workflow in vim. The general idea is that I break up my literature in a directory structure that goes
<genre/discipline>/<text-name>/<chapter/section>
. Then I have a vimscript function that pulls that data and creates frontmatter for my markdown file. I was thinking about linking references with relative paths. Ideally I would find some software that would use the directory structure and path links to build a data structure that I could slap a gui on top of.but if I need to just write my notes in a note taking app to get the visualization portion then I am happy to do that
Are you going for the personal wiki approach?
I got really pumped with that
I guess that is what I want
How do you make your personal wiki?
I think you just have a system that can convert your notes to HTML
There's VimWiki but I think I'm going to turn this into a side project
Yeah, I was thinking of having some sort of pandoc setup that would compile my notes
I have also been looking at roam research
https://roamresearch.com/
I'm a filthy emacs user and use
org-mode
for literally everything.Literate programs that can access databases to update spreadsheet tables in my org files which i can export to PDF, etc, etc. I do my diagramming with
diaa
and the org integration with it, etc.I've honestly been thinking about switching from nvim to doom emacs, just for better graphics support
although nvim is super lightweight which is nice
graphics support in emacs is pretty decent these days. I can keep a PDF of Thinking in Types open in one pane while working on the code examples/problems with intero in another buffer.
That's really nice. Might have to give it a spin.
I really like reStructedText + Sphinx + PlantUML or Pencil for diagrams
E.g.: https://acorn-networking.readthedocs.io/en/latest/hardware.html#switches
https://acorn-networking.readthedocs.io/en/latest/architecture.html#seed-office
https://www.zettlr.com/download/ this looks pretty nice
going to try it
I started implementing Zettelkasten for my notes about 2 days ago. It is all plain-text files, edited with vim. Future proof. But I use the rib static site generator to generate HTML, for easy browsing. Since I use mmark parser, I also added an extension to it to convert wiki-style links for zettels. I have more plan in roadmap. As the system evolves, I hope to write blog posts describing my workflow. See also #Random where there is a topic on Zettelkasten already (I guess I should just move over here?)
Another workflow improvement I implemented recently is to use
fzf
withrg
to "quick open" (a la Notational Velocity) any zettel, by search for their title in markdown metadata.@Sridhar Ratnakumar I was doing the same, but have switched to zettlr for the latex rendering (in markdown files). Zettlr is just really a markdown editor with zotero support.
I use this in a script, in conjunction with i3's floating window mode + tmux + keybinding to implement a layman's
dmenu
but for opening and editing zettels from anywhere in desktopI tried Zettlr. Found it to be slow (looks like a Atom app?).
Roam research looks nice though, but buggy (one of my notes just vanished)
In end, whatever tool we pick - what's important is that our notes remain for entire lifetime (of productive work). If you start with something with Zettlr or Bear, that's okay - but in future if you feel that the app is not what you want, you can always export your notes, write a script to migrate it to a new system.
Once my plain-text system evolves to a point, I'd like to open source it - based on
rib
and nix (should include tools like fzf, rg, tmux, nvim, etc.). So people can justnix-build
it and use directly.I've been experimenting with a workflow for writing notes and blog posts by hand on a Remarkable, converting to text on the fly, and piping it through maildrop scripts that sort it into the right bucket.
@James King that definitely sounds ideal! I haven't been too happy with Remarkable's OCR, have you been using it or are you piping through another ocr reader somewhere in there?
I've been using Remarkable's... so I still need to manually clean up stuff from time to time.
yeah, I was actually writing my own CLI for a vim-based zettlekasten and would use remarkable png exports for any diagrams. The whole thing was just a lot of manual labor as I was bootstrapping it from my index-cards. : (
eventually I gave up -- I'd honestly love to see someone else succeed at this, even if it's just some sort of LSP for zotero-references and zettle-ids.
@James King I've been using a reMarkable for like 2 weeks now!
I just have a daily notes, references, projects, and slip box directories
@Fintan Halpenny Welcome to the club! :) It's an awesome device. :)
I'm loving it :grinning_face_with_smiling_eyes:
I'm hand drawing a talk I'm going to give :sweat_smile:
And doing up diagrams for discourse posts
So handy
I use a bunch of maildrop scripts that I can email reMarkable docs to that sort things into folders for me which I can use to later publish stuff from, etc. :+1:
Sick!
i self-host my mail though on my VPS which makes this kind of thing possible... might not work for everyone, but it's pretty neat to be able to pass reMarkable docs through their OCR and have it drop off in my mail, sort into blog posts, and be ready for draft. :)
What do you all use as the reference system? There is bibtex, but that seems like an overkill - as I'm most likely to reference simple things like Slack conversations or web pages rather than academic papers with complete citation.
Related word: heterarchy (https://www.rossdawsonblog.com/HRPS_Heterarchy.pdf)
@Sridhar Ratnakumar I use zotero for everything -- there is a plugin I use that will save the webpage as a single .html and also request archive.org snapshot it. Zotero will eventually cost money for cloud storage so I just disable that and keep the zotero folder in dropbox
I think anything lighter weight might require a custom solution -- you can always just fork that plugin as a standalone service: https://github.com/leonkt/zotero-memento
A more forward-thinking, decentralized service would upload to the IPFS -- but right now it's usually best to upload to a service that is memento-compliant: https://timetravel.mementoweb.org/about/
How is that working for you? Zohoro officially warns against it in their support documentation, for example: Storing the Zotero data directory directly in a cloud storage folder is extremely likely to corrupt your Zotero database and should not be done.. https://www.zotero.org/support/sync#alternative_syncing_solutions
Perhaps it is possible if Zotero is used from only one computer? Because it seems to me that their warning is related to running multiple copies of Zotero with a common Dropbox folder.
@Fintan Halpenny @Sam Stites Do you use a reference system (which, incidentally, lives outside the slip-box) ? I can see why academics would need it. But why should programmers bother?
Nah I haven't had the need to
Another article on Zettelkasten, but this one goes into the practicality of implementing it: https://article69.art.blog/2019/12/20/how-and-why-to-create-a-zettelkasten-a-guide-in-the-vein-of-niklas-luhman/
One of my overview zettels look like this: image.png
I've decided that I'm not happy with markdown and want extensible, self-contained markup format for zettels that's readable in plain text - not the quickest approach to get started, but hey, maybe I can build something interesting this way :slight_smile: :
@TheMatten your comment reminds me of my frustration with markdown and then searches that have led me to various places; at this point in time I am just using XML for markup (in a blog, not anythign related to Zettelkasten)
I see - I find {X,HT}ML overly verbose and ugly personally (I mean, reason why I started tinkering with gitlab.com/thematten/html-do, which I should finish, sorry Srid :slight_smile:) - but it's simple at least
I've already started building parser for "Zetta" - let's see how it comes out :slight_smile:
sure, hope it works out!
Thanks :slight_smile:
i'd like to experiment with this kind of thing sometime too; to me the big issue w/ those custom formats are extensibility
but it seems reasonable to have some core/"blessed" markup forms; honestly i've thought i'd like to just use xml and embed markup in the elements
That's that "extension" thing I'm thinking about - sort of code blocks on steroids that could be mapped to custom output in parser
It's that extensibility vs. good integration fight - I choose to have wired-in, readable syntax for common forms and lightweight syntax for extensions - basically as if markdown got support for custom extensions
yeah; it makes sense. I've pondered over this kind of thing. You might find https://docs.racket-lang.org/pollen/index.html interesting
(I used it for a while, ended up just deciding to rewrite in haskell and use xml as the initial format; i'm still noodling on writing something else.
Racket is cool - I hope that one day we get language with Agda-like syntax and type features with Racket-like extensibility - that would be a killer combination
Until then, it will be hard for me to get over those parens :big_smile:
I didn't like the parentheses at first, but after a time you get used to it.
@TheMatten Have you looked at https://asciidoctor.org/ ?
A little bit - I guess it's pretty close to what I'm thinking about
I may consider it if current solution doesn't turn out well
Recently I used
algebraic-graphs
library to build a graph of my zettels. This then allowed me to build a "tree" of notes and show it in index.html. It is rather cool! I never set out to create hierarchy like you do in Workflowly or Dynalist; only build connections between notes. And yet a hierarchy (more like, 'heterarchy' - because it is a DAG not a tree) evolves organically.Think it is time to create a github repo for "Haskell knowledge base" that uses zettelkasten, and have the community contribute to it. :idea:
The orange site makes no mention of zettelkasten (except for a comment that indirectly references it). Not surprising. https://news.ycombinator.com/item?id=22473209
Actually HN is where I first discovered an article talking about the book and the article author's 10 take away points. I think I shared that article with you too :grinning_face_with_smiling_eyes:
Cool. I discovered two more comments, deep in that thread that references Zettelkasten. But anyway, generally I place much less trust on HN's wisdom.
I decided to do this. First step - open source my zettelkasten site generator.
@James King and any other org-mode users, have you experimented with
org-roam
?https://github.com/jethrokuan/org-roam
I like the idea of a Haskell knowledge base very much!
Solomon Bothwell said:
I haven't. I just use plain old org-mode and email.
@Bolt I'm still in the early stages of this but I started an alternate base in the form of literate haskell files which I intend to heavily document and then use with pandoc to create a website: https://github.com/ssbothwell/hcatlab
I would love to get contributions. Once I sort out the pandoc stuff I'll make a big push to add more modules and document everything.
@James King I use plain org-mode as well but the Zettelkasten features of org-roam look compelling to me.
Solomon Bothwell said:
Cool! :smiley:
@Solomon Bothwell cool, can you point me to an example file? The ones I looked at don't seem documented
I think that part of the idea of these things is less having a community wiki
and more like having things written by specific individuals
(and, for an individual, it is a way to organize your own thoughts)
Now i'm not saying that a community concept isn't useful, but it is also distinctly different -- after all, how is a tool like this for haskell fundamentally different than haskellwiki?
@Bolt I haven't really started on documentation but there are a few modules where I copied content from google. I think Functor and List have some copypasta
@Joel McCracken My idea was to make something like Haskell Wiki that is fully typechecked (and property tested), where the implementations are more pedagogical then what you might see in the real libraries on hackage, and where its totally self contained so you could clone the project and play around with it in the repl.
oh!
sorry i thought we were talking about a person's individual "Zettelkasten" based upon haskell
referring to something @Sridhar Ratnakumar said a while back
@Joel McCracken ahh sorry I kinda went off topic. Yeah I think from what I understand of the system, a Zettelkasten makes more sense as a personal knowledge base.
@Solomon Bothwell Could you give an example of what a ... page would look like? Your idea cues to something interesting, but I don't understand what it actually will be, in the end.
@Joel McCracken In Zettelkasten, category hierarchy (heterarchy, actually) is organically built bottom-up rather than top-down. I thought that that aspect is awesome to organically create a powerful Haskell wiki of some sort (that may also act as a book?). The idea is still in its fancy. I hope to produce a prototype soon.
yeah i mean you could probably make a wiki from it
but im just trying to point out the disticnctyion between a personal KB and a group KB
I realized this only after using graph algorithms on my personal zettelkasten. The resulting DAG I rendered as category tree turned out to be rather interesting! More than what I could have done with pre-defined categories of Workflowy/Dyanlist.
Say that with this tool: just anyone could add zettel notes without moderation. However for linking them (to make connections), they will require collaborative agreement. A structure will eventually be built from the ground-up, using notes from various participants.
yeah thats's interesting
reminds me of the federated wiki idea
It would be really nice if there were a way to structure blog posts
You reading my mind? That's exactly what I'm working on :-D I'll soon be replacing srid.ca with a Zettelkasten based personal website/blog/knowledge-base comboi.
could we make this like a Zettelkasten/WIki topic?
(or not, just a thought :P)
Indeed, but first let me release the project (titled "Neuron"), that combines Zettelkasten + Wiki (also acts as the Haskell library to build these things) as the official open source repo
I'll contribtue some boring haskell stuff to it
just to make yall mad
:P
And they would all be linked to an overview zettel named "Boring Haskell" :-)
(among other things, of course; remember it is a DAG)
https://en.wikipedia.org/wiki/Smallest_Federated_Wiki
yeah
@Sridhar Ratnakumar the inspiration was ncatlab.org
I'm thinking of doing a little side project of my own as well. And maybe use Haskell to parse Zettels and insert them in a Graphs DB.
Announcing the open sourcing of my Zettelkasten library, which will serve as the base for my private Zettelkasten, and the upcoming "Haskell wiki" as well as personal blog: :megaphone: :nerd: https://github.com/srid/neuron
https://www.srid.ca/ is now completely switched over to Neuron. All your notes and blogs belong to Zettelkasten!
https://github.com/bolt12/zettel
I have made something that is still in beta but can be of use/inspiration to someone. basically is a little CLI that lets me write zettels like they were git commits and insert them automatically in a Graph DB like Neo4J!
I used polysemy to abstract some of the pain away!
I'm having trouble with CI, Im still noob, but hopefully everything works in the LTS-14.27
Blog post announcing neuron: https://www.srid.ca/2010101.html
Holy crap, just had my first instance of "surprise" my Zettelkasten gave me. Was adding a note on X, and then made a connection to P, Q and even R (something in topic of psychology/actualism). I would have never made this connection pre-Zettelkasten. All this after just 2 weeks of using the system.
For those who were curious: the new zettel was based on something from a Joe Rogan podcast. Because it reminded me of something I've come across a few times. Looked in my zettelkasten, and found those zettels. One of them from a new concept zettel I created, and another from a journal entry. Made a connection between all three, which lead to whole new concept (a label for a hitherto unnamed phenomenon)!
There is also roamresearch.com Not open-source unfortunately
I've found it useful to just use the Delta Chat Android App with two private email addresses. Doesn't support linking very well, but a nice user interface for short notes
@Anton Lorenzen There's an org-roam group which is currently implementing an open source roam+emacs implementation
That sounds nice! Though I am currently mostly interested in a good android app
Neuron is now ready for public use! https://neuron.srid.ca/
@TheMatten I didn't see a lot of feedback about your proposed zetta format, so I signed up just to tell you how awesome that looks. Everything I need, and still mostly un-marked-up plain text.
@Greg Bell Thanks! I've started working on implementation of Pandoc reader that would make it possible to convert it to any common format - though I'll probably need to sort out some specification so that I know what to parse actually :big_smile:
I'll let you know once it's done :slight_smile:
https://jonathanlorimer.dev/posts/smart-notes-review.html
I wrote up a review of
How to Take Smart Notes
if anyone is interested. I didn't find much useful in the book, but tried to highlight what I did like.Could you state who that is? I originally referred to it as DAG, but have since corrected that characterization. It doesn't have to be acyclic (although it is good to ensure that there are no cycles; neuron facilitates this by distinguishing links between
z:
andzcf:
).And I agree with your conclusion. I skimmed the book, and didn't find it very useful.
I think it was you who called it a dag, although I didn't know you corrected yourself, and definitely didn't intend to call you out. I more wanted to bring up the fact that it could have cycles.
Ah okay. No, I wouldn't mind if you explicitly call me out. :-) That's how we learn...
@Sridhar Ratnakumar I would be interested in hearing what you thought of the blog post, although I don't suspect that there would be any useful content in it for you. Coincidentally it is also my first blogpost and I am keen to get feedback.
The post is nice and insightful, however, I'm still yet to find the exact minimal set of links to give a solid answer to "what the heck is Zettelkasten" without too much detail. The post above and How One German Scholar Was So Freakishly Productive are probably what's best for now. LessWrong article is just way too overwhelming without conveying the essence
@Jonathan Lorimer Just one feedback. Where you mention Zulip you might want to link to that discussion directly: https://funprog.srid.ca/general/zettelkasten.html
@Cyril Valyavin I would like to produce an answer to "what the heck is Zettelkasten" by expanding the Neuron documentation here, eventually: https://neuron.srid.ca/2011401.html
@Sridhar Ratnakumar Yeah, thank you! I'll keep an eye on that
Has anyone done a video showing how they use their Zettelkasten related tools to take notes, update them, and find stuff?
@Asad Saeeduddin i found this YouTube - How to Take Smart Notes | Zettelkasten Method in Roam Research and try to follow his method at the moment. I am still new at Zettelkasten though.
He implemented it with roam research
In my https://www.github.com/bolt12/zettel I implemented an edit functionality but it's pretty simple and cannot edit if there's some note is connected to the zettel you wish to edit
In my https://www.github.com/bolt12/zettel I implemented an edit functionality but it's pretty simple and cannot edit if there's some note is connected to the zettel you wish to edit
A small asciicast of how search looks in Neuron: https://asciinema.org/a/313358
PR that implements it, using a rather innovative thing called "static which" (using nix to provide a static version of
which
; which embeds runtime binary path in Haskell program so that it is verified to be available on the user's machine): https://github.com/srid/neuron/pull/25Sridhar Ratnakumar said:
I just published such a github repo, and the Zettelkasten site, and announced it here! https://funprog.zulipchat.com/#narrow/stream/201385-Haskell/topic/Haskell.20Zettelkasten
(cont. from #General > Zettelkasten/Emacs) I was wondering why did you chose to denote zettel links as
[id](z:/)
instead of[link display](z:/id)
which feels closer to the way usual markdown links work, is there a reason? I find it weird that everything afterz:/
is ignored by neuron but what's between the brackets is taken into account, usually it's the opposite: what's in the bracket is used for display and the link destination is uniquely determined by what's between the parens.In the beginning it used to be like the way you suggest. But I wanted zettel links to be consistent across board, without any custom link inner text (which would make it inconsistent). So, it then became something like:
[.](z://12345)
. I guess it occurred to me at that point, "why not put the ID as inner text?", and I made that change. Otherwise, the thing inside[...]
would be ignored by neuron, which might be confusing.Also, in future I'm considering deprecating (without removing)
zcf:/
in favour of something like[12345](z://?type=ordinary)
.Alright, makes sense
Just came across Andy Matuschak's Zettelkasten, and it's pretty incredible:
https://notes.andymatuschak.org/About_these_notes?stackedNotes=zUw5PuD8op9oq8kHvni6sug6eRTNtR9Wqma&stackedNotes=z3SjnvsB5aR2ddsycyXofbYR7fCxo7RmKW2be&stackedNotes=z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C&stackedNotes=z7kEFe6NfUSgtaDuUjST1oczKKzQQeQWk4Dbc&stackedNotes=zUMFE66dxeweppDvgbNAb5hukXzXQu8ErVNv&stackedNotes=zg3fYweZpbHeBTpcYke5mF4ZfrJutYcQEtFo&stackedNotes=z71FeBJGqZdyA78UNTwXCWcMGUVCWk1XsLvPS&stackedNotes=z5aJUJcSbxuQxzHr2YvaY4cX5TuvLQT7r27Dz&stackedNotes=z28QkpK3vRKQTacjFDfGYBhCXHqHuVWJzny9&stackedNotes=z6f6xgGG4NKjkA5NA1kDd46whJh2Gt5rAmfX
Thanks for the link. Both the system and the content are fascinating.
Yea, I found that a few days ago too - did you find it via org-roam's issue tracker? It's a beautiful UI. I had fun trawling through it!
That looks nice indeed. Reminds me of wiki and Smallest Federated Wiki.
Ah, stacked notes ... interesting way to navigate notes. I'm gonna think about it! I also like note link preview tooltips.
@Sridhar Ratnakumar He gets into the reasoning behind that here (https://notes.andymatuschak.org/Peripheral_vision?stackedNotes=zT6iA52811NuLvbU9W8ixeDc3KUqyCT1wN8). I think it's a great idea to deal with the all the jumping around necessitated by note atomicity.
Basically it is a way to navigate "neighbor" notes (backlinks are one kind). There is also outline notes (aka. overview zettel), and tags - both of those are valuable as well, they let an hierarchical organization evolve, which I find to be valuable (eg: in gleaning common patterns/insights from daily journal entries), but this person does not.
But the hierarchy is often built bottom up (with patterns emerging over time, not at start), than top-down.
I like the "Peripheral vision" notion in note taking. There has to be a better visual representation for that than stacked notes, though.
I think a very important thing for the usefulness of ZK software that is hard to discuss is the "visual context" in which you are editing a note. Roam/org-roam has clips of other notes based on backlinks, and TheArchive makes every note link a search so you see a list of the titles of other linked notes. Does Neuron have different options for this?
Neuron already supports backlinks, and I think it would be good to add support for showing those 'clips' (snippets) as well. Can you explain that TheArchive feature in detail @Capn Nemo I don't understand it.
... Though neuron-mode (emacs) doesn't yet support backlinks; but it would be done eventually.
@Sridhar Ratnakumar - hey, so I've been working on my own little series of articles of what is essentially FP design patterns/fundamentals. It's sort of GOF style with a brief section on what each pattern is used for, and a set of examples on usage. I want to add them to the Haskell zettel, just wasn't exactly sure how
@Vance Palacio I think this might help:
https://funprog.zulipchat.com/#narrow/stream/234801-VideoChat/topic/Improving.20Documentation/near/196030052
@Vance Palacio Do you have a link to the content as it exists right now?
It all just exists in a gitlab repo as a bunch of markdown files
https://gitlab.com/vanceism7/learnbyexample
Specifically
https://gitlab.com/vanceism7/learnbyexample/-/tree/master/guides/FunctionalProgramming
@Vance Palacio Yea, it would be great to have zettels titled "Fold", "Optics", etc. I would say they should contain an introductory blurb, with a small example, and links to either a) other zettels, b) or external posts explaining them in detail.
Do you currently have a website or blog?
@Vance Palacio Maybe we should continue here: https://funprog.zulipchat.com/#narrow/stream/234801-VideoChat/topic/Improving.20Documentation
@Sridhar Ratnakumar TheArchive doesn't actually have real links, just search. So click
[[20200101010101]]
and you'll get a search for that ID, with the notes that have it in the filename (i.e. the note you are 'linking' to) at the top and the notes that link to that note (i.e. they have links to it in their content) afterwards. The result is a list of notes that link to that note, but you just see the filenames, not their content. Just like a normal file directory.Announcing r/Zettelkasten's new public zettelkasten (based on neuron :-D ) ! https://reddit.zettel.page/
Lobster discussion: https://lobste.rs/s/syoikp/zettelkasten_how_one_german_scholar_was
https://news.ycombinator.com/item?id=23386630
https://news.ycombinator.com/item?id=23445742
Is anyone using org-roam? if so, do you like it?
@Joel McCracken , I'm using it, and really love it so far. I also use org-roam-server which is truly next-level.
Cool! I'll check it out
What I really want is a for Neuron (@Sridhar Ratnakumar ) to support org-roam files, so that I can make those cool-looking websites out of my knowledge base.
yeah that would be a cool add-on
of course you could also customize org's html export
(if you so desired!)
org-roam-server has some ideas I could steal for neuron's Impulse feature.
(That's to be part of neuron 2.0 -- https://twitter.com/sridca/status/1341793955063672832 )
Thinking about neuron 2.0 https://app.element.io/#/room/#neuron:matrix.org https://twitter.com/sridca/status/1341793955063672832/photo/1
- Srid (@sridca)(its all ghcjs/reflex, as foundation)
First 2021 HN post on zettelkasten
https://news.ycombinator.com/item?id=25760066
Another https://hackerweb.app/#/item/25802277
this is really cool! I've never been a note taker but I'm gonna try this!
How do you all handle math? I decided it just use MathJax markup, but I'm curious if there's a better way
https://www.worldofbs.com/why-documentation-sucks/
Ask HN: How do you organize your knowledge?
https://news.ycombinator.com/item?id=26935838
https://news.ycombinator.com/item?id=27513008
This program is so cool: https://strlen.com/treesheets/
It manipulates "tree spreadsheets", but what's interesting is that it allows one to "tag" cells and use "hierarchy swap" to morph tree into one where interesting tag appears on top
So you could do stuff like having tree with language cells containing cells with resources about binding to some web APIs, and you could move tag of some concrete API up to reveal all of it's bindings
I imagine this could be interesting alternative to tags in something like Neuron, living in zoomable tree at all times, but supporting similar "graph-like" workflows
Speaking of tree structure, Emanote (neuron successor) recently got note embedding feature: https://note.ema.srid.ca/demo/custom-style#advanced-styling
You can even do recursive embedding, which is visually isomorphic to trees (as if looking through the root from the top).
(Gitlab support requires this)
Obsidian just released a mobile app: https://archive.is/VwH5p
Works pretty well with Syncthing on Android. No proprietary / centralized login/sync needed.
And the markdown format seems simple enough that you can use a regular editor on desktop if you want, and still be obsidian compatible
I pretty much avoid Obsidian (on desktop) as I'm not a fan of its UX. I use VSCode with these extensions and settings (with the web view of Emanote by side).
But 'tis good to make quick edits on mobile though. If I setup a server with syncthing and Emanote running, I could even get instantly (within seconds) updating web preview.
BTW, neutriNote CE and Markor are nice apps for editing markdown
(Both FOSS)
Disagree on markor. 5 years ago I would have agreed, but it seems to be trying to be more and more and it's not really excelling at any of those.
etc.
In fact, one of the reasons I'm so excited about obsidian on mobile, is that it's sooo much better for markdown editing than markor ever was.
https://news.ycombinator.com/item?id=28894481
How to build a second brain as a software developer
https://aseemthakar.com/how-to-build-a-second-brain-as-a-software-developer/
https://news.ycombinator.com/item?id=29188418
Discovered CriticMarkup last week which I am hoping will be supported by more tools. I've been thinking of writing an AsciiDoctor plugin which will do this, actually. Since I tend to use AsciiDoctor for most of my writing. I use Roam Research more as a personal wiki than a true Zettelkasten, however.
I'm planning to work on a second brain tool that will subsume everything, Zettelkasten, notes, tasks, calendar, etc. etc.
In research phase right now. Probably will use neo4j. No plain-text limitation.
This seems really cool! I'd love to learn more about your plans. Personally, I'm curious as to your choices and reasoning for thinking neo4j might be the solution as opposed to something lighter weight. Sounds really cool!
Couldn't find anything light weight really. Neo4j seems to be the only out there. I'd use it for exploration, at least. Right now I use a whiteboard.
https://news.ycombinator.com/item?id=29996037
https://news.ycombinator.com/item?id=30098219
@Sridhar Ratnakumar Been giving emanote a whirl this morning. This tool is freaking fantastic! Thanks for making this, definitely gonna convert my personal site soon (if not today)
Vance Palacio said:
Great! Once you convert it, let's add it to https://emanote.srid.ca/examples
Alright my site is up.
vanceism7.ml
Although I notice that the link to the blog folder isn't working. Navigating to vanceism7.ml/blog is a broken page but vanceism7.ml/blog.html is working. Not sure if that's an issue with me or gitlab or something else
@Vance Palacio To fix the blog thing, you want to delete urlStrategy key from your
index.yaml
. (looks like gitlab is not dealing with pretty urls and folders well)Is the source available somewhere?
Btw, query listing can be sorted by date. You basically want to add
{.timeline}
next to the 'query' identifier. See https://raw.githubusercontent.com/srid/srid/master/Projects/Ema.mdThis will use the 'date' YAML property to sort the listing.
Ah I see, cool! Thanks for the info, let me try fixing these
Oh and the source is here: https://gitlab.com/vanceism7/site
You can use the docker image in Gitlab Pages, btw. No need to commit the HTML in git.
Oh cool thanks for the tip. Switched the gitlab script to use the emanote docker image and now this repo is feeling real premium! Thanks for the help with setup
Giving a talk next week about documentation and mentioning Zettelkasten as a technique along with Second Brain. Made sure to put Emanote on the list, @Sridhar Ratnakumar so people give it a look. Thanks for making it, I hope things are going well with its development and the research you mentioned earlier.
Jonathan E. Magen said:
Nice! Will the talk be available online?
I'm really curious how documentation & Zettelkasten can be coupled.
The talk is unlikely to be available online as it's internal to my company. However, the gist is that documentation writing is like any other writing and the Zettelkasten method, combined with a good personal wiki tool, is a benefit in this scenario. Does this explain adequately? Want more detail?
End-user documentation generally use https://diataxis.fr/ - which principle conflicts with the atomicity of Zettelkasten. How would you consolidate these two?
Can content in a Zettelkasten not lead to formats like articles/papers, books, etc.? So why not also documentation?
I've found that people use zettelkasten in two different ways:
For guide-like documentation it can work if you use it in the first principle only. Example: https://ema.srid.ca/
The second principle can work for stuff like internal wiki - where each page talks about one single thing only (ie. no long-winded explanation talking about disparate things). The bulk of https://neuron.zettel.page/impulse might qualify.
Some folks already use Emanote for docs; examples:
They use it in the way of it being like readthedocs but with backlinks; no atomicity is involved.
Sridhar Ratnakumar said:
This makes sense. Thanks for your thoughts, friend!
https://news.ycombinator.com/item?id=30879327
https://news.ycombinator.com/item?id=30903940
FWIW, I've been using org roam fairly often, and quite like it. It works for my needs. Mostly for non-tech at this moment, but I'm slowly working in technical topics.