A progress indicator for code blocks in org-mode

A progress indicator for code blocks in org-mode courtesy
of John Kitchin:

;; give us some hint we are running
(defadvice org-babel-execute-src-block (around progress nil activate)
  (set-face-attribute
   'org-block-background nil :background "LightSteelBlue")
  (message "Running your code block")
  ad-do-it
  (set-face-attribute 'org-block-background nil :background "gray")
  (message "Done with code block"))

What all of those org-babel functions do

For the lazy org users like myself who want to know what the functions
listed here do, just evaluate the one you want:

(describe-function 'org-babel-execute-src-block)
(describe-function 'org-babel-open-src-block-result)
(describe-function 'org-babel-load-in-session)
(describe-function 'org-babel-pop-to-session)
(describe-function 'org-babel-previous-src-block)
(describe-function 'org-babel-next-src-block)
(describe-function 'org-babel-execute-maybe)
(describe-function 'org-babel-open-src-block-result)
(describe-function 'org-babel-expand-src-block)
(describe-function 'org-babel-goto-src-block-head)
(describe-function 'org-babel-goto-named-src-block)
(describe-function 'org-babel-goto-named-result)
(describe-function 'org-babel-execute-buffer)
(describe-function 'org-babel-execute-subtree)
(describe-function 'org-babel-demarcate-block)
(describe-function 'org-babel-tangle)
(describe-function 'org-babel-tangle-file)
(describe-function 'org-babel-check-src-block)
(describe-function 'org-babel-insert-header-arg)
(describe-function 'org-babel-load-in-session)
(describe-function 'org-babel-lob-ingest)
(describe-function 'org-babel-view-src-block-info)
(describe-function 'org-babel-switch-to-session-with-code)
(describe-function 'org-babel-sha1-hash)
(describe-function 'org-babel-describe-bindings)
(describe-function 'org-babel-do-key-sequence-in-edit-buffer)

There are some very special functions in there!

Personal approach for collecting Emacs usage statistics advice?

Lately I’ve been curious whether or not my actual Emacs keymapping usage actually reflects how I think I use it. What I mean is that I have a goal of mapping frequently used operations to easily-accessible keybindings on the keyboard. What I plan to do is to record my usage so that I can study it to find mapping decisions that I got right, and wrong, and also identify things that I use that I should be mapping closer to home.
The simplest approach would be to use a keylogger, or advice inside of Emacs.
What I am curious about is your approach if you had done, or would do, something like this, and your thoughts an ideas.
In my case I lay out my mappings for how far away from home they are, and that has worked well so far, but I would like some numbers to back up that claim though it is not too serious depending upon how you look at it.
Cross posted from help-gnu-emacs