November 7, 2007

Bulk view

Setting up appointment reminders in Org

Although the agenda view is very handy, it is generally not a good
idea to check the agenda view every three seconds to see if you have
upcoming appointments. You can set up Org to use the Emacs appointment
reminder system, which can pop up a reminder buffer before your
appointment or display a reminder in the modeline.

org-agenda-to-appt scans all your agenda files for appointments for today.
The code for org-agenda-to-appt can be found in org.el. It’s marked
experimental, so future versions may not include it. If you do not
have org-agenda-to-appt, add the following to your ~/.emacs:

;; Make appt aware of appointments from the agenda
(defun org-agenda-to-appt ()
  "Activate appointments found in `org-agenda-files'."
  (interactive)
  (require 'org)
  (let* ((today (org-date-to-gregorian
		 (time-to-days (current-time))))
	 (files org-agenda-files) entries file)
    (while (setq file (pop files))
      (setq entries (append entries (org-agenda-get-day-entries
				     file today :timestamp))))
    (setq entries (delq nil entries))
    (mapc (lambda(x)
	    (let* ((event (org-trim (get-text-property 1 'txt x)))
		   (time-of-day (get-text-property 1 'time-of-day x)) tod)
	      (when time-of-day
		(setq tod (number-to-string time-of-day)
		      tod (when (string-match
				  "\\([0-9]\\{1,2\\}\\)\\([0-9]\\{2\\}\\)" tod)
			     (concat (match-string 1 tod) ":"
				     (match-string 2 tod))))
		(if tod (appt-add tod event))))) entries)))

Load today’s appointments every time you start Emacs by adding the
following to your ~/.emacs:

(org-agenda-to-appt)

or call it interactively with M-x org-agenda-to-appt.

If you delete an appointment from your Org agenda file, the
corresponding alert is not deleted. To delete the appointment, use M-x
appt-delete and select it from the list.

A better way to keep your appointment list clean would be to remove
all the appointment entries before calling org-agenda-to-appt. Add the
following to your ~/.emacs to do so:

(defadvice org-agenda-to-appt (before wickedcool activate)
  "Clear the appt-time-msg-list."
  (setq appt-time-msg-list nil))

To learn more about configuring the Emacs appointment reminder system,
check out the Emacs manual.

On Technorati:

Random Emacs symbol: ibuffer-mode – Function: A major mode for viewing a list of buffers.

Planning my career – first stages

It’s much easier to act than it is to react, and it’s less stressful
too. When you have goals and clear ways to work towards them, other
people tend to go along with the suggestions.

My job is to make my manager and my team members look good. That means
understanding the pressures they’re under and helping them meet those
expectations while making the best use of my talents. It’s a good
thing my goals are flexible

So, where do I want to go?

I want to gather, refine, document and spread good practices around
Web 2.0 and other collaborative technologies. That’s one of my
medium-term goals. Because the market is still emerging, I need to
make my own rain. If I can do that part effectively, then projects
that fit my interest in that will flow into the pipeline over the next
year.

I also need to develop skills in an area that my department
specializes in. This reduces the pressure on my manager and makes him
look good. If I can do it in a way that also helps me advance to my
own goals, all the better. Portal seems to be the best fit, because it
naturally leads into Web 2.0. I need to find out how to get started
with that. I want to look at the jobs that I’m not currently qualified
for, to give me an idea of which skills are in demand. This covers my
short-term career planning.

And I still want to do my book and have a good home life. Tall order,
but it can be done.

So, what can I do to make this easier? Now that I’ve got my goals
straight, it’ll be easier for me to prioritize my day-to-day
activities. Because I’m doing a lot of things, time spent “sharpening
the saw” becomes even more valuable. I need to know and use whatever
tools and practices that can save me time. I need to continue
reflecting on and incrementally improving the way I work. That’s the
best way to keep it manageable.

Let’s see how this goes. =)

Random Emacs symbol: utf-fragmentation-table – Variable: Char-table normally mapping non-Latin mule-unicode-* chars to iso-8859-*.