## What we are using org-mode for

| categories: orgmode | tags: | View Comments

About four years ago I picked up Emacs again, because of org-mode. It started as an experiment to see if org-mode might be a solution to managing my growing list of obligations. Since then I have learned alot about org-mode. I was feeling reflective today, so here I describe a few of the things we are doing with it now, besides just organizing my obligations! I have found org-mode useful for many other things.

## 1 This blog

Every entry of this blog is written in org-mode and exported to an HTML file (https://github.com/jkitchin/jmax/blob/master/user/blogofile.el ) that is compiled by blogofile (http://www.blogofile.com/ ). Thanks to some emacs-lisp code, each post has the raw org-file linked to it so you can see exactly how the page was made.

## 2 Writing large technical documents/books

I used org-mode to write my book on modeling materials properties using density functional theory (http://kitchingroup.cheme.cmu.edu/dft-book ). This book has over 100 Python code examples that are integrated with the narrative text, including equations, figures and references.

I also used org-mode to write "Python computations in Science and Engineering" (http://kitchingroup.cheme.cmu.edu/pycse ), which shows that Python can be used extensively for solving scientific and engineering problems.

These "books" are not published in any traditional way; their value is in the org-format where the code is executable.

## 3 Writing scientific publications

The following papers from our group were written in org-mode. The supporting information files all contain embedded org-files with all of the code used to generate figures and analysis, as well as the data to make the papers reproducible and reusable. These papers include both experimental and computational work.

1. Spencer D. Miller, Vladimir V. Pushkarev, Andrew J. Gellman and John R. Kitchin, Simulating Temperature Programmed Desorption of Oxygen on Pt(111) Using DFT Derived Coverage Dependent Desorption Barriers, Topics In Catalysis, 57(1), 106-117 (2013). http://link.springer.com/article/10.1007%2Fs11244-013-0166-3
2. Alex Hallenbeck and John R. Kitchin, Effects of O2 and SO2 on the Capture Capacity of a Primary-Amine Based Polymeric CO2 Sorbent, I&ECR, 52 (31), 10788-10794 (2013). http://dx.doi.org/10.1021/ie400582a .
3. Mehta, Prateek; Salvador, Paul; Kitchin, John, Identifying Potential BO2 Oxide Polymorphs for Epitaxial Growth Candidates", ACS Applied Materials and Interfaces, 6(5), 3630-3639 (2014). http://pubs.acs.org/doi/full/10.1021/am4059149 .
4. Zhongnan Xu and John R Kitchin, Relating the Electronic Structure and Reactivity of the 3d Transition Metal Monoxide Surfaces, Catalysis Communications, 52, 60-64 (2014), http://dx.doi.org/10.1016/j.catcom.2013.10.028 .

We have several more papers in progress that are being written in org-mode. We just export the LaTeX manuscript (https://github.com/jkitchin/jmax/blob/master/ox-manuscript.el ) and submit it. My students now use org-mode to produce reports for their PhD qualifying exams, MS project reports, and other internal reports I ask them to write. I have used it for writing internal memos and reports for the Department. I occasionally use it to write technical emails.

## 4 Writing software

I have used org-mode in three serious software development efforts. So far, all of them have been in emacs-lisp.

1. org-ref is an extension of org-mode that provides deeply integrated citation and referencing in org-mode documents using bibtex as the reference database. The software is written in emacs-lisp, in an org-file, and the source code is tangled out of it. See https://github.com/jkitchin/jmax/blob/master/org/org-ref.org . The code is about 1700 lines long.
2. doi-utils is a smaller package that allows you to download bibtex entries and pdfs from a DOI. See https://github.com/jkitchin/jmax/blob/master/org/doi-utils.org
3. org-show is an emacs-lisp package for using org-files to give presentations. See https://github.com/jkitchin/jmax/blob/master/org/org-show.org .

This literate programming approach to writing software is interesting. You can document via narrative text what the software does, and how it works, sometimes as you write the code. I have not used org-mode to write a large Python project yet. I am considering it.

## 5 Giving presentations

For some examples of using org-show, see: a. Org-mode is awesome https://www.youtube.com/watch?v=fgizHHd7nOo b. Using org-ref https://www.youtube.com/watch?v=JyvpSVl4_dg c. The org-show show https://www.youtube.com/watch?v=JZ8RK-R9O_g d. Scipy 2014: Python in teaching https://www.youtube.com/watch?v=IsSMs-4GlT8 e. Scipy 2013: reproducible research talk in Beamer generated from org-mode https://www.youtube.com/watch?v=1-dUkyn_fZA

Presenting from org-mode takes some adjustment, but it really lets you strip something down to what is important, with few distractions!

## 6 Teaching classes

The book on dft that I wrote has been used in a graduate course several times. The last time I taught it we actually used the org-file directly in class during lecture, and I had students turn in their assignments with org-mode. That was done on a computer cluster I administer, so everyone had the emacs/org-mode setup I created.

This fall I am teaching a graduate MS course in chemical reaction engineering. It will be taught from org-mode. All the notes are in org-mode, all the assignments are in org-mode. Emacs will communicate with a git-server I run that will provide authenticated delivery of course materials and assignments. Grading is all done through org-mode, with the grades stored directly in the assignment files. The source code behind this effort is located for now at https://github.com/jkitchin/jmax/tree/master/techela . There is no course website; students will run M-x techela, select their course, and the syllabus.org file will be updated and shown, with org-links to get assignments, open lecture notes, etc… The students will do all this on their own laptop, with a preinstalled version of https://github.com/jkitchin/jmax , Enthought Canopy Python, git, ssh and TeXLive.

I am needless to say, very excited to try it!

## 7 Managing obligations

And of course, I still use org-mode to manage my daily job responsibilities as a professor:

1. Running a research group of ~10 PhD and MS students, managing grants, paper deadlines,… I share org-files with my students through Dropbox to keep some activities coordinated.
2. Teaching classes
3. Department, college, university committee duties
4. Preparing for professional meetings
5. Conference organization
6. Keeping track of personal things
7. etc…

I just counted the lines of the files in my org-agenda:

wc -l ~/Dropbox/org-mode/*.org

    346 /c/Users/jkitchin/Dropbox/org-mode/abet.org
745 /c/Users/jkitchin/Dropbox/org-mode/committees.org
11187 /c/Users/jkitchin/Dropbox/org-mode/contacts.org
451 /c/Users/jkitchin/Dropbox/org-mode/department.org
2 /c/Users/jkitchin/Dropbox/org-mode/email+gnus.org
91 /c/Users/jkitchin/Dropbox/org-mode/email.org
611 /c/Users/jkitchin/Dropbox/org-mode/gilgamesh.org
91 /c/Users/jkitchin/Dropbox/org-mode/gnus.org
6 /c/Users/jkitchin/Dropbox/org-mode/group.org
749 /c/Users/jkitchin/Dropbox/org-mode/journal.org
274 /c/Users/jkitchin/Dropbox/org-mode/lab.org
352 /c/Users/jkitchin/Dropbox/org-mode/manuscripts.org
117 /c/Users/jkitchin/Dropbox/org-mode/master.org
1239 /c/Users/jkitchin/Dropbox/org-mode/meetings.org
513 /c/Users/jkitchin/Dropbox/org-mode/notes.org
118 /c/Users/jkitchin/Dropbox/org-mode/org-course.org
182 /c/Users/jkitchin/Dropbox/org-mode/personal.org
485 /c/Users/jkitchin/Dropbox/org-mode/prj-doe-early-career.org
109 /c/Users/jkitchin/Dropbox/org-mode/prj-exxon.org
25 /c/Users/jkitchin/Dropbox/org-mode/prj-gcep-project.org
15 /c/Users/jkitchin/Dropbox/org-mode/prj-simonseed.org
238 /c/Users/jkitchin/Dropbox/org-mode/proposals.org
378 /c/Users/jkitchin/Dropbox/org-mode/research.org
7 /c/Users/jkitchin/Dropbox/org-mode/researcher-ids.org
110 /c/Users/jkitchin/Dropbox/org-mode/reviews.org
619 /c/Users/jkitchin/Dropbox/org-mode/software.org
2 /c/Users/jkitchin/Dropbox/org-mode/taxes.org
21013 total


hmm… that contacts file is big. My agenda might speed up if I move it out. It is not so slow that it bothers me though. That happens when you dump gmail contacts to org-contacts. That is even after cleaning up all the obviously bad entries!

## 8 Summary

There is hardly an area in my work not touched by org-mode these days!

org-mode source

Org-mode version = 8.2.6