From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.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 QL3lDTH+QmM6ZQAAbAwnHQ (envelope-from ) for ; Sun, 09 Oct 2022 19:00:33 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id yCPtDTH+QmNRPwAA9RJhRA (envelope-from ) for ; Sun, 09 Oct 2022 19:00:33 +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 D043138525 for ; Sun, 9 Oct 2022 19:00:32 +0200 (CEST) Received: from localhost ([::1]:59618 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohZfE-0008GI-2P for larch@yhetil.org; Sun, 09 Oct 2022 13:00:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55120) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohZeP-0008DM-7l for emacs-orgmode@gnu.org; Sun, 09 Oct 2022 12:59:41 -0400 Received: from stw1.rcdrun.com ([217.170.207.13]:38725) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohZeN-0007qm-4M for emacs-orgmode@gnu.org; Sun, 09 Oct 2022 12:59:40 -0400 Received: from localhost ([::ffff:197.239.6.155]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 00000000000BBD14.000000006342FDF5.000031A0; Sun, 09 Oct 2022 09:59:32 -0700 Date: Sun, 9 Oct 2022 19:59:04 +0300 From: Jean Louis To: Quiliro =?utf-8?B?T3Jkw7PDsWV6?= Cc: =?utf-8?Q?S=C3=A9bastien?= Rey-Coyrehourcq , Alan Schmitt , emacs-orgmode Subject: Re: SQLite for contacts and relations to Org - Re: contact management in emacs Message-ID: Mail-Followup-To: Quiliro =?utf-8?B?T3Jkw7PDsWV6?= , =?utf-8?Q?S=C3=A9bastien?= Rey-Coyrehourcq , Alan Schmitt , emacs-orgmode References: <87lfb9bwff.fsf@m4x.org> <090c6ca8-62e1-edcd-d348-688281c4840d@univ-rouen.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: 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: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_SBL=0.141, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no 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=1665334833; 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=eNuUjrvtuVWSfb4K0AdX+Nse0P8PAqql/hUC0tHZax0=; b=JBrtqs9SbCwm61/vXgrfiM33ZFJP1oJEXjFk6iFEz2FnB6IM0Ya4Wj5x+wxF0nCP95yPT+ ttxkkF3CTVU5asb43BuhtHnZ5LbcuzLQoW/jhh+tmfsuSAOzLq3ooWH1WwYQvA1GgQBu2x h3eyGqM+cglRJBNxneByoeDoxOhCv4VtuJ76boEBnYAdUi+v38jy+XxTuFiHAqMJIfr+s2 uItKL1cL7Z/RKV2dtOOr6x6hIKPruL1+Q9DzaqoV6AgaXYO3GgWmmhc/G4s3RNUgVfeWeg OeI7Te9VZ7SzrctbHvyO65vmQo43EEFPGG1msoHUI558HuLsnbV7UzQWM/fTRw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1665334833; a=rsa-sha256; cv=none; b=ND8rt3e8oNMAtNuxnVNBppdz7WQhaFjWO0ZU4MIzF3I6oylpIC1nbUJ2U687JawPf9DRN2 Wot0+GI+qtprqvMCVM5/rB2nzQdfWx2X9fgQtyL50AtukKJWC/SceFJRqzbtqHNLUJ/8Jx KM4w2ODcexeQ0QXp7prfjZ3FaglHimV/lsZ86bOPV/YMR5LO6h3KyYLjYDpz1fjIpNMXtC tsG8bhLlnBI2wJD11AnQhkEF1k5qv7nAglFhHqC8KNceuawUmYcSYVMlMKFfww2VQytqF9 jFbJp5mZqVDe5PBRso0LWrtZ9un0P+OgCaRuoAqC1abZhBr16NTSGdp0Nio8yw== 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.18 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: D043138525 X-Spam-Score: -2.18 X-Migadu-Scanner: scn0.migadu.com X-TUID: k85s59e4B+Ra * Quiliro Ordóñez [2022-10-09 18:22]: > El 2022-10-09 05:40, Jean Louis escribió: > > > But I can as well edit my contacts by using external tools and > > exchange information with other software. > > > > Do you wish to share your contacts? That is easy, one can simple send > > the full file to somebody. > > > > By followed the thought patterns described one shall understand that > > contacts may be separated from single mode (Org) and separated from > > single software (Emacs) and that it will not minimize or limit you but > > rather widen the capacities and usefulness for human. > > This is a great summary about the use of database to hold information. > But it requires experience configuring databases for end-users. We speak of what? User experience? We are in Emacs environment, that means you run your application either by using mouse click or by M-x or key binding. In the provided example you as user need nothing else but that. Hypothetically basic actions are just add, modify, delete, search for contacts. You do that by key binding in Emacs, or by mouse, or by M-x In the example provided user need do nothing but that. Even the file can be automatically stored like in ~/.emacs.d/people.sqlite or otherwise configured to be somewhere else. How many options does Org have? The example I have provided may be option free. There is nothing to do but to add, modify, delete, search for contacts, export, and so on; all by using M-x, key binding or mouse. > It could work if the database was set up by someone else or if the > fields were easy to define by the end-user by some kind of > interface. I have actually shown to you how it works, so you have to imagine that all that may be part of the package. Especially with SQLite databases there is nothing to configure. This is what defines where the database is: (defcustom rcd-people-sqlite-file (concat (expand-file-name user-emacs-directory) "rcd-people.sqlite") "SQLite database file location." :type 'file :group 'rcd) We evaluate it: rcd-people-sqlite-file ⇒ "/home/data1/protected/.emacs.d/rcd-people.sqlite" The above variable is part of the package. There is nothing for user to think about it. There is nothing to configure but user is free to customize it. Fields or columns in preset database tables are designed by programmer. It is not hard to have options to add column, delete column or rename column. That is exactly what I am doing on the fly during Emacs sessions. > On the other hand, there is a movement to use plain text for everything. > I know you disagree. There are movements for each and everything. Why should I disagree with movements, I let them be. What I do not agree is to claim strongly that it is useful to keep plain text or clay tables with Cuneiform for every type of information. > But here is some information about accounting > this way: https://plaintextaccounting.org The huge amount of work necessary to create plain text accounting can't be compared to database work and efforts. I guess I have implemented accounting with database about 4 times in my life and I use it in various contexts. Standard accounting is simple. Accounting types (pasted straight from Emacs view of database list): 1 Asset 2 Liability 3 Equity 4 Income 5 Expenses Sample account defined: ID 1 Date created "2022-02-27 18:36:28.690616" Date modified "2022-02-27 18:36:39.372512" User created "maddox" User modified "maddox" Hyperdocument "2022-02-27 Transactions for Joe Doe" Account Type "Asset" Person "Jean Louis" Currency "UGX - Ugandan shilling" Name "Jean Louis" Description nil Code nil It belongs to Hyperdocument which has type of accounting. There may be multiple companies, multiple accounting sets or parents to which accounts belong. No need to open a "new file" for each new company. And then there is journal entry: -[ RECORD 1 ]----------+------------------------------------------------------------------- journal_id | 4 journal_datecreated | 2019-06-12 00:08:04.409559 journal_datemodified | journal_usercreated | maddox journal_usermodified | maddox journal_cashentrytypes | 1 journal_code | journal_description | food journal_debit | 5 journal_credit | 7 journal_amount | 4000 journal_signature | journal_date | 2019-06-10 The entry debits account ID 5, credits account ID 7. > I learned a lot of elisp by reading your long explanation about how to > construct a contact database directly on Emacs 29 without adding > anything else. Thank you very much! Well that is really good, thank you. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/