Permalink
Find file
3f1f9f3 Apr 24, 2016
Karl Voit updated some links
398 lines (318 sloc) 12.6 KB

Org-mode Teaser Demo

1 Workshop

1.1 Greetings, Introduction, Organization

  • breaks
  • drinking
    • vending machines for pops and coffee

1.2 About me

  • Flipchart
  • before 2003: studied Telematics at Graz University of Technology
  • 2003-2008: automotive industry (vif)
  • 2009-2012: PIM researcher (http://tagstore.org)
    • organizing files and folders
    • an alternative to strict hierarchies of folders
    • tagging
  • my editor(s) history
    • … I am no Emacs-guru!
    • started with Emacs in the 90s
    • never learned (E)LISP
      • although tried it several times
    • just copy & paste stuff which worked or not
    • switched to (g)vim approx. 2004
      • Emacs not available on AIX I had to use
      • speed
      • wanted to learn “the other one”
      • found vim shortcuts more logical
      • still using gvim for writing emails (mutt), usenet postings (slrn), config files, …
      • Book: vim 7.3 GE-PACKT (mitp Ge-packt) ~20€
    • returned to GNU/Emacs23 just because of an eye-opening Org-mode-demo on linux days Graz in 2011
      • learned about GNU/Emacs basic concepts and found a more logic structure than expected :-)
      • Book: Learning GNU Emacs ~28€
    • since 2011: Org-mode is my central collection of information for just about everything

1.3 About Attendees

  • presentation of each attendee
    • background
    • expectations

1.4 Course Material

1.5 Org-mode Principles and Advantages

1.5.1 text files

  • text as the lowest common denominator
  • portable
  • future-proof
  • process it with grep, python, …
  • VCS like git, Subversion, …
  • easy synchronization
  • advanced search & replace everywhere

1.5.2 easy to learn

  • outliner (~5 minutes)
  • todo-management (~10 minutes)
  • GTD implementation (~15 minutes)
  • more and more advanced topics
    • one by one
    • depending on personal requirements

1.5.3 scales

  • performance
  • learn/use only those parts you need

1.5.4 wiki-like

  • personal knowledge-base
  • internal and external links
  • very open to external files, APIs, …

1.5.5 Meta-data

  • define as much as you need
  • you’ve got all possibilities

1.6 Feature Show (my personal requirements)

  • Motivation
    • show, how I am using Org-mode
      • many things here are highly personal according to my requirements
      • just a thought-provoking impulse
      • feedback/suggestions/thoughts welcome!
    • what is of interest for the attendees
  • My Agenda
  • Sync with Google Calendar
  • Capture stuff
  • Reproducible Research
  • My current Org-mode file management (under constant change!)
    • Projects
      • IST.org
        • job in general
      • tagstore.org
        • my PhD project (students, content, …)
      • phd.org
        • the PhD document, final exam, organization
      • postdoc.org
        • organizing and hopefully doing a Post-Doc abroad
    • references.org
    • misc.org
      • mostly private projects, events, …
      • everything which does not fit into other Org-mode files
    • contacts.org
      • contact management
    • hardware.org
      • stuff I own
      • stuff I want to own (errands, wishlist)
      • borrowed stuff
      • coupons with their expiration date
      • inventory
        • prices
        • warranty cases
        • manuals
        • everything which happened to stuff I own
    • foodandbeverages.org
      • recipes
      • cocktails
    • movies.org
      • movies I saw or want to see
    • notes.org
      • more or less information I migrated from my before-Org-mode-area
      • PalmOS/JPilot
      • should be moved to other Org-mode files
        • yeah, this will be an open TODO forever :-)
  • Main headings of project-Org + misc
    • shorts
      • independent TODOs
    • projects
      • projects that are divided into several TODOs
    • ideas
      • collect things for future reference
    • events
      • one-time events and recurring events
  • ‘DND’ in heading puts Android in silent mode
  • Memacs

1.7 Org-mode Basics

1.8 Documentation

1.9 Org-mode Applied

  • everybody has different requirements
  • Org-mode as a Lego toolbox to build customized solutions
  • these are my personal solutions

1.9.1 git and Org-mode

1.9.2 yasnippet: “tbrief”

for expanding TAB within Org-mode search for:

defun yas/org-very-safe-expand
  1. mkdir a_letter
  2. cd a_letter
  3. create letter.org
  4. open letter.org in Emacs
  5. execute yasnippet command “tbrief”
  6. enter information
  7. execute babel-block
  8. edit TeX file generated
  9. make pdf
  10. optionally: delete letter.org
  11. letter ready to send :-)

1.9.3 org-contacts

;; ######################################################
;; contact management with org-contacts
;; http://julien.danjou.info/org-contacts.html
(require 'org-contacts)
(custom-set-variables '(org-contacts-files "~/share/all/org-mode/contacts.org"))

(setq org-link-abbrev-alist
  '(
	("contact" . "~/share/all/org-mode/contacts.org::/\*.*%s/")
  ))

1.9.4 references

;; ######################################################
;; http://tincman.wordpress.com/2011/01/04/research-paper-management-with-emacs-org-mode-and-reftex/
;; org-mode and paper references

(defadvice reftex-format-citation (before eval-citation-format)
  (setq format (eval format)))

(defun org-mode-reftex-setup ()
  (load-library "reftex")
  (and (buffer-file-name) (file-exists-p (buffer-file-name))
       (progn
	 ;enable auto-revert-mode to update reftex when bibtex file changes on disk
	 (global-auto-revert-mode t)
	 (reftex-parse-all)
	 ;add a custom reftex cite format to insert links
	 (reftex-set-cite-format
	  '((?b . "[[bib:%l][%l.bib]]")
	    (?r . "[[ref:%l][%l]]")
	    (?p . "[[pdf:%l][%l.pdf]]")
	    (?a . "[[notes:%l][%l-notes.pdf]]")
	    (?s . "[[pdf:%l-self][%l-self.pdf]]")
	    (?t . "%t")
	    (?h . (concat "** %l - %t\n:PROPERTIES:\n:CREATED: "
			  "<" (substring (format-time-string (org-time-stamp-format t t)) 1 -1) ">"
			  "\n:ID: %l\n:END:\n[[bib:%l][%l.bib]]\n[[pdf:%l][%l.pdf]]\n\n*** Abstract\n\n#+BEGIN_QUOTE\n#+END_QUOTE\n\n"))
	    (?n . (concat "*** PDF Annotations: [[notes:%l][%l-notes.pdf]]\n:PROPERTIES:\n:CREATED: "
			  "<" (substring (format-time-string (org-time-stamp-format t t)) 1 -1) ">"
			  "\n:ID: %l-notes\n:END:\n\n"
			  "\#+begin_src sh :results output\n"
			  "${HOME}/bin/vkextract_annotations_to_orgmode_snippet.sh %l\n"
                          "#+end_src"))
	    ))))
  (define-key org-mode-map (kbd "C-c )") 'reftex-citation)
  (define-key org-mode-map (kbd "C-c (") 'org-mode-reftex-search))

;(add-hook 'org-mode-hook 'org-mode-reftex-setup)
(add-hook 'org-mode-hook
	   (lambda ()
	     (if (member "CHECK_NEEDED" org-todo-keywords-1)
		 (org-mode-reftex-setup))))

(defun org-mode-reftex-search ()
  ;;jump to the notes for the paper pointed to at from reftex search
  (interactive)
  (org-open-link-from-string (format "[[ref:%s]]" (reftex-citation t))))

(setq org-link-abbrev-alist
      '(
	("bib" . "~/archive/library/%s.bib")
	("ref" . "file:~/share/all/org-mode/references.org::/%s/")
	("pdf" . "~/archive/library/%s.pdf")
	("notes" . "~/archive/library/%s-notes.pdf")
	))

1.9.5 workflows

  • yasnippet as flexible template system
  • example: gdipruef at id:teaser-tests

1.9.6 Memacs

1.9.6.1 existing modules

  • RSS
  • CSV
  • ISO datestamps in filenames
  • git commits
  • Subversion commits
  • iCal
  • mbox
  • maildir
  • IMAP
  • Android Phonecalls
  • Android Text Messages (SMS)
  • EXIF (photographs)

1.9.7 Reproducible Research

1.10 Other Demo Sources

1.11 Contribute

1.12 FIXXME: further items