* Quiliro Ordóñez <quil...@riseup.net> [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/