From e36c2af946fe3f42fa380218792f1b5ced308be7 Mon Sep 17 00:00:00 2001 From: Correl Roush Date: Tue, 25 Nov 2014 21:12:57 -0500 Subject: [PATCH] Publish "Getting Organized with Org Mode" --- ...11-25-getting-organized-with-org-mode.html | 201 ++++++++++++++++++ ...-11-25-getting-organized-with-org-mode.org | 7 +- images/org-mode-unicorn-logo.png | Bin 0 -> 5883 bytes 3 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 _posts/2014-11-25-getting-organized-with-org-mode.html rename _drafts/getting-organized-with-org-mode.org => _posts/2014-11-25-getting-organized-with-org-mode.org (98%) create mode 100644 images/org-mode-unicorn-logo.png diff --git a/_posts/2014-11-25-getting-organized-with-org-mode.html b/_posts/2014-11-25-getting-organized-with-org-mode.html new file mode 100644 index 0000000..187b213 --- /dev/null +++ b/_posts/2014-11-25-getting-organized-with-org-mode.html @@ -0,0 +1,201 @@ +--- +title: Getting Organized with Org Mode +author: Correl Roush +--- +

+Org mode logo +

+ +

+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. +

+ +
+

Project Management

+
+

+Most of what I've been using 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 +Column View, I was able to dive right into scoping them individually +and reporting total estimates for each major segment of work. +

+ +

+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 +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 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 Jekyll. Embedding graphs and diagrams into exported documents +using Graphviz, Mscgen, and PlantUML has also really helped with +putting together some great project plans and documentation. A lot of +great examples using those tools (and more!) can be found 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, "Making Emacs Work For Me", and later by +others such as 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 published document on +GitHub. I've still got a directory lying around with autoloaded +scripts, but now it's simply reserved for 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 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 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. +

+ +

+Agenda view snippet +

+ +

+This works not only for one-shot tasks, but also 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 Capture to take and store notes, keep a journal, and +even track time on tasks at work. +

+ +
+ +
(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)
+
+
+ +

+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. 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 Sacha Chua's Blog, as well as +posts from 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! +

+
+
diff --git a/_drafts/getting-organized-with-org-mode.org b/_posts/2014-11-25-getting-organized-with-org-mode.org similarity index 98% rename from _drafts/getting-organized-with-org-mode.org rename to _posts/2014-11-25-getting-organized-with-org-mode.org index 4fd4b87..2187abf 100644 --- a/_drafts/getting-organized-with-org-mode.org +++ b/_posts/2014-11-25-getting-organized-with-org-mode.org @@ -3,16 +3,15 @@ #+STARTUP: indent #+OPTIONS: toc:nil num:nil +#+ATTR_HTML: style="float: right; margin-top: -50px;" +[[img:org-mode-unicorn-logo.png][Org mode logo]] + 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 - -#+END_HTML - * Project Management 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 diff --git a/images/org-mode-unicorn-logo.png b/images/org-mode-unicorn-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..68a8ea2390cbcbd7a42ee8d61111dbe9988fb456 GIT binary patch literal 5883 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