October 5, 2007

Bulk view

Remembering to Org and Planner

Most of my notes are in Emacs Planner. Handy commands like M-x remember help me quickly take notes and write down ideas, saving the text to my blog.

While reading the manual for Org, another PIM for Emacs (yes, another one!), I decided to give it a try. Org uses Remember, the same quick note-taking module that Planner does. I wanted to set up Emacs so that I could remember a note and have it go either to my Planner-based blog or to my notes file.

M-x remember is a two-step procedure. First, Remember sets up the buffer and inserts the annotation. After you write the note and press C-c C-c, Remember passes the note's contents to a handler function. Because Planner and Org have incompatible annotation functions and destinations, I needed to override both.

Here's how I did that:

(defun sacha/remember-to-org ()
  (interactive)
  (let ((org-directory "~/path/to/my/orgfiles/")
        (org-default-notes-file "~/.notes")
        (remember-annotation-functions '(org-remember-annotation))
        (remember-mode-hook (cons 'org-remember-apply-template
                                  remember-mode-hook)))
    (remember)
    (set (make-variable-buffer-local 'remember-handler-functions)
         '(org-remember-handler))))
(global-unset-key [f9 ?o])
(global-set-key [f9 ?o ?r] 'sacha/remember-to-org)
(global-set-key [f9 ?r ?o] 'sacha/remember-to-org)

I've set up Remember to work with Planner by default:

(setq remember-handler-functions '(remember-planner-append))
(setq remember-annotation-functions planner-annotation-functions)
(global-set-key [f9 ?r ?p] 'remember)
(global-set-key [f9 ?p ?r] 'remember)
(global-set-key (kbd " r SPC") 'remember)

I've added plenty of keyboard shortcuts to see which ones feel the most natural.

I'm looking forward to playing around with this and seeing what works!

Random Emacs symbol: tty-color-define - Function: Specify a tty color by its NAME, terminal INDEX and RGB values.

Emacs multi-tty is sweet

The multiple-terminal support in Emacs 23 (CVS) means that I can leave my main Emacs session running on my laptop, connect to it from the desktop using SSH, get a graphical display on a big screen, and still be able to use my laptop if I decide to go off wireless. It also allows me to fake having a dual-screen Emacs setup. =) Very happy. This will be good for when I'm writing WickedCoolEmacs, too.

I used the great scripts from Enigma Curry: Multi-tty Emacs on Gentoo and Ubuntu to make it painless.

Random Emacs symbol: pcomplete/eshell-mode/eshell-debug - Function: Completion for the `debug' command.

Very odd – caring about the nitty-gritty

While reviewing the volunteer application form for a charity that I'm thinking of supporting, I grew uncomfortable with the confidentiality agreement. In particular, I resisted the idea of treating it as "work for hire" and assigning all my rights to whatever ideas, material, or processes I might develop while I'm volunteering.

I've come to value the ability to come up with ideas, write about my experiences, and learn from other people. I want to avoid constraining that freedom. Just as software developers may take special precautions not to taint their minds with code that they can't reuse so that they can avoid questions about the code they produce, I may need to avoid experiences that add complications to my ability to share and learn. Private, confidential, or copyrighted material is relatively easy to delineate, but what about insights and advice? If someone's question prompts me to collect advice and to write an article that I've been meaning to do for a while, would I be unable to republish that article even after removing sensitive information? Maybe that's the price other people pay to gain experiences they wouldn't otherwise have, but if I can get similar experiences elsewhere...

Random Emacs symbol: pcomplete-command-completion-function - Variable: *Function called for completing the initial command argument.