mirror of
https://github.com/correl/correl.github.io.git
synced 2025-01-01 11:03:18 +00:00
99 lines
5.9 KiB
Org Mode
99 lines
5.9 KiB
Org Mode
|
#+TITLE: Getting Organized with Org Mode
|
||
|
#+AUTHOR: Correl Roush
|
||
|
#+STARTUP: indent
|
||
|
#+OPTIONS: toc:nil num:nil
|
||
|
|
||
|
* 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.
|
||
|
* 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
|
||
|
[[http://sarabander.github.io/sicp/][Structure and Interpretation of Computer Programs]] with some other
|
||
|
folks from work, and discovered that Org mode was an ideal fit for
|
||
|
keeping my notes and exercise work together. The latter is neatly
|
||
|
managed by [[http://orgmode.org/worg/org-contrib/babel/intro.html][Babel]], which let me embed and edit source examples and
|
||
|
my excercise solutions right in the org document itself, and even
|
||
|
export them to one or more scheme files to load into my
|
||
|
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
|
||
|
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.
|
||
|
* 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.
|
||
|
* 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
|
||
|
being agenda files, Org mode can examine these files for TODO
|
||
|
entries, scheduled tasks, deadlines and more to build out useful
|
||
|
agenda views to get a quick handle on what needs to be done and
|
||
|
when. While at first I started by simply syncing down my google
|
||
|
calendars as org-files (using [[http://orgmode.org/worg/code/awk/ical2org.awk][icadl2org.awk]]), I've started
|
||
|
managing TODO lists in a dedicated org file. By adding tasks to
|
||
|
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.
|
||
|
|
||
|
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
|
||
|
month. For example, I've set up repeating tasks to write a blog
|
||
|
post at least once a month, practice guitar every two to three
|
||
|
days, and to do the dishes every one or two days. The agenda view
|
||
|
can even show a small, colorized graph next to each repeating task
|
||
|
that paints a picture of how well (or not!) I've been getting
|
||
|
those tasks done on time.
|
||
|
* Keeping a Journal and Tracking Work
|
||
|
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]].
|
||
|
|
||
|
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,
|
||
|
month and date.
|
||
|
|
||
|
For work tasks, I have another capture template configured that
|
||
|
will log and tag a task into another org file, also organized by
|
||
|
date, which will automatically start tracking time for that
|
||
|
task. Once done, I can simply clock out and check the time I've
|
||
|
spent, and can easily find it later to clock in again, add notes,
|
||
|
or update its status. This helps me keep track of what I've gotten
|
||
|
done during the day, keep notes on what I was doing at any point
|
||
|
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 :)
|