Org Mode talk http://orgmode.org * What's this orgmode all about ** Emacs package (comes distributed with emacs even since 22) *** A few things about emacs **** "Eight Megabytes and Constantly Swapping" - That might have been an argument when you only had eight megabytes of ram. - Eclipse users especially should not be making this joke. **** Starts up so slow! Watching someone with a long .emacs start theirs up might be intimidating Most of the insane functionality of emacs is contained in libraries, so extensions are only loaded as needed. To prove the point, demonstrate: : emacs -nw -q **** The "emacs claw" Rebinding capslock to control actually makes pressing control+key easier than capitalizing letters with shift+key **** Okay, but its still an operating system - That's probably not too far off from the truth - Better to call it a lisp machine though - Most users open one emacs session and keep it open all day - These things make sense to make fun of when you're a sysadmin, but not a programmer... programmers are in their editor all day, should be as powerful as possible. - Talking about emacs would be its own talk though ** Structured around the idea of an outline *** Editing It's just editing plain text! *** Expanding / collapsing Tab cycling is awesome. (So is shift-tab cycling) ** Scales up, scales down Orgmode is as simple or as complicated as you need it to be (Originally I just wanted to include project plans and sketch out ideas with my applications. Now things have gotten more complex.) ** Project and life planning system - Todo lists - outlines - checklists ** Archiving Can add a tag or push it into an "Archive" section ** Entire system is in plaintext Kind of a microformat, syntax is somewhat wiki-like - lists (bulleted and otherwise) - [ ] checkboxes - *bold text*, _underlined text_, /italic text/ - links... [[http://orgmode.org][external urls]], [[file:~/org/life.org][local files]], and a variety of others - TODO items (see my [[file:~/org/life.org][life file]]) Plaintext is great... you can keep it under git, grep through your notes, whatever. ** Almost everything is programmable and extensible Emacs is a lisp machine. All keyboard commands are also lisp commands. Advice, hooks, etc allow you to "plug in" adjustments without overriding code. But you don't have to program or extend it if you don't want to.. has some good defaults *** Customize existing functionality *** Add new functionality based off of current functionality * So how do I use it? ** A bit of background - I have diagnosed ADD, so planning is critical for me - Used to use planner mode, but didn't scale well to multiple projects ** Where I store files *** Common & life stuff in ~/org/ And keeping this document under git makes it easy to track history and sync my desktop with my laptop *** Short documents (like this) in ~/org/snippets/ *** Everything else in its appropriate project bundle orgmode project plans with code, art projects.. Eg, my [[http://wedding.dustycloud.org][wedding site]]: file:~/env/wedding/site_data/docs/wedding.org ** Sketching out projects Let's give it a try... let's plan out a platforming game: file:~/tmp/videogame.org ** Writing short or prototype documents file:~/org/snippets/miroguide_git.org *** Exporting Can export to [[file:~/org/snippets/miroguide_git.txt][plaintext]], [[file:~/org/snippets/miroguide_git.tex][LaTeX]], [[file:~/org/snippets/miroguide_git.pdf][PDF]], [[file:~/org/snippets/miroguide_git.html][HTML]]... Can even create "projects" and publish a whole collection of org files together as a group of web pages... but I don't do that. ** Project and life planning *** Scheduling and setting deadlines on TODO items (inserting dates couldn't be easier) *** Agenda is key - M-x org-agenda (or 'C-c a' in my case) - 'C-c [' to add a file to your agenda - 'C-c ]' to remove - stored in the variable 'org-agenda-files' *** Overwhelmed? Try a sparse tree 'C-c /' For example: the [[file:~/env/wedding/site_data/docs/wedding.org][org file for my wedding]] ** Diet Here comes the embarassment: [[file:~/org/diet.org][my diet file]] *** Following The Hacker's Diet http://www.fourmilab.ch/hackdiet/ - Diet using statistics, engineering and management - Calories, calories, calories *** Uses tables - Tables are really nice and easy to write out - Originally I ignored their usefulness *** Uses spreadsheet functionality Only very minimally. Syntax looks weird but wasn't hard to figure out from the docs. Don't really use graphing but the ability is there. *** Uses properties For tracking weight and calories *** Uses a bit of my own (hacky) elisp - autosetting calories properties from the log table - Creating summary table [[~/elisp/diet.el][the elisp itself]] * Things I do not use but which are neat ** Remember mode Really quick capturing of tasks ** 'Worg' Think google docs like collaboration ** Tagging, etc I really only use tags for archiving ** Tons of other stuff provided by the community ** Time tracking - how long it takes to finish a task - when a task finished * Closing remarks - orgmode is great - for emacs users only really - check out the google tech talk on google video about orgmode