From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id aGBAM5Y/QWP8qgAAbAwnHQ (envelope-from ) for ; Sat, 08 Oct 2022 11:15:02 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id iIYdM5Y/QWPq1wAAauVa8A (envelope-from ) for ; Sat, 08 Oct 2022 11:15:02 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 72028145B7 for ; Sat, 8 Oct 2022 11:15:01 +0200 (CEST) Received: from localhost ([::1]:44666 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oh5v9-0002Lo-Va for larch@yhetil.org; Sat, 08 Oct 2022 05:14:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38398) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oh5uA-0002Le-G5 for emacs-orgmode@gnu.org; Sat, 08 Oct 2022 05:13:58 -0400 Received: from stw1.rcdrun.com ([217.170.207.13]:43609) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oh5u4-0008J2-Q1 for emacs-orgmode@gnu.org; Sat, 08 Oct 2022 05:13:58 -0400 Received: from localhost ([::ffff:154.225.55.149]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 00000000000BBD14.0000000063413F4F.00007667; Sat, 08 Oct 2022 02:13:50 -0700 Date: Sat, 8 Oct 2022 12:13:32 +0300 From: Jean Louis To: Renato Pontefice Cc: emacs-orgmode@gnu.org Subject: Re: Org contacts documentation Message-ID: Mail-Followup-To: Renato Pontefice , emacs-orgmode@gnu.org References: <33CB23C5-E714-45CC-AD1C-CCE3602C1A24@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment Content-Transfer-Encoding: 8bit In-Reply-To: <33CB23C5-E714-45CC-AD1C-CCE3602C1A24@gmail.com> User-Agent: Mutt/2.2.7+37 (a90f69b) (2022-09-02) Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1665220501; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=QBZSgmEbhzmkPaOjdcevZzaYF5HWWcwFYpd+lyU3niY=; b=bqJ4bkXAoMHw+pcv7KPkg9RZZjJIFZ9b+hpGOajgC6kfzerir8/I14wg5LXgz87jk0FJJZ Ba61u61iSyHVwAaQvVqS67wO1x9OMXKOqhaSLdWK1cKgG0V7+4mVQEFsXM7RpQBlL/Lp2h qo4w0lRNBUdo1tjd0BRYRD++CE/34AgBspSk0kbhf0yOkusSTrBME11+BWWqV+dR9tU7B7 T8ZkRyv9LDQNHvgbpov8FImvgSdkPbs/paNeUSmOg1WENMlfIYEt7wFPu6ScQXcH7jHiyT Ygt4uDVLZmh0d0yiRdCLGW8AS3N0mTL+rjuLYHMpUA1lVUyQr+qUik/nIZX57Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1665220501; a=rsa-sha256; cv=none; b=Kzus6ZMvR5GowYH1KE6jTRskkYHfAmJEoTnru4bY7mf56UAplFr3IwGjFZXpIToWLL5xcs Op0ajuf+kUyL3KkYog0bAflTN9ofbcSuFFP0+iITlq+u7Nro82gm1V+NAnwKLcp7fP7WC8 CwELKfZk4ZQaD5N3IMha9uBJZMOAPDHIu8mFq3GNOgHO6ELasoOItIyYSj7lbhBx4s+Nhz c4dGqC68bmkTTI0r3GH3/QdtJTT5bRrJaejg9mLLVkiXxkrImliy5HWV8odwYY0AI39U12 GkkzOW9Yw4qbuEQ8xEkoINx9lZKrCELAgZO7oJVmDg8ysDyGb/GGHxc6h2E4sQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.68 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 72028145B7 X-Spam-Score: -2.68 X-Migadu-Scanner: scn1.migadu.com X-TUID: xCYC7Ke7NwTu * Renato Pontefice [2022-10-08 00:26]: > I'm unable to find documentation about this package. > Could someone tell me where I can find it? Hyperbole link: {M-x find-library RET org-contacts RET M-x goto-line RET 28 RET} ;;; Commentary: ;; This file contains the code for managing your contacts into Org-mode. ;; To enter new contacts, you can use `org-capture' and a minimal template just like ;; this: ;; ("c" "Contacts" entry (file "~/Org/contacts.org") ;; "* %(org-contacts-template-name) ;; :PROPERTIES: ;; :EMAIL: %(org-contacts-template-email) ;; :END:"))) ;; ;; You can also use a complex template, for example: ;; ;; ("c" "Contacts" entry (file "~/Org/contacts.org") ;; "* %(org-contacts-template-name) ;; :PROPERTIES: ;; :EMAIL: %(org-contacts-template-email) ;; :PHONE: ;; :ALIAS: ;; :NICKNAME: ;; :IGNORE: ;; :ICON: ;; :NOTE: ;; :ADDRESS: ;; :BIRTHDAY: ;; :END:"))) ;; How to search? ;; - You can use [M-x org-contacts] command to search. ;; ;; - You can use `org-sparse-tree' [C-c / p] to filter based on a ;; specific property. Or other matcher on `org-sparse-tree'. That is about that. One is supposed to record contact in Org properties so that Org facilities help in searching and "managing" such contacts. In my opinion it gives headaches to user. You can as well just write freely your contacts in Org headlines however you wish and then search for it. It asks you to add every single property yourself. Sorry, but I don't like ideas that expand and develop human effort instead of shortening it. Inserting new contacts shall helpfully ask user: - to which main group of people such person belongs? - phone and e-mail - address and minimum country Then the contact information shall be in front of the user to be edited quickly, such as: - how was that contact found? By mailing list, personally, somebody recommended or introduced the contact, from yellow pages, etc. ID 376527 Date created "2022-10-08 08:17:27.964896+03" Date modified "2022-10-08 08:19:56.069822+03" Prefix nil First name "Renato" Middle names nil Last name (People List Name) "Pontefice" Suffix nil Hyperdocument Set #1 nil Profile Image nil ID Document nil Lead source "Mailing List" Title nil Department nil Date of birth or Begin Date nil End date nil Don't contact nil Description nil Modified by username "maddox" Created by username "maddox" Introduced by "Jean Louis" Other names nil Tokens nil Rank 0 Assigned to nil People type "Individual Person" Reports to nil Communication Language nil SIC Code nil Industry nil Tag #1 nil Tag #2 nil Tag #3 nil Active "Active" FROM Identity "GNU.Support" Internal information nil Contact may have multiple relations: 284576 Renato Pontefice member Org Users (Emacs) 284577 Renato Pontefice member Emacs Users think of brother, mother, sister, member, accomplice, etc. In different relations person may have various titles, departments, start and end of relation, etc. and contact may have multiple assigned or related tasks, headings, Org files, passwords, addresses, cash transactions, mailings received, locations, conditions, reminders, reports, SMS, tags, etc. Then the variety of views or summaries of such information shall rather be presented inside of the Org file or any other markup. It means storage for people management shall be separate from any kind of markup including the editor, as that way it gets the capacity to help human in variety of ways. I can understand how people may tell that database is not needed. Some may tend towards RDBMS: ndwarshuis/org-sql: SQL backend for Emacs Org-Mode: https://github.com/ndwarshuis/org-sql Which I find good. It is logical step forward. It also shows that all the structured and ordered data could be managed by RBDMS: https://raw.githubusercontent.com/ndwarshuis/org-sql/master/doc/erd/erd-postgres.png It is yet another Org database wish. It is however good example of design of ordered information. Instead of using Org for management of contacts, I use Org for presentation. That way Org file may remain clean without properties. But it could also contain all the various links as well. This is my way of universal interpolation. Function `rcd-sql-first' invokes SQL for the list of people ID 376526 which is "Org Users". Macro `rcd-db-hyperbole-insert-after' is just for demo, it moves cursor forward and executes function. (defmacro rcd-db-hyperbole-insert-after (after &rest body) "Skip AFTER lines and insert BODY." `(progn (next-line ,after) (insert ,@body))) Hyperbole allows me to activate the button: ⟦ (rcd-db-hyperbole-insert-after 2 (rcd-sql-first "SELECT people_org_basic_list(376526)" cf-db)) ⟧ --snip-- * Org Users (Emacs) ** Mr. Vicente Ramirez, Communications and Reporting Officer, Executive Division People ID: 3 Groups: People who do not exist, Org Users (Emacs) E-mail (Default): vicente.ramirez@example.com Phone (Work): +01987654321 Phone (Mobile): +12345678910 ** Payas Relekar People ID: 376525 Groups: Org Users (Emacs) E-mail (Default): relekarpayas@gmail.com ** Renato Pontefice People ID: 376527 Groups: Emacs Users, Org Users (Emacs) E-mail (Default): renato.pontefice@gmail.com --snip-- and now one can also imagine that each of those communication lines suhc as phones, emails, cell phones, XMPP, etc. can be presented as links for easier access from Org. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/