Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's a personal wiki. I think it's invaluable, and since I started building mine with org-mode I feel much more accomplished. That's because some tasks' natural outcome is a knowledge bit, which you can't store otherwise.

In the old times, many Germanic scholars would build a similar thing using flashcards. It was called a zettelkasten.



Thanks for providing the term. I was surprised to find a well-organized site on this topic: https://zettelkasten.de/posts/zettelkasten-improves-thinking...


There's a blog by a (German?) scholar that covers all kinds of Zettelkastens extensively. Apparently the author is heavily inspired by the method of the german sociologist Niklas Luhmann:

https://takingnotenow.blogspot.com/2007/12/luhmanns-zettelka...

https://takingnotenow.blogspot.com/2016/09/luhmanns-zettelka...

https://takingnotenow.blogspot.com/2016/08/my-translations-o...

And, just for quick reference, his entire 'zettelkasten' tag:

https://takingnotenow.blogspot.com/search/label/Zettelkasten


I've recently came across this method. This seems to be a nice minimalistic implementation of the zettelkasten method: https://github.com/renerocksai/sublimeless_zk

Also some other wikis have similar principles, for example: https://tiddlywiki.com/static/Philosophy%2520of%2520Tiddlers...


How are you using org-mode for this?

I have recently switched all my note-taking and task/todo management to org-mode, but I'm still figuring out how to use it properly. At the moment, I just have a personal.org, refile.org and project specific .org files, all kinda taking the shape of headings with sub-sub-sub-sub-headings inside until there is either none or some content inside, but a personal wiki, it doesn't feel like. It feels more like ordered mess, kinda. It's definitely better than anything I've ever used before.

Any good tips you want to share?


That's not an easy question. I think you need to enforce some style guide, like Wikipedia does.

org-mode is a bit like C++ or LaTeX. I say this as a good thing. It has tons of features, but you need to choose what to use and what to keep out.

For me, something that works great is to keep all org files in the same folder, with a flat structure. That includes my task list and my calendar. I version control everything, except organizational things that change often instead of growing like articles. I also keep out of version control first quick drafts of any article.


Thanks for the reply!


It’s nice to have a personal man page folder on different subjects. I personally use a binding in Emacs to bring up a helm buffer to select it quickly. Also, a tab completion function tied to an alias for it called “mm” so you can access it from the command line too is useful.


Org-wiki and linking between pages is a godsend. Add a keybinding to search pages using helm and you’re up and running.


I guess I should check out helm since it's been recommended a couple of times now!


I don't think you really need Helm explicitly for this (though you could make use of it if you're using it for other things).

The standard Emacs function for prompting for data with autocomplete is completing-read. You could build an elisp function that prompts for the name of a wiki file with completing-read, and then visits it. The autocompletion will be provided by whatever package you have configured globally - be it Helm, or Ivy, or something else.

A quick example how I started using this feature - I have my half-done invoicing system (for turning time clocked on org-mode tasks into PDF invoices). An entry point to invoicing a customer may look like this:

  (defun invoice-customer (customer-name)
    (interactive (customers--completing-read-customer))
    ;; TODO Create an org document containing the invoice table and link.
    (message "Invoicing %s" customer-name))
Note that the "interactive" declaration has a function call in it. Now the completing-read call:

  (defun customers--completing-read-customer ()
    "To be used as a value of `INTERACTIVE' declaration for functions that need to read a customer value."
    (list (completing-read "Customer: " (mapcar #'car *customers/customers*) nil t nil nil *customers/current-customer*)))
There's a bunch of parameters to completing-read, but at a glance you can see the prompt ("Customer: "), code generating a list of entries (I'm doing a mapcar over customer database; you might want to do a mapcar over a call to directory-files), and an optional default value.

Or, instead of all that, you can do what I actually do for the wiki - bookmark the wiki folder itself (with C-x r m in a dired buffer), and use C-x r b foldername to jump to it, and use incremental search in the resulting dired buffer to find the entry you need.


Helm is great. Others prefer Ivy, but I prefer the way Helm works.


Yes It is a personal wiki I started mine after reading Pragmatic Thinking recently, I have some examples from others too in my wiki https://github.com/hrnn/wiki/wiki#personal-wikis-examples


Another great list of personal knowledge bases I found by clicking through your links:

https://github.com/RichardLitt/meta-knowledge


I built mine with... Google Docs because I wanted something simple that was accessible with all my devices.

Knowledge pays compound interest: the more you know, the easier it is to learn new stuff (more branches on the semantic tree). Just jotting down simple unconnected facts and organizing them later has helped me become a much competent person.


I did something similar. Mine is a bunch of text files stored in Dropbox.


Similar for me - a bunch of text files (org mode) in a Dropbox folder.

I'm thinking about publishing a subset of it, but at this point it's one big mix of general knowledge and pretty personal stuff.




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

Search: