emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [Orgmode] Re: contact management in org-mode?


From: Russell Adams
Subject: Re: [O] [Orgmode] Re: contact management in org-mode?
Date: Thu, 19 Jul 2012 06:10:50 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

Regarding contact management in Org the way I described it below, I
wanted to share issues I've had since.

First, I've found myself very lax updating my Contacts.org file. With
a moderately large contact file column mode goes so slowly I find
myself reluctant to use it. Thus my contact list is now significantly
out of date despite my successful integration with mutt.

Another issue with column view is that I can't make the first column
(ie: Name!) sticky, so if I scroll right while filling in fields I
have no idea who I'm working on. Editing individual fields in the
property drawer is moderately ok.

The final killer is lack of sync. I have lbdb capturing incoming email
addresses, and I find I use it constantly without thinking about it. I
typically get contact information in signature lines with my customers
and I've found myself doing fast searching in mutt and using a recent
email instead of using Contacts.org. No sync with my Google account
means my phone now has an independent contact list again.

I did see someone created a org-contacts.el based on the format, but
their site is now offline.

So after a three year experiment, I think I can say my org-mode
contact management has failed.

Thus I pose the question: What is a valid contact manager for a
console-mode user with sync, fast searching and update?

Thanks.

On Fri, Nov 20, 2009 at 08:32:35AM -0600, Russell Adams wrote:
> On Fri, Oct 30, 2009 at 10:26:07PM -0500, Russell Adams wrote:
> > Looking into this some more, export is really easy. I can just use a
> > dynamic block to store column view in whatever format I choose, and
> > export then search & replace ',' for '|'. That is minimal effort!
> >
> > Sparse searches in column view, hierarchy organization, etc. I'm
> > trying to find a problem here.
>
> I've just converted all my contacts into an Org file, and will
> document below how it is organized.
>
> First is Contacts.org:
>
> --------------------------------------------------------
> #+COLUMNS:  %20ITEM %15Company %10Title %WorkEmail %WorkPhone %WorkMobile 
> %WorkFax %10WorkStreet %WorkCity %WorkState %WorkPostal %HomeEmail %HomePhone 
> %HomeMobile %10HomeStreet %HomeCity %HomeState %HomePostal
>
> * Contacts
>
> ** Adams, Russell
>    :PROPERTIES:
>    :Company:      Adams Information Services LLC
>    :Title:        Principal Consultant
>    :WorkEmail:    address@hidden
>    :WorkPhone:
>    :WorkMobile:
>    :WorkFax:
>    :WorkStreet:
>    :WorkCity:
>    :WorkState:
>    :WorkPostal:
>    :HomeEmail:
>    :HomePhone:
>    :HomeMobile:
>    :HomeStreet:
>    :HomeCity:
>    :HomeState:
>    :HomePostal:
>    :END:
>
> What a super guy!
> --------------------------------------------------------
>
> I could have multiple top level headings for organization. Making a
> contact a subheading also lets me use C-c / (spare tree searchs) to
> limit the list of contacts.
>
> With the column view modeline, I can edit contacts in long format, or
> change fields in column view.
>
> Next I needed a way to lookup addresses for Mutt. Lbdb is very
> effective, but given I don't use BBDB anymore I required an
> alternative.
>
> I still like lbdb's inmail filter, so I continue to use that. I wrote
> a quick lbdb module to find contacts in Contacts.org.
>
> ~/.lbdb/lbdbrc:
> --------------------------------------------------------
> MODULES_PATH="/usr/lib/lbdb /home/rladams/.lbdb/modules"
> METHODS="m_inmail m_gpg m_orgcontact"
> --------------------------------------------------------
>
> ~/.lbdb/modules/m_orgcontact:
> --------------------------------------------------------
> #! /bin/sh
>
> m_orgcontact_query()
> {
>
>     /home/rladams/.lbdb/modules/orgcontact.pl $1
>
> }
> --------------------------------------------------------
>
>
> ~/.lbdb/modules/orgcontact.pl: (note the hardcoded Contacts.org file)
> --------------------------------------------------------
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
> # Read org headers are records
>
> $/="\n*";
>
> open(MYFILE,"/home/rladams/doc/OrgFiles/Contacts.org");
> my @rawcontacts = <MYFILE>;
> close(MYFILE);
>
> $/="\n";
>
> foreach (@rawcontacts) {
>   if ( $_ =~ m/$ARGV[0]/i ){
>
>     my $name;
>
>     foreach (split("\n",$_)) {
>
>       # The first line is the name
>       unless (defined $name) {
>         $name = $_;
>         $name =~ s/^\s*\**\s*//;
>         $name =~ s/\s*$//;
>       }
>
>       if (m/^\s+:.*email.*:/i) {
>         my $email = $_;
>         $email =~ s/^\s+:\S+:\s+(\S+)/$1/g;
>         $email =~ s/\s*$//;
>
>         printf("%s\t%s\t((Org))\n", $email, $name);
>
>       }
>
>     }
>
>   }
>
> }
> --------------------------------------------------------
>
> Given I still use lbdbq in Mutt for address lookups, now it returns
> one row per email property using the name from the headline.
>
> Next, to make data entry faster, I've defined a yasnippet which
> contains all the properties in a tab list.
>
> ~/.emacs/snippets/text-mode/org-mode/contact:
> --------------------------------------------------------
> #contact : Add a contact w/ PROPERTY drawer
> # --
> ** $1
>    :PROPERTIES:
>    :Company:      $2
>    :Title:        $3
>    :WorkEmail:    $4
>    :WorkPhone:    $5
>    :WorkMobile:   $7
>    :WorkFax:      $8
>    :WorkStreet:   $9
>    :WorkCity:     $10
>    :WorkState:    $11
>    :WorkPostal:   $12
>    :HomeEmail:    $13
>    :HomePhone:    $14
>    :HomeMobile:   $15
>    :HomeStreet:   $16
>    :HomeCity:     $17
>    :HomeState:    $18
>    :HomePostal:   $19
>    :END:
>
> $0
>
> --------------------------------------------------------
>
> This also helps keep the property list consistent.
>
> I hope this helps someone else.
>
> Thanks.
>
> ------------------------------------------------------------------
> Russell Adams                            address@hidden
>
> PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/
>
> Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>


------------------------------------------------------------------
Russell Adams                            address@hidden

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]