Update the emacs org mode draft

This commit is contained in:
Correl Roush 2014-11-25 20:40:29 -05:00
parent abf12995f0
commit f5b9da49d0
3 changed files with 77 additions and 33 deletions

View file

@ -3,17 +3,32 @@
#+STARTUP: indent
#+OPTIONS: toc:nil num:nil
I've been using Emacs Org mode for nearly a year now. For a while I
mostly just used it to take and organize notes, but over time I've
discovered it's an incredibly useful tool for managing projects and
tasks, writing and publishing documents, keeping track of time and
todo lists, and maintaining a journal.
#+BEGIN_HTML
<!--more-->
#+END_HTML
* Project Management
I've been using Emacs Org mode for nearly a year now, mostly as a
tool for breaking down large projects at work into tasks and
subtasks, and found it to be extremely enter projects in as a
hierarchy of tasks and task groupings. Using columnview, I was able
to dive right into scoping them individually and reporting total
estimates for each major segment of work. Because Emacs and Org
Mode make building and modifying an outline structure like this so
quick and easy, I'd build and modify the project org document as I
planned it out with my team. Once done, I'd then manually load that
information into our issue tracker and get underway.
Most of what I've been using [[http://orgmode.org/][Org mode]] for has been breaking down large
projects at work into tasks and subtasks. It's really easy to enter
projects in as a hierarchy of tasks and task groupings. Using
[[http://orgmode.org/worg/org-tutorials/org-column-view-tutorial.html][Column View]], I was able to dive right into scoping them individually
and reporting total estimates for each major segment of work.
[[img:emacs-projects.png][Example projects org file]]
Because Org Mode makes building and modifying an outline structure
like this so quick and easy, I usually build and modify the project
org document while planning it out with my team. Once done, I then
manually load that information into our issue tracker and get
underway. Occasionally I'll also update tags and progress status in
the org document as well as the project progresses, so I can use the
same document to plan subsequent development iterations.
* Organizing Notes and Code Exercises
More recently, I've been looking into various ways to get more
things organized with Org mode. I've been stepping through
@ -27,23 +42,26 @@ interpreter.
* Exporting and Publishing Documents
Publishing my notes with org is also a breeze. I've published
project plans and proposals to PDF to share with colleagues, and
exported my SICP notes to html and dropped them into a site built
exported my [[https://github.com/correl/sicp][SICP notes]] to html and [[http://sicp.phoenixinquis.net/][dropped them into a site]] built
with [[http://jekyllrb.com/][Jekyll]]. Embedding graphs and diagrams into exported documents
using [[http://www.graphviz.org/][Graphviz]], [[http://www.mcternan.me.uk/mscgen/][Mscgen]], and [[http://plantuml.sourceforge.net/][PlantUML]] has also really helped with
putting together some great project plans and documentation.
putting together some great project plans and documentation. A lot of
great examples using those tools (and more!) can be found [[http://home.fnal.gov/~neilsen/notebook/orgExamples/org-examples.html][here]].
* Emacs Configuration
While learning all the cool things I could do with Org mode and
Babel, it was only natural I'd end up using it to reorganize my
Emacs configuration. Up until that point, I'd been managing my
configuration in a single init.el file, plus a directory full of
mode or purpose-specific elisp files that I'd loop through and
load. Inspired primarily by the blog post, [[http://zeekat.nl/articles/making-emacs-work-for-me.html]["Making Emacs Work For
Me"]], and later by others such as [[http://pages.sachachua.com/.emacs.d/Sacha.html][Sacha Chua's Emacs configuration]],
I got all my configs neatly organized into a single org file that
gets loaded on startup. I've found it makes it far easier to keep
track of what I've got configured, and gives me a reason to
document and organize things neatly now that it's living a double
life as a [[https://github.com/correl/dotfiles/blob/master/.emacs.d/emacs.org][published document]] on GitHub.
While learning all the cool things I could do with Org mode and Babel,
it was only natural I'd end up using it to reorganize my [[https://github.com/correl/dotfiles/tree/master/.emacs.d][Emacs
configuration]]. Up until that point, I'd been managing my configuration
in a single init.el file, plus a directory full of mode or
purpose-specific elisp files that I'd loop through and load. Inspired
primarily by the blog post, [[http://zeekat.nl/articles/making-emacs-work-for-me.html]["Making Emacs Work For Me"]], and later by
others such as [[http://pages.sachachua.com/.emacs.d/Sacha.html][Sacha Chua's Emacs configuration]], I got all my configs
neatly organized into a single org file that gets loaded on
startup. I've found it makes it far easier to keep track of what I've
got configured, and gives me a reason to document and organize things
neatly now that it's living a double life as a [[https://github.com/correl/dotfiles/blob/master/.emacs.d/emacs.org][published document]] on
GitHub. I've still got a directory lying around with autoloaded
scripts, but now it's simply reserved for [[https://github.com/correl/dotfiles/blob/master/.emacs.d/emacs.org#auto-loading-elisp-files][tinkering and sensitive
configuration]].
* Tracking Habits
Another great feature of Org mode that I've been taking advantage
of a lot more lately is the [[http://orgmode.org/manual/Agenda-Views.html][Agenda]]. By defining some org files as
@ -57,6 +75,8 @@ this file, scheduling them, and setting deadlines, I've been doing
a much better job of keeping track of things I need to get done
and (even more importantly) /when/ I need to get them done.
[[img:emacs-org-agenda.png][Agenda view snippet]]
This works not only for one-shot tasks, but also [[http://orgmode.org/manual/Tracking-your-habits.html][habits and other
repetitive tasks]]. It's possible to schedule a task that should be
done every day, every few days, or maybe every first sunday of a
@ -71,6 +91,23 @@ The last thing I've been using (which I'm still getting a handle
on) is using [[http://orgmode.org/manual/Capture.html][Capture]] to take and store notes, keep a journal, and
even [[http://orgmode.org/manual/Clocking-work-time.html][track time on tasks at work]].
#+BEGIN_SRC emacs-lisp :exports code
(setq org-capture-templates
'(("j" "Journal Entry" plain
(file+datetree "~/org/journal.org")
"%U\n\n%?" :empty-lines-before 1)
("w" "Log Work Task" entry
(file+datetree "~/org/worklog.org")
"* TODO %^{Description} %^g\n%?\n\nAdded: %U"
:clock-in t
:clock-keep t)))
(global-set-key (kbd "C-c c") 'org-capture)
(setq org-clock-persist 'history)
(org-clock-persistence-insinuate)
#+END_SRC
For my journal, I've configured a capture template that I can use
to write down a new entry that will be stored with a time stamp
appended into its own org file, organized under headlines by year,
@ -87,12 +124,19 @@ in time, and get a better idea of how long it takes me to do
different types of tasks.
* Conclusion
There's a lot that can be done with Org mode, and I've only just
scratched the surface. The simple outline format provided by Org
mode lends itself to doing all sorts of things, be it organizing
notes, keeping a private or work journal, or writing a book or
technical document. There's tons of functionality that can be
built on top of it, yet the underlying format itself remains
simple and easy to work with. I've never been great at keeping
myself organized, but Org mode is such a delight to use that I
can't help trying anyway. If it can work for me, maybe it can work
for you, too :)
scratched the surface. The simple outline format provided by Org mode
lends itself to doing all sorts of things, be it organizing notes,
keeping a private or work journal, or writing a book or technical
document. I've even written this blog post in Org mode! There's tons
of functionality that can be built on top of it, yet the underlying
format itself remains simple and easy to work with. I've never been
great at keeping myself organized, but Org mode is such a delight to
use that I can't help trying anyway. If it can work for me, maybe it
can work for you, too!
There's tons of resources for finding new ways for using Org mode, and
I'm still discovering cool things I can track and integrate with it. I
definitely recommend reading through [[http://sachachua.com/blog/][Sacha Chua's Blog]], as well as
posts from [[http://newartisans.com/2007/08/using-org-mode-as-a-day-planner/][John Wiegley]]. I'm always looking for more stuff to try
out. Feel free to drop me a line if you find or are using something
you think is cool or useful!

BIN
images/emacs-org-agenda.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
images/emacs-projects.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB