Category Archives: organizer

Keeping it Personal

Update 2013-04-28: Fixed Japanese encoding error by re-copying from examples.

http://www.douglasjohnston.net/weblog/archives/2005/04/09/keeping-personal/
is an insightful blog post on personalizing a planner. It inspires me
to do something similar with my Planner. =)

彼は猫のように四つんばいにはった. He crept on all fours like a cat.

On Technorati: ,

Hipster PDA

3×5 index cards totally rock.

On Technorati: , ,

あなたは黒い猫が好きですか。 Do you like a black cat?

Hipster PDA: Month view

Being able to quickly see my schedule for two months totally, totally
rocks. My iPAQ didn’t have the screenspace for something like that,
but my 3×5″ pack of index cards with some inserts from an organizer.
In particular, aforementioned monthly templates make planning
get-togethers so much easier. I can print index cards for these too,
but then it’d be a hassle to design the template and print it
back-to-back. Anyway, this totally rocks.

(I also had another epiphany earlier: we’re actually planning
gimmicks! We have a social life! We have a barkada! Nifty. Now I just
need to make sure I keep in touch with other people I know, too…)

問題はどうして難局に当たるかである。 The question is how we will bell the cat.

On Technorati: , , ,

Keeping in touch

How can I keep in touch with other people?

One way is to call people up or write them a friendly note every so
often. I find this difficult to do because I’m still not used to small
talk. I’m also not used to being interrupted for a purely social call
unless it’s someone I know well. I’m much more comfortable dealing
with information. I want to be useful.

First, I need to keep track of people’s interests. When I run across
something that might be useful for them, I can send them the
information. If I also keep track of other little facts I know about
people, then I can make them feel a little more special.

Second, I should regularly refresh my contacts. I should make sure I
keep in touch with people. Maybe I should set goals for how often I
should get in touch with different kinds of people. There are people I
don’t expect further contact with, there are people I should write at
least once a year, and there are people I’d like to correspond with
more frequently.

The next step would be to proactively search for useful information.
If I periodically read about other people’s interests, I will not only
learn many new things and gain more common ground with them, but might
also find resources they haven’t run across before.

WHAT I CURRENTLY HAVE:

I already keep notes on people in my BBDB (Big Brother Database,
Emacs). BBDB makes it easy for me to associate notes with e-mail.
Whenever I read a message from someone in my address book, the BBDB
record pops up and I can review or add notes easily.

However, I don’t regularly review these contacts or make a conscious
effort to stay in touch with a wide range of people. I tend to react
instead of act, and I’d like to change that.

WHAT I’D LIKE TO HAVE:

I would like to be able to see my contacts grouped by relative
frequency. This would allow me to flip through, say, all the people I
have yet to contact this year, and randomly pick people to get in
touch with. I need to also keep track of our last few communications,
in terms of both when I got in touch with that person and when I got a
reply.

I would like to be able to see my contacts grouped by interest. I can
achieve the same effect by searching through the records for a
particular keyword. This would allow me to easily look up all the
people I should get in touch with regarding a particular topic.

I would like to be able to create tasks based on each contact or group
of contacts. I should be able to list all the tasks associated with a
particular person as well as see the tasks on my day page, perhaps
under the “social” context.

WHAT I CAN DO:

First, I should add two fields to my BBDB records to keep track of the
last time I spoke/wrote to the person and the last time I received a
reply. I can probably configure Gnus to update this automatically for
mail, although I can also do that myself. I can also add an entry for
maximum days without contact, or something like that.

I can add another field called “Next action”, which keeps track of the
next thing I can do for that person.

I can write Emacs Lisp code to extract all the relevant information
from BBDB and prioritize the list.

Hmmm. Sounds useful.

最近コンピュータ用の新しい机を買いました。 I just bought a new desk for my computer.

On Technorati: , ,

BBDB tags

Right, that tags thing looks like a good idea. It should be easy to
hack into BBDB. I’ll need to actually tag people, and then write an
Emacs Lisp script that scans through all of the records, gathers them
into categories, and then creates the list.

HEY. This might actually work. Here’s a quick test of tags:

ateneo Charles Yeung,Sean Uy,Ryan Kristoffer Tan,Stephanie Sy,Bit Santos,Jerome Punzalan
pisay Jerome Punzalan,clair ching,mario carreon
linux Eric Pareja,Jared Odulio,Chris G. Haravata,levi guerrero,Zak B. Elep,clair ching,Dean Michael Berris,Jan Alonzo
blog Charles Yeung,Sean Uy,Ryan Kristoffer Tan,Stephanie Sy,Aaditya Sood,Bit Santos,Raven,Jerome Punzalan,Richard Plana,Phillip Pearson,Eric Pareja,Jared Odulio,Celsus Kintanar,Jan Michael Ibanez,Mark A. Hershberger,Chris G. Haravata,levi guerrero,Cha Gascon,Sim Gamboa, III,Marcelle Fabie,Zak B. Elep,David Edmondson,edelgado,Dominique Cimafranca,clair ching,Sean Champ,Dean Michael Berris,Jason Banico,John S. J. Anderson,Jan Alonzo
debian Federico Sevilla III,Paul Lussier,Angus Lees,Frederik Fouvry,Zak B. Elep,Joe Corneli,clair ching,Sean Champ,Miles Bader,Jan Alonzo,Jesse Alama
emacs Manoj Srivastava,Paul Lussier,Lukhas,Angus Lees,Mario Lang,Jan Michael Ibanez,Mark A. Hershberger,Frederik Fouvry,clair ching,Miles Bader,Ethan Aubin,John S. J. Anderson,Jesse Alama
planner Paul Lussier,Mark A. Hershberger,Frederik Fouvry,Zak B. Elep,Joe Corneli,clair ching,Ethan Aubin,John S. J. Anderson,Jesse Alama

Use C-o to add a “tags” field to your BBDB records. This should be a space-delimited list of tags (case-sensitive for now).
Call M-x sacha/planner-bbdb-insert-tags-alist to produce a list like the one above.

(defun sacha/bbdb-get-tags (record)
  "Return the tags for RECORD as a list."
  (let ((tags (bbdb-record-getprop record 'tags)))
    (when tags (split-string tags))))

(defun sacha/bbdb-test-tags (query tags)
  "Return non-nil if QUERY is a subset of TAGS."
  (let ((result t))
    (while (and result query)
      (unless (member (car query) tags)
        (setq result nil))
      (setq query (cdr query)))
    result))

(defun sacha/bbdb-search-tags-internal (records tags)
  "Return a list of RECORDS matching TAGS."
  (when (stringp tags) (setq tags (split-string tags)))
  (let (result)
    (while records
      (when (sacha/bbdb-test-tags tags
                                  (sacha/bbdb-get-tags (car records)))
        (setq result (cons (car records) result)))
      (setq records (cdr records)))
    result))

(defun sacha/bbdb-search-tags (tags)
  "Display all the records that match TAGS."
  (interactive "MTags: ")
  (bbdb-display-records (sacha/bbdb-search-tags-internal (bbdb-records) tags)))

(defun sacha/planner-bbdb-link (record)
  "Return a link to RECORD."
  (or (bbdb-record-getprop record 'plan)
      ;; From a BBDB entry with a plan page; use that. Yay!
      (concat "[[bbdb://"
              (emacs-wiki-replace-regexp-in-string
               " " "."
               (bbdb-record-name record))
              "][" (bbdb-record-name record)
              "]]")))

(defun sacha/bbdb-get-tags-index ()
  "Return a list of tags and records."
  (let ((tags-alist '())
        (records (bbdb-records))
        tags
        entry
        list
        link)
    (while records
      (setq tags (sacha/bbdb-get-tags (car records)))
      (while tags
        (setq entry (assoc (car tags) tags-alist))
        (setq list (cdr entry))
        (add-to-list 'list (car records))
        (if entry
            (setcdr entry list)
          (add-to-list 'tags-alist (cons (car tags) list)))
        (setq tags (cdr tags)))
      (setq records (cdr records)))
    tags-alist))

(defun sacha/planner-bbdb-insert-tags-alist (&optional tag-alist)
  "Insert TAG-ALIST into the current buffer."
  (interactive)
  (unless tag-alist (setq tag-alist (sacha/bbdb-get-tags-index)))
  (insert (mapconcat
           (lambda (item)
             (concat (car item) " | "
                     (mapconcat
                      'sacha/planner-bbdb-link
                      (cdr item)
                      ",")))
           tag-alist
           "\n")))

To think that only took me an hour of leisurely coding (including tagging my contact information)…

昨年度のコンピューターからの利益は、今年度分よりも10%近く多かった。 Profit on computers for the previous year was nearly ten percent higher than the current year.

On Technorati: , ,

How I use my Hipster PDA

After all my experiments with wearable computing
using a one-handed chording keyboard and a speech synthesizer,
I’ve found that the most portable device for me is still a 3×5 pack of index cards bound with a fold-back clip.
Jokingly dubbed the “Hipster PDA” elsewhere on the Net, this low-tech device is surprisingly flexible and easy to use.
I use mine to keep track of tasks and random notes for later entry into my online planner.

My Hipster PDA is composed of:

  • a colored index card with my contact information
  • my inbox: cards with notes on them that haven’t been entered into the computer
  • two pages of month templates from a 3×5 day planner
  • a year calendar for 2005 and 2006
  • my archive: index cards that have already been entered but might still be useful
  • a colored index card with yellow sticky notes
  • a stack of blank index cards
  • a fold-back clip holding all of these things together
  • a black signpen or a mechanical pencil tucked into the fold-back clip

One of the things I’ve found much easier to do with my 3×5 pack of
cards than with a PDA or a Franklin-Covey planner is to keep track of
get-togethers. When my friends and I schedule our next get-together, I
lay the month templates out so that I can see the next 30 days at a
glance. This is difficult to do with a PDA because PDA screens are
small. A Franklin-Covey planner would probably be more organized, but
I like being able to lay things out side-by-side instead of flipping
through pages.

When I need to jot something down, I flip the deck and write on the
last card. After I finish one side of the card, I turn it over, clip
it, and write on the other side. When the whole card is full, I move
it into my inbox.

Index cards are handy because it’s easy to give information away to
other people. Paper gets crumpled and business cards can disappear
into the chaos of a purse or a bag. An index card is big and bright.
I’m thinking of replacing half of my white cards with brightly-colored
cards so that people can easily find information I give them.

I’m planning to do other things with my pack of 3×5 index cards. For
example, I can write my projects on the cards. Reviewing these cards
will reinforce these goals in my mind and remind me to keep making
progress.

Index cards totally rock.

新しいコンピューターは旧型よりも10倍速い。 The new computer is ten times as fast as the old one.

On Technorati: , , , ,