Emac’s Org Mode will improve your software engineering
medium.com
medium.com
Unless I'm the only one that is frustrated that you never know where to find vegetable oil in the grocery store. Is it in the cooking aisle near the flour, or the condiments aisle near the vinegar? Seems like every store chooses differently since it doesn't make sense for them to put it in both places.
I'm a avid command-line and vim user and for a long time made use of text based todo and note taking tools. Whilst my naming schemes and structures always made perfectly logical sense, they never flowed when in use. After many years I concluded that I needed something more than just a river of text and started using tools like Trello and Todoist. Whilst my inner nerd feels like I have failed the command-line in some way, I'm really getting much more out of my tools than I have to put in.
I prefer them to todo lists cause they force priorities by limiting work-in-progress.
Though "chunking" (group related stuff) recursively is exactly how the brain works https://en.wikipedia.org/wiki/Chunking_(psychology)
Regarding non-hierarchical information organization however, keep in mind that this article was only a very quick intro to the most basic possibilities of org-mode.
Org-mode actually provides a pretty powerful set of non-hierarchical structuring functionalities by using tags.
Within org-mode you can add arbitrary tags to your items, you can define custom sets of tags for auto-completion, you can get a filtered view based on a tag search across multiple documents and so on (see for example http://sachachua.com/blog/2008/01/tagging-in-org-plus-bonus-...).
In addition to tags, org-mod provides a second similar mechanism with properties (searchable key/value pairs annotations to your items).
So org-mode definitely does not restrict you to a hierarchical organization. It is a very cool tool box that, coupled with the programmability of emacs, offers a lot of flexibility to adapt to your own way to do things.
After outlining you will typically "remember" a subject better, but that comes about as a side-benefit of having a better understanding of the subject, not because of some method that simply helps brain recall things.
Orgmode tables have let me finally ditch excel for most uses, and bring tables to my Git based workflow.
I also like to keep picture mode on, but I am not allergic to trailing white space https://www.emacswiki.org/emacs/PictureMode
So you have to share tables through excel that come from org mode? If so, how do you manage that?
If I have to deal with others I just use excel directly though. Orgmode is for me and my command line.
www.drdobbs.com/tools/mind-maps-the-poor-mans-design-tool/240008292
FWIW, orgmode does export outlines to Freemind mindmapper (using ox-freemind.el which is part of the org-plus-contrib packaging at Emacs' elpa repository.
As some others have said, orgmode does get beyond hierarchical structure of outlines by allowing searches on tags, properties, dates, and other items, which then consolidates all relevant headings -- potentially from dozens or hundreds of different files -- in the Orgmode "Agenda". They are thus visually connected in the Agenda, which in addition to consolidating in one spot provides easy access for directly editing, jumping between the relevant headings, and more.
I use Orgmode, have used Freemind a little bit in the past, but find Orgmode a far more flexible tool; Orgmode has so many features that go beyond mere outlining or mind-mapping.
My love for outlining like in Workflowy or org-mode but my need for more visual-based tools like Scapple or mind-mapping is what led me to scratch my own itch and create Mindscope. It's an attempt to be the best of both worlds. Would love feedback, of course... http://www.mindscopeapp.com
The fact then that many complex systems have a nearly decomposable,
hierarchic structure is a major facilitating factor enabling us to
understand, describe, and even "see" such systems and their parts.
Or perhaps the proposition should be put the other way around. If
there are important systems in the world that are complex without
being hierarchic, they may to a considerable extent escape our
observation and understanding. Analysis of their behavior would
involve such detailed knowledge and calculation of the interactions
of their elementary parts that it would beyond our capacities of
memory or computation.
- Herbert A. Simon, "The Sciences of the Artificial", 2nd edition, page 218
Also, hierarchy in the physical world is not just due to one object being able to only be in one location at a time (or only one object being in a one location). It also arises due to the improved evolvability of hierarchic systems. Again, see Herb Simon's "The Sciences of the Artificial" for a delightful treatment of hierarchic systems and our cognitive relationship with them.It says that if you have m pigeons and n holes, and m > n pigeons, at least one hole is going to have two pigeons in it.
[1] https://en.wikipedia.org/wiki/Galois_connection#Syntax_and_s...
Using graphically-linked data, one could write a process that would generate a hierarchical structure that minimizes crosslinks, and that hierarchy would presumably remain stable right up until the point that a certain relationship is changed, at which point the entire generated hierarchy might be reshuffled. But if we manually assert such a hierarchy, then we have incentive to ignore relationship changes, or try to force them to work within the same hierarchical structure that doesn't serve it anymore. It inhibits our ability to process and understand.
We have more and more ability to visualize true graphical structures and I think it's underutilized in general.
Thanks for the recommendation; I will check it out.
Not my brain. Mine is spacially topographic, and ontologically N-way associative (and, fafaik, ontologies are hierarchical). But I can't think of any way to describe my brain as graphical.
What is a graphical structure, btw?
The brain works in many different ways - I'm sure you're not wrong about the graphical structures being intuitive. But there's a reason why outlining is so ubiquitous in daily life and many professions.
As I understand it, Freemind is preferable to graphviz for export/translation of the org document itself, more oriented to combining text with visual mind-mapping than graphviz, which is focussed more on diagrams. https://en.wikipedia.org/wiki/FreeMind
However, within the visual Freemind diagram it is also possible to create arrows from one node to another that are not part of the main restricted hierarchy. I know some users have created these with the intent of creating multiple parents for a single node. So I would say that although Freemind doesn't support it very well (i.e., it's a hack, not natural like with graphviz), it does support showing visual relationships of single child with multiple parents. (And as far as export to Freemind from orgmode goes, I expect the export could be written to include arrows that are intended to show multiple parents of a single node, although I'm pretty sure it doesn't right now.)
Holographic to be precise...
A step better is how libraries have card catalogs, but a step better than that is online grocery shopping - which definitely does not store their products in a hierarchical database.
Orgmode has so many features, and there are so many ways to combine them, that it's really hard to get a grasp on everything it can do. It is certainly not just an outlining tool restricted to working with strict hierarchies. E.g., searches can be done within a file -- or throughout hundreds of files -- which will then assemble all responsive headings (i.e., all connected items) in the Agenda buffer (which is, in a sense, virtual, since it doesn't represent any file or document at all; it temporarily collects items from different files). Many org-mode users "live" in their Agenda buffer. The Agenda buffer isn't technically "graphical", but in many ways it's better and more powerful than a graphical solution because the relevant, connected items all then appear as items in a single buffer, no need to follow lines on a picture connecting sometimes far-away items in a complex, confusing graphical representation.
There's so much more it's hard to know even where to begin. For programmers, learning more about org-babel is definitely a good place to start.
In the GNU/Linux world there are two major text editing programs: the minimalist vi (known in some implementations as elvis) and the maximalist emacs. I use emacs, which might be thought of as a thermonuclear word processor. It was created by Richard Stallman; enough said. It is written in Lisp, which is the only computer language that is beautiful. It is colossal, and yet it only edits straight ASCII text files, which is to say, no fonts, no boldface, no underlining. In other words, the engineer-hours that, in the case of Microsoft Word, were devoted to features like mail merge, and the ability to embed feature-length motion pictures in corporate memoranda, were, in the case of emacs, focused with maniacal intensity on the deceptively simple-seeming problem of editing text. If you are a professional writer – i.e., if someone else is getting paid to worry about how your words are formatted and printed – emacs outshines all other editing software in approximately the same way that the noonday sun does the stars. It is not just bigger and brighter; it simply makes everything else vanish. [1]
A few things for newbies that might help:
1. A lot of org-mode 'power users' post their workflows and all of the attendant emacs lisp code [2] [3], and many new users feel like they have to customize their org-mode experience to that level to get any use out of it. DO NOT DO THIS! Start completely fresh with a clean install, just use it as a braindump outliner, and SLOWLY start adding new features as you go, based specifically on what you need for your individual workflow (the most useful first thing to learn for most people, after basic outline creation and folding, is probably the agenda view). This way you 'grow' the program to fit your own needs organically, rather than trying to shoehorn yourself into someone else's idea of a perfect workflow.
2. One customization thing I will say you should do immediately is to change the theme to match your preferred UI style. It will make a huge difference in how you 'feel' while you're using it. I love emacs but I hate, hate, hate the default UI look-and-feel. I will plug leuven-theme [4] as my current go-to for org-mode, but also dig the sanityinc tomorrow themes [5].
I will also throw in a compliment to the awesome community around emacs. It's happened to me many times where I've encountered some shortcoming or 'missing' feature of my existing setup, thought to myself "if only I could do X and Y," and discovered after 5 minutes of Googling that someone has already written something that does exactly what I'm looking for...
[1] from 'In The Beginning Was The Command Line' (1999) [2] http://pages.sachachua.com/.emacs.d/Sacha.html [3] http://doc.norang.ca/org-mode.html [4] https://github.com/fniessen/emacs-leuven-theme [5] https://github.com/purcell/color-theme-sanityinc-tomorrow
But, I have never been able to actually make use of the features in any kind of a more complicated setting: I find that too often you really need to have the code in standalone files, for example for batch jobs, running in other environments, sharing, etc. etc., and having code within the .org file really does not mix well with that. Perhaps your workflow somehow resolves that problem?
At its very heart, yes. And that alone is cool, I think (the scripting part).
But it's also a lot more: org-mode supports a simple form of task management (TODOs, Agenda views,...), it has a built-in spreadsheet editor (with formula support, all in ASCII), you can export contents to various backends (HTML, Beamer, ...) -- it really is a beast!
But yes, there are advantages to paper, like the ability to easily draw diagrams and link ideas with arrows, etc.
On the other hand, if you need that, you could always use something like a Wacom tablet, or maybe some other touch-screen device with a stylus. That would give you the best of both worlds.
Are there tools that will let the user search "hand drawn" digital image ? One can always use tag like system, which one can't with paper, but then it is extra work, and adding "text" tags is easier when using something like org-mode, or just plain text.
Still, there are ways to make drawing somewhat searchable too.
The (typed) names of the drawings you make are searchable, as are the tags (if you've used any, and you should), and their location on your filesystem. If there's some writing on the same page as the drawing, that's potentially OCR'able, and then searchable. Finally, you could always combine drawings with typed text, wich will be searchable.
At least for me, it's hard to beat physically crossing something out (or tearing a card in half) after finishing something on my to-do list.
After a few days of memorizing commands and learning -- my reaction was "WTF, I could have gotten 90% of the functionality I use from a (web) GUI app with 15 minutes of learning?!"
A bit later I realized that Org Mode have two advantages and still use it:
- It is always here, integrated with my development enviroment. With everything I need. (And if not, I can extend it.)
- Just using the keyboard in an editing environment I was used to, instead of a GUI, made the app "disappear" from a cognitive load perspective. Org Mode is like paper + pen for me in the way. I just use it naturally, with a minimal effect on my concentration.
[1] - http://sachachua.com/blog/2014/01/tips-learning-org-mode-ema...
As a Vim adherent, I never really got into Org-Mode, but from what I've seen from my Emacs friends, Workflowy seems kinda like Org-Mode Online, but with additional features like being able to share a sublist as a URL (which was noted in this blogpost as a weakness of Org-Mode: "The caveat here is that it’s mostly a one man show.").
I use it very much like this blogpost describes, to quickly jot-down and organize thoughts, then later reorganize them, update them, or archive them.
Plus you'll want to install a fuzzy file finder like find-file-in-project.
I've grown accustomed to it, but it's not the end-all-be-all. For example, I can type exact filenames in some work repos and get matches that are not for the file I'm looking for because the fuzzy finding is too fuzzy and starts hooking in matching from the directory structure in the path.
Some other examples of Ctrl-P replacements for emacs are fiplr, helm-projectile (helm-projectile-find-file), and helm-ls-git.
Helm is closer to vim's Unite (which was inspired by it) and can be used with arbitrary non-file related sources (e.g. the text in the current buffer).
Disclaimer: I'm a paying customer of two of these four, and am likely to sign up for the other two as well, to support their efforts in online outlining.
I just wish I could make up my mind which one I like best!
Often you don't even have to save your notes file if you are just using this as a method to defeat procrastination or build up momentum for a busy day. Many of mine don't survive the day and that's fine.
Org certainly is interesting and ticks the main boxes for me: outliner/TODO system, open source, text file, etc. With a better mobile solution available, I could definitely see myself using org-mode as my primary organization system.
[1] To be fair, this was under Android. I've not rerun the experiment using iOS, but I'm seeing one MobileOrg app in the store, last updated in 2013, with the most recent comments citing issues similar to what I experienced.
Vision, in buzzwords: outlines + mind mapping + evernote + wikipedia + knowledge management + spreadsheets/apps + PIM, you decide what to share or import. It lets you organize arbitrary knowledge in a structure that makes sense to you, based on how you think. It is meant to be very easy to learn. It is (so far) text- and keyboard-only, since everything you need to know at any given time is on the screen. It is highly efficient to navigate.
For "what it is today" with details, & links to more about the future: http://www.onemodel.org/1/e-9223372036854622523.html
God, it's like trying to choose a Javascript framework.
Not sure why you think emacs org-mode will be around forever. While I'm sure emacs will be around forever, I've had vim (not emacs, I don't use it I will admit) extensions which rotted as new versions of vim came out.
There is http://www.orgzly.com/ for Android. not sure about iOS.
Not to downplay org mode's usefulness, but this isn't really a post about org mode, just some general note taking strategies.
I found this discussion interesting too: https://news.ycombinator.com/item?id=9895713
https://github.com/melling/ErgonomicNotes
https://github.com/melling/ComputerLanguages
+ org-present, which lets you write presentations as org files
+ Orgzly, which gives you a great interface to search, create and edit org-mode files on your Android device
But I just use plain text files with bullets.
I haven't seen a compelling argument to justify learning all the concepts and keystrokes of org-mode. I don't need all the bell and whistles. Export to HTML? Why?
Export to HTML was useful a couple times, but not something I've used much of. I generated some code samples and used org-babel mode. The HTML view was nice enough to share out to other people.
I'm still barely using any of its features. The compelling thing for me is that when I've wanted a new feature, it was already there 9 times out of 10.
To get this benefit all you'd need to do is open a blank text file with '.org' suffix, then instead of bullets use an asterisk. Put one asterisk in front of main bullets, two asterisks in front of subitems. Then use <tab> key to expand or collapse subitems of current bullet item. Or <shift-tab> to expand or collapse subitems throughout the document. That's all you need to get started using org-mode productively.
As a lowly Windows developer, I struggle to make use of any note taking application outside of a sheet of paper. I'm sure a tool like OrgMode, Zim, or OneNote would help me organize my life, but as soon as I try to do this, I simply ask myself, why not just simplify?
OneNote's search is IMO it's killer feature. After you've built up a sizable amount of content you're going to start to need to search for stuff and it's pretty much instantaneous. Also returns results for pictures too (using OCR).
I've tried Emacs, tried the Eclipse todo, but neither caught on with me. I hear great things about Emacs and about Vim, and although I use Vim a lot to edit files on the server, I keep having difficulties changing to either of them for development. Maybe it's a matter of time.
It was somewhat useful, but requires regular updates of project status to be checked in; somethings I found challenging to remember to do.
When something important comes up it goes to the top and often when I am finished with it a lot of the stuff below it can be deleted too.
What does this mean?