* BBDB Sync (Was: Re: [Orgmode] Re: contact management in org-mode?)
@ 2012-06-22 6:21 Sriram Karra
2012-06-22 20:03 ` Karl Voit
0 siblings, 1 reply; 9+ messages in thread
From: Sriram Karra @ 2012-06-22 6:21 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 2178 bytes --]
I was searching through the list archives when I came across this old
thread. I thought I would point out some recent developments in the BBDB
world that might be of general interest to Emacs users.
I am the author of a sync tool that can perform bi-directional sync between
MS Outlook / Google Contacts / Emacs BBDB. You can set up a sync profile
between any folder in one of those with any folder in any of the other two.
It's been released to the bbdb-info audience, and it seems to be working
quite well (no complaints yet of ASynK eating up peoples contacts.) Give it
a shot by visiting the project page at: http://karra-asynk.appspot.com/
Further, BBDB v3 is getting ready to come out of alpha status, as per a
recent mail on bbdb-info by the current maintainer Roland Winkler.
All in all, there is some action on the BBDB side of the world, and this is
a great time for the faithful to return to the fold :)
-Karra
------------------
*From*: Darlan Cavalcante Moreira*Subject*:Re: [Orgmode] Re: contact
management in org-mode? *Date*:Sun, 25 Oct 2009 10:51:07
-0300*User-agent*:Wanderlust/2.15.6
(Almost Unreal) Emacs/23.1 Mule/6.0 (HANACHIRUSATO)
------------------------------
If there was someway to sync (two-way) bbdb with google contacts all problems
would be solved for me, since I can sync my phone with google contacts and
Evolution can read/write from/to google contacts (although nowadays I use
wanderlust in Emacs instead of evolution, which obviously can use bbdb).
Darlan
At Sun, 25 Oct 2009 02:04:18 -0400,
Charles Philip Chan <address@hidden> wrote:
>* *
>* Russell Adams <address@hidden> writes:*
>* *
>* > I'm migrating out of it as fast as I can. The import/export tools are*
>* > terrible / nonexistant unless you know elisp,*
>* *
>* Have you tried any of these.*
>* *
>* http://www.emacswiki.org/emacs/BbdbImporters*
>* http://www.emacswiki.org/emacs/BbdbExporters*
>* *
>* ?*
>* *
>* I am currently using bbdb-vcard-import.el and bbdb-vcard-export.el with*
>* no problems. I have also used bbdb-rf.el in the past.*
>* *
>* Charles*
>* *
>* -- *
>* Linux: Because a PC is a terrible thing to waste.*
>* (By address@hidden, Mark Komarinski)*
[-- Attachment #2: Type: text/html, Size: 3285 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: BBDB Sync (Was: Re: [Orgmode] Re: contact management in org-mode?) 2012-06-22 6:21 BBDB Sync (Was: Re: [Orgmode] Re: contact management in org-mode?) Sriram Karra @ 2012-06-22 20:03 ` Karl Voit 2012-06-23 3:21 ` Sriram Karra 2012-06-23 21:14 ` BBDB Sync John Wiegley 0 siblings, 2 replies; 9+ messages in thread From: Karl Voit @ 2012-06-22 20:03 UTC (permalink / raw) To: emacs-orgmode * Sriram Karra <karra.etc@gmail.com> wrote: > > I am the author of a sync tool that can perform bi-directional sync between > MS Outlook / Google Contacts / Emacs BBDB. You can set up a sync profile > between any folder in one of those with any folder in any of the other two. > It's been released to the bbdb-info audience, and it seems to be working > quite well (no complaints yet of ASynK eating up peoples contacts.) Give it > a shot by visiting the project page at: http://karra-asynk.appspot.com/ I am using Org-mode to organize my contacts following org-contacts.el[1] and a *lot* of additional properties. Those things are so far »by convention« and I always wanted to sum it up on WORG but did not find time for that. If you are interested in writing a sync module for Org-mode as well, feel free to contact me. I am happy to describe you how I am organizing contacts using Org-mode. 1. http://julien.danjou.info/software/org-contacts.el -- Karl Voit ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: BBDB Sync (Was: Re: [Orgmode] Re: contact management in org-mode?) 2012-06-22 20:03 ` Karl Voit @ 2012-06-23 3:21 ` Sriram Karra 2012-06-23 9:58 ` How I am organizing contacts (was: BBDB Sync) Karl Voit 2012-06-23 21:14 ` BBDB Sync John Wiegley 1 sibling, 1 reply; 9+ messages in thread From: Sriram Karra @ 2012-06-23 3:21 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1086 bytes --] On Sat, Jun 23, 2012 at 1:33 AM, Karl Voit <devnull@karl-voit.at> wrote: > > I am using Org-mode to organize my contacts following > org-contacts.el[1] and a *lot* of additional properties. Those > things are so far »by convention« and I always wanted to sum it up > on WORG but did not find time for that. > Even with BBDB there are only few "standard" fields, and a tonne of custom fields. If conventions are only in naming the property fields that is trivially fixed through a config file (something I do already for the BBDB handlers). If you are interested in writing a sync module for Org-mode as well, > feel free to contact me. I am happy to describe you how I am > organizing contacts using Org-mode. > I am a beginner level org-mode user - I was away from Emacs for nearly 8 years and returned to find this fascinating and gigantic new development in the Emacs world :) But if you can document your contact structure, I could potentially implement it some point in the future. Do you use any import/export/sync code with org-contacts? -Karra [-- Attachment #2: Type: text/html, Size: 1580 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* How I am organizing contacts (was: BBDB Sync) 2012-06-23 3:21 ` Sriram Karra @ 2012-06-23 9:58 ` Karl Voit 2012-06-24 13:43 ` Customizing org-contacts Was: Re: How I am organizing contacts Simon Thum 0 siblings, 1 reply; 9+ messages in thread From: Karl Voit @ 2012-06-23 9:58 UTC (permalink / raw) To: emacs-orgmode * Sriram Karra <karra.etc@gmail.com> wrote: > > On Sat, Jun 23, 2012 at 1:33 AM, Karl Voit <devnull@karl-voit.at> wrote: > >> I am using Org-mode to organize my contacts following >> org-contacts.el[1] and a *lot* of additional properties. Those >> things are so far =BBby convention=AB and I always wanted to sum it up >> on WORG but did not find time for that. > > Even with BBDB there are only few "standard" fields, and a tonne of custom > fields. If conventions are only in naming the property fields that is > trivially fixed through a config file (something I do already for the BBDB > handlers). Oh, I am certain that for mapping purposes there are technical solutions. Originally I wanted to sum up my method (my convention) to spare other peoples time to come up with their own. I looked at other software solutions and meta-data standards to get a convention that reflects a «general» attempt. To be fair: I could not find any common ISO or something other standard for that purpose which overrules other conventions. So a *common* convention could spare users to create those (optional) mappings by themselves. > I am a beginner level org-mode user - I was away from Emacs for nearly 8 > years and returned to find this fascinating and gigantic new development in > the Emacs world :) This paragraph I could have written on my own one year ago :-) > But if you can document your contact structure, I could > potentially implement it some point in the future. It's fairly simple: I do have an Org-mode file named «contact.org» with a tree: no flat structure, since I tend to map family trees to Org-mode headline hierarchies: - groups - relatives - families sharing the last name A - family of person A - person A - [other members of family of person A] - friends - [same concept as above with relatives] - job B - [more or less flat list of people I got in touch with while working for company B] For less tight connections that do not belong to the sub-hierarchies above, I do have separate headlines which contain only a flat sub-hierarchy each: - people (people which are not friends, family, or other categories) - passing acquaintances (people I hardy know but want to store info) - companies (I am using tags to differ between entries of companies) Each and every entry is created using a yasnippet[2] template like this: ,----[ vkcontact ] | # name : Org-contacts template for a person | # -- | ** $1 $2 :$1$2: | :PROPERTIES: | :TYPE: ${3:$$(yas/choose-value '("person" "company"))} | :TITLE: | :EMAIL: $4 | :URL: | :MOBILE: 0043/ | :HOMEPHONE: | :WORKPHONE: | :PHONE: | :COMPANY: | :STREET: | :POSTALCODE: | :CITY: | :COUNTRY: Österreich | :END: | | first contact: $0 `---- This ends up in entries like: ,----[ vkcontentry ] | ** John Smith :JohnSmith: | :PROPERTIES: | :TYPE: person | :TITLE: Dr. | :EMAIL: john.smith@example.com | :URL: http://john.smith.com/ | :MOBILE: 0043/6123/12345678 | :HOMEPHONE: | :WORKPHONE: | :PHONE: | :COMPANY: Graz University of Technology | :STREET: Herrengasse 1 | :POSTALCODE: 8010 | :CITY: Graz | :COUNTRY: Österreich | :END: | | first contact: we met at CHI2012 conference `---- One minor flaw is that I have to modify the level of the headline resulting from the template according to the level where it belongs. Maybe somebody has a solution to that little but annoying thing? Below the «first contact»-line, I start to write all things related to a contact starting with an active time-stamp: changes in phone numbers or addresses, little things I do want to track (favourite sport, links to other friends of mine, what I gave for birthday, ...). At the bottom of every contact, I add (repeating) events for birthday and other anniversaries. When I am doing something with only one person (going out for lunch, doing a biking tour, ...) I am creating entries for those events directly in this contacts.org file. Also handy: keeping track of doctor visits and any health related information right at the entry of this doctor. My current tags for contacts are defined in the header of my contacts.org: ,----[ first line of my contacts.org ] | #+TAGS: job(j) friends(f) health(e) hotels(o) restaurants_bars(r) \ | sport(s) students_TU(t) relatives(r) company(c) `---- ... but this is pretty much related to my previous system (jPilot/datebk6/PalmOS) which offered only one single category for each contact. I might re-think these tags in future. I am using the following yasnippet template to generate a link to an entry of my contact list: ,----[ vkcontact ] | # name : expand link to contact | # -- | [[contact:$1][${2:$$(unless yas/modified-p | (let ((field (nth 0 (yas/snippet-fields (first (yas/snippets-at-point)))))) | (concat (buffer-substring (yas/field-start field) (yas/field-end field)))))}]] $0 `---- So when I am invoking «vkcontact» + TAB, and I enter «John Smith» + TAB, it ends up in: «[[contact:John Smith][John Smith]]». Of course there has to be an entry in my .emacs which enables the custom link: ,----[ snippet from .emacs: the line with «contact» is the one relevant ] | (setq org-link-abbrev-alist | '( | ("bib" . "~/archive/papers_from_web/%s.bib") | ("ref" . "file:~/share/all/org-mode/references.org::/%s/") | ("pdf" . "~/archive/papers_from_web/%s.pdf") | ("notes" . "~/archive/papers_from_web/%s-notes.pdf") | ("contact" . "~/share/all/org-mode/contacts.org::/\*.*%s/") | ("vktsfile" . "~/share/all/org-mode/memacs/files.org_archive::/\*.*%s/") | )) `---- > Do you use any import/export/sync code with org-contacts? Not yet. I did not have time to implement something on my own and so far the desire to do so was almost non existent (time!). But if there will be a solution which helps me syncing my phone contacts (again), I am willing to give it a try. Personally I do want to have control over this process: I store *everything* about a contact in Org-mode but I just want to have synced phone numbers, email addresses, and names to my Android device. Nothing more, nothing less. 2. http://emacswiki.org/emacs/Yasnippet -- Karl Voit ^ permalink raw reply [flat|nested] 9+ messages in thread
* Customizing org-contacts Was: Re: How I am organizing contacts 2012-06-23 9:58 ` How I am organizing contacts (was: BBDB Sync) Karl Voit @ 2012-06-24 13:43 ` Simon Thum 2012-06-24 15:21 ` Case insensitive search (was: Customizing org-contacts) Karl Voit 0 siblings, 1 reply; 9+ messages in thread From: Simon Thum @ 2012-06-24 13:43 UTC (permalink / raw) To: news1142; +Cc: Karl Voit, emacs-orgmode Hi, thanks for sharing your setup. Piggybacking on this thread, I'm just starting with org-contacts and wonder how I could get it to perform case-insensitive searches? (This would make it easier to search for parts of names) Cheers, Simon On 06/23/2012 11:58 AM, Karl Voit wrote: > * Sriram Karra<karra.etc@gmail.com> wrote: >> >> On Sat, Jun 23, 2012 at 1:33 AM, Karl Voit<devnull@karl-voit.at> wrote: >> >>> I am using Org-mode to organize my contacts following >>> org-contacts.el[1] and a *lot* of additional properties. Those >>> things are so far =BBby convention=AB and I always wanted to sum it up >>> on WORG but did not find time for that. >> >> Even with BBDB there are only few "standard" fields, and a tonne of custom >> fields. If conventions are only in naming the property fields that is >> trivially fixed through a config file (something I do already for the BBDB >> handlers). > > Oh, I am certain that for mapping purposes there are technical > solutions. > > Originally I wanted to sum up my method (my convention) to spare > other peoples time to come up with their own. I looked at other > software solutions and meta-data standards to get a convention that > reflects a «general» attempt. > > To be fair: I could not find any common ISO or something other > standard for that purpose which overrules other conventions. > > So a *common* convention could spare users to create those > (optional) mappings by themselves. > >> I am a beginner level org-mode user - I was away from Emacs for nearly 8 >> years and returned to find this fascinating and gigantic new development in >> the Emacs world :) > > This paragraph I could have written on my own one year ago :-) > >> But if you can document your contact structure, I could >> potentially implement it some point in the future. > > It's fairly simple: I do have an Org-mode file named «contact.org» > with a tree: no flat structure, since I tend to map family trees to > Org-mode headline hierarchies: > > - groups > - relatives > - families sharing the last name A > - family of person A > - person A > - [other members of family of person A] > - friends > - [same concept as above with relatives] > - job B > - [more or less flat list of people I got in touch with while > working for company B] > > For less tight connections that do not belong to the sub-hierarchies > above, I do have separate headlines which contain only a flat > sub-hierarchy each: > > - people (people which are not friends, family, or other categories) > - passing acquaintances (people I hardy know but want to store info) > - companies (I am using tags to differ between entries of companies) > > Each and every entry is created using a yasnippet[2] template like > this: > > ,----[ vkcontact ] > | # name : Org-contacts template for a person > | # -- > | ** $1 $2 :$1$2: > | :PROPERTIES: > | :TYPE: ${3:$$(yas/choose-value '("person" "company"))} > | :TITLE: > | :EMAIL: $4 > | :URL: > | :MOBILE: 0043/ > | :HOMEPHONE: > | :WORKPHONE: > | :PHONE: > | :COMPANY: > | :STREET: > | :POSTALCODE: > | :CITY: > | :COUNTRY: Österreich > | :END: > | > | first contact: $0 > `---- > > This ends up in entries like: > > ,----[ vkcontentry ] > | ** John Smith :JohnSmith: > | :PROPERTIES: > | :TYPE: person > | :TITLE: Dr. > | :EMAIL: john.smith@example.com > | :URL: http://john.smith.com/ > | :MOBILE: 0043/6123/12345678 > | :HOMEPHONE: > | :WORKPHONE: > | :PHONE: > | :COMPANY: Graz University of Technology > | :STREET: Herrengasse 1 > | :POSTALCODE: 8010 > | :CITY: Graz > | :COUNTRY: Österreich > | :END: > | > | first contact: we met at CHI2012 conference > `---- > > One minor flaw is that I have to modify the level of the headline > resulting from the template according to the level where it belongs. > Maybe somebody has a solution to that little but annoying thing? > > Below the «first contact»-line, I start to write all things related > to a contact starting with an active time-stamp: changes in phone > numbers or addresses, little things I do want to track (favourite > sport, links to other friends of mine, what I gave for birthday, > ...). > > At the bottom of every contact, I add (repeating) events for > birthday and other anniversaries. When I am doing something with > only one person (going out for lunch, doing a biking tour, ...) I am > creating entries for those events directly in this contacts.org > file. Also handy: keeping track of doctor visits and any health > related information right at the entry of this doctor. > > > My current tags for contacts are defined in the header of my > contacts.org: > > ,----[ first line of my contacts.org ] > | #+TAGS: job(j) friends(f) health(e) hotels(o) restaurants_bars(r) \ > | sport(s) students_TU(t) relatives(r) company(c) > `---- > > ... but this is pretty much related to my previous system > (jPilot/datebk6/PalmOS) which offered only one single category for > each contact. I might re-think these tags in future. > > > I am using the following yasnippet template to generate a link to an > entry of my contact list: > > ,----[ vkcontact ] > | # name : expand link to contact > | # -- > | [[contact:$1][${2:$$(unless yas/modified-p > | (let ((field (nth 0 (yas/snippet-fields (first (yas/snippets-at-point)))))) > | (concat (buffer-substring (yas/field-start field) (yas/field-end field)))))}]] $0 > `---- > > So when I am invoking «vkcontact» + TAB, and I enter «John Smith» + > TAB, it ends up in: «[[contact:John Smith][John Smith]]». > > Of course there has to be an entry in my .emacs which enables the > custom link: > > ,----[ snippet from .emacs: the line with «contact» is the one relevant ] > | (setq org-link-abbrev-alist > | '( > | ("bib" . "~/archive/papers_from_web/%s.bib") > | ("ref" . "file:~/share/all/org-mode/references.org::/%s/") > | ("pdf" . "~/archive/papers_from_web/%s.pdf") > | ("notes" . "~/archive/papers_from_web/%s-notes.pdf") > | ("contact" . "~/share/all/org-mode/contacts.org::/\*.*%s/") > | ("vktsfile" . "~/share/all/org-mode/memacs/files.org_archive::/\*.*%s/") > | )) > `---- > > >> Do you use any import/export/sync code with org-contacts? > > Not yet. > > I did not have time to implement something on my own and so far the > desire to do so was almost non existent (time!). But if there will > be a solution which helps me syncing my phone contacts (again), I am > willing to give it a try. > > Personally I do want to have control over this process: I store > *everything* about a contact in Org-mode but I just want to have > synced phone numbers, email addresses, and names to my Android > device. Nothing more, nothing less. > > 2. http://emacswiki.org/emacs/Yasnippet ^ permalink raw reply [flat|nested] 9+ messages in thread
* Case insensitive search (was: Customizing org-contacts) 2012-06-24 13:43 ` Customizing org-contacts Was: Re: How I am organizing contacts Simon Thum @ 2012-06-24 15:21 ` Karl Voit 2012-06-24 20:17 ` Case insensitive search Simon Thum 0 siblings, 1 reply; 9+ messages in thread From: Karl Voit @ 2012-06-24 15:21 UTC (permalink / raw) To: emacs-orgmode * Simon Thum <simon.thum@gmx.de> wrote: > Hi, > > thanks for sharing your setup. Piggybacking on this thread, I'm just > starting with org-contacts and wonder how I could get it to perform > case-insensitive searches? (This would make it easier to search for > parts of names) http://sunsite.ualberta.ca/Documentation/Gnu/emacs-21.1/html_chapter/faq_5.html#SEC42 (setq case-fold-search t) ; make searches case insensitive -- Karl Voit ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Case insensitive search 2012-06-24 15:21 ` Case insensitive search (was: Customizing org-contacts) Karl Voit @ 2012-06-24 20:17 ` Simon Thum 2012-06-24 20:33 ` Nick Dokos 0 siblings, 1 reply; 9+ messages in thread From: Simon Thum @ 2012-06-24 20:17 UTC (permalink / raw) To: news1142; +Cc: Karl Voit, emacs-orgmode On 06/24/2012 05:21 PM, Karl Voit wrote: > * Simon Thum<simon.thum@gmx.de> wrote: >> Hi, >> >> thanks for sharing your setup. Piggybacking on this thread, I'm just >> starting with org-contacts and wonder how I could get it to perform >> case-insensitive searches? (This would make it easier to search for >> parts of names) > > http://sunsite.ualberta.ca/Documentation/Gnu/emacs-21.1/html_chapter/faq_5.html#SEC42 > (setq case-fold-search t) ; make searches case insensitive I ran across that already but figured it's a bit harsh for all of emacs or org-mode, i.e. I am worried about unintended side-effects. The trouble I'm having stems from the fact that org-contact search is (AFAICT) an agenda search, which is case insensitive in my setup. So why is org contacts case sensitive in the first place? Thanks anyway, I'll dig deeper some time (but probably not today). Cheers, Simon ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Case insensitive search 2012-06-24 20:17 ` Case insensitive search Simon Thum @ 2012-06-24 20:33 ` Nick Dokos 0 siblings, 0 replies; 9+ messages in thread From: Nick Dokos @ 2012-06-24 20:33 UTC (permalink / raw) To: Simon Thum; +Cc: news1142, Karl Voit, emacs-orgmode Simon Thum <simon.thum@gmx.de> wrote: > On 06/24/2012 05:21 PM, Karl Voit wrote: > > * Simon Thum<simon.thum@gmx.de> wrote: > >> Hi, > >> > >> thanks for sharing your setup. Piggybacking on this thread, I'm just > >> starting with org-contacts and wonder how I could get it to perform > >> case-insensitive searches? (This would make it easier to search for > >> parts of names) > > > > http://sunsite.ualberta.ca/Documentation/Gnu/emacs-21.1/html_chapter/faq_5.html#SEC42 > > (setq case-fold-search t) ; make searches case insensitive > I ran across that already but figured it's a bit harsh for all of emacs > or org-mode, i.e. I am worried about unintended side-effects. > One possible workaround for this kind of thing is to let-bind case-fold-search in a wrapper function: (defun my-fun (...) (let ((case-fold-search t)) (orig-fun ...))) It should work unles the original function also plays such games with case-fold-search, in which case all bets are off. But it might be worth spending a few minutes for a simple test, before you dig deeper. Nick > The trouble I'm having stems from the fact that org-contact search is > (AFAICT) an agenda search, which is case insensitive in my setup. So why > is org contacts case sensitive in the first place? > > Thanks anyway, I'll dig deeper some time (but probably not today). > > Cheers, > > Simon > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: BBDB Sync 2012-06-22 20:03 ` Karl Voit 2012-06-23 3:21 ` Sriram Karra @ 2012-06-23 21:14 ` John Wiegley 1 sibling, 0 replies; 9+ messages in thread From: John Wiegley @ 2012-06-23 21:14 UTC (permalink / raw) To: emacs-orgmode >>>>> Karl Voit <devnull@Karl-Voit.at> writes: > I am using Org-mode to organize my contacts following org-contacts.el[1] and > a *lot* of additional properties. Those things are so far »by convention« > and I always wanted to sum it up on WORG but did not find time for that. You know, it really shouldn't be hard to write an org-contacts.el *backend* for BBDB. I mean, a data source is a data source, who cares if it's an Elisp form (.bbdb) or text data? In fact, my Org-X project would make transforming an org-contacts.el buffer into a BBDB Lisp form trivial. Transforming it back (for writing) would be a bit more work, but nothing too onerous. John ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-06-24 20:33 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-06-22 6:21 BBDB Sync (Was: Re: [Orgmode] Re: contact management in org-mode?) Sriram Karra 2012-06-22 20:03 ` Karl Voit 2012-06-23 3:21 ` Sriram Karra 2012-06-23 9:58 ` How I am organizing contacts (was: BBDB Sync) Karl Voit 2012-06-24 13:43 ` Customizing org-contacts Was: Re: How I am organizing contacts Simon Thum 2012-06-24 15:21 ` Case insensitive search (was: Customizing org-contacts) Karl Voit 2012-06-24 20:17 ` Case insensitive search Simon Thum 2012-06-24 20:33 ` Nick Dokos 2012-06-23 21:14 ` BBDB Sync John Wiegley
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).