October 5, 2007

Very odd – caring about the nitty-gritty

October 5, 2007 - Categories: life

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.

Emacs multi-tty is sweet

October 5, 2007 - Categories: emacs

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.

Remembering to Org and Planner

October 5, 2007 - Categories: emacs

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.