So many resources!

Every so often, I just stop and wonder what I've been doing with my time. This usually happens when I go on an academic reading spree and I rediscover just how amazing it is that the University of Toronto has full-text access to almost everything.

I'm *so* tempted to scale back everything as much as possible and just pack lots and lots of information into my head. ;) I want to take advantage of all the magazine subscriptions and the huge library just two blocks from my residence.

I love reading!

Random Emacs symbol: gnus-summary-article-header - Macro: Return the header of article NUMBER.

43folders blogger and GTD guru Merlin Mann in Toronto tomorrow

Merlin Mann of 43Folders and uber-cool GTD/productivity lifehacking will be in town for a podcast tomorrow (Tuesday). http://upcoming.org/event/111696/

I will probably not be able to go, or if I do, I'll be cramming for school in the background. But go and have fun!

Random Emacs symbol: auto-coding-alist-lookup - Function: Return the coding system specified by `auto-coding-alist' for FILENAME.

Must be a better way to reserve books at the library

I'm going on another reading spree, this time on relationship marketing.

At some point in time, I will be annoyed enough to write a non-(mouse and pageload)-intensive way to say "Request all selected books and have them delivered to my nearest branch."

Argh. Little inefficiencies like that annoy me. That is so getting hacked. Probably during CASCON, even.

Random Emacs symbol: Info-edit - Command: Edit the contents of this Info node.

Crazy Emacs: Personalized signatures with random taglines

Of course, that naturally leads to the crazy idea: "What if I can personalize my signatures?" Knowing that Paul Lussier is an Emacs geek, I can reward him for reading all the way to the bottom of my message... ;)

(defun sacha/gnus-personalize-signature ()
  "Personalizes signature based on BBDB signature field.
BBDB signature field should be a lambda expression.
First person with a custom signature field gets used."
  (let* ((bbdb-get-addresses-headers
          (list (assoc 'recipients bbdb-get-addresses-headers)))
         (records (bbdb-update-records
                   (bbdb-get-addresses
                    nil
                    gnus-ignored-from-addresses 'gnus-fetch-field)
                   nil
                   nil))
         signature)
    (while (and records (not signature))
      (when (bbdb-record-getprop (car records) 'signature)
        (setq signature
              (eval (read (bbdb-record-getprop (car records)
                                               'signature)))))
      (setq records (cdr records)))
    (or signature t)))
(setq-default message-signature 'sacha/gnus-personalize-signature)

So then all I have to do is add the following field to his record:

      signature: (concat "Sacha Chua - Emacs geek
                 What crazy idea can I help you hack next?
                 Random Emacs symbol: "
                 (sacha/random-tagline
                  "~/.taglines.random-emacs-symbols"))

Emacs. One crazy idea at a time. Now I can use this to select random information, like my favorite networking books or a list of my upcoming events...

On Technorati: , , ,

Random Emacs symbol: sort-coding-systems-predicate - Variable: If non-nil, a predicate function to sort coding systems.

Crazy idea for Emacs: Random Emacs taglines

Would anyone happen to know of a way to select a random symbol with a description?

Actually. Hmm.

(progn
  (apropos ".")
  (write-file "~/.taglines.random-emacs-symbols")
  (delete-matching-lines "Plist")
  (delete-matching-lines "not documented")
  (replace-regexp "\n  " " - " nil)
  (delete-non-matching-lines " - "))

Et voila! Random Emacs taglines together with the code:

(defun sacha/random-tagline (&optional file)
  "Return a random tagline and put it in the kill ring."
  (interactive)
  (with-current-buffer (find-file-noselect (or file "~/.taglines"))
    (goto-char (random (point-max)))
    (let ((string
           (buffer-substring (line-beginning-position)
                             (line-end-position))))
      (kill-new string)
      string)))

(defadvice remember (after sacha-tagline activate)
  "Add random tagline."
  (save-excursion
  (goto-char (point-max))
  (insert "\n\nRandom Emacs symbol: "
          (sacha/random-tagline "~/.taglines.random-emacs-symbols")
          "\n\n")))))

On Technorati: , ,

Random Emacs symbol: eshell-remove-entries - Function: From PATH, remove all of the given FILES, perhaps interactively.