all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jean Louis <bugs@gnu.support>
To: rswgnu@gmail.com
Cc: David Masterson <dsmasterson@gmail.com>,
	Samuel Wales <samologist@gmail.com>,
	emacs-org list <emacs-orgmode@gnu.org>
Subject: Re: Org and Hyperbole
Date: Sun, 9 Oct 2022 12:54:51 +0300	[thread overview]
Message-ID: <Y0Kaa7itx2eVFNOy@protected.localdomain> (raw)
In-Reply-To: <CA+OMD9jm_F6C=ioFGpes6cOrH=xx88z2a1A6dv5Vc0PbN3+sZA@mail.gmail.com>

* Robert Weiner <rsw@gnu.org> [2022-10-09 00:06]:
> We had object-based, multi-media files with Engelbart's NLS/Augment
> system.  We had relational databases way before the web.
> 
> But here we are in 2022 with enormous personal computing power and for
> interactive editing, everyone is using and transferring stream-based files
> of characters that are then interpreted at the delivery site.

Alright, though I do not see relation from transferring files to
databases. Just any digital information may be transferred to delivery
sites by many different means. I understand that two paragraphs are
related and I inject my thoughts in maybe not proper place.

> There are many reasons for this including limits in many
> organizations of the file types that may be transferred through
> common protocols and the difficulty of maintaining relational
> database or structured file type schemas across time.

I can't see how relational database is more difficult to maintain then
for example Emacs itself. Emacs is master of difficulties for computer
user. For example I have not touched configuration files for
PostgreSQL since years, if not decades. I start wondering why.

Backing up relational database is so much easier than backing up
plethora of apparently randomly dispersed files. It is just single
command line or click on some graphical interface. Just do
`pg_dumpall'. 

Let us say I wish to backup all the information that Hyperbole created
in various directories, on computer, is there such option? Missing.

We can't compare apples and eggs, but I have to give you for thinking. 

Hyperbole buttons in their files are underlying structure, user need
not know anything about it. User has interface and uses higher level
interface functions.

But let us analyze it little that way. If you have a Hyrolo file, what
you can do with it? You can send it to somebody? But that somebody
need to use what? Emacs or any editor to work with contacts.

Today users use mobile devices, they exchange structured contact
information by using vCard format, and users of many mobile devices can
accept contact information from other operating systems and import in
their phones as one or multiple without problems.

Hyrolo can't transfer contact information. And why? Because it is
written more or less freely in the text file and it is not structured. 

We don't speak of maintaining Hyrolo -- that is not easy task really,
it needs GNU Emasc which has so many dependencies, then it needs
Hyperbole, then user can handle Hyrolo. What I want to say we shall
not think of complexities, issues of installation and underlying
management by software are not concern for user. User shall be able to
click and get application. That is what 50% of people using computers
know, they have mobile devices, they click and get it. No thinking
there, but I don't say it advances society that way.

In any relational databases there are views and various exports and
unlimited variations how final data may be presented to user.

Let us say contacts, that may be transferred by using vCard
mechanism. Various other formats are possible.

Let us say I need to exchange tasks, that is what I do all the
time. Nobody at delivery site need know that I have underlying
PostgreSQL database, that is not their business. They will get the
PDF, image, video, text, WWW link, ZIP, and similar. Delivery site
will get it delivered in the format how they can read it.

If delivery site needs full database, it is just matter of two
commands pg_dumpall and pg_restore and even those commands may be
automated.

Full database is similar to file system. One does not share file
system, one shares database entries. And how such entries are shared
depends of the programmer and user. Thousands of entries from my
database are shared through web server and as HTML documents. Program
generates PDF files and text, and emails for plans, programs and
projects, and such are shared by any type of communication channel.

> Simple tends to win out over more powerful because few people want to bear
> the cost of continual training to raise all of the newcomers to a level of
> performance that they cannot teach themselves.

Today people use structured information without knowing. Contacts on
phone are structured. Even notes' applications on mobile devices are
pretty much structured, usually stored in SQLited databases and
exported in various ways. Much of information in any libraries, online
databases, and personal computers is stored in such databases.

> I like your model, Jean, and am a fan of such things but I am also
> pragmatic and thus focus on building things that I think people will
> consume within a given environment.

In the Emacs environment we consume anything that is useful, it is
wide open. Emacs 29 comes with SQLite built-in. That is advance,
progress. 

We can progress all with databases.

>  In Hyperbole's case, it is base Emacs and nothing more.

Emacs alone has many ways to store ordered and structured
information.

> If you are familiar with what it takes to standup a scalable web
> application today (what everyone wants), you understand why that is
> not a great model for systems where the users have to manage and
> customize the infrastructure themselves.

I can't. 

What I think is that you never tried it out and did not understand
that database minimizes human efforts and errors. It minimizes our
efforts also because many functions you have programmed for Hyperbole
and many functions people do in Org are already built-in in the
database.

There are many various systems that use ordered information.

Example is Leo editor:

Leo programmable editor:
http://leoeditor.com/

Leo editor vs Org-mode:
https://leoeditor.com/emacs.html

I guess it fully uses database and thus it can handle ordered
information so much easier.

I have examined hyrolo-add function, it only adds a single name to the
file. And function is that huge.

Here is function that adds name, email and description in the simple database:

(defun my-people-add ()
  (interactive)
  (let* ((first-name (read-string "First name: "))
	 (middle-names (read-string "Middles names: "))
	 (name-or-last-name (let ((result))
			      (while (not result)
				(setq result (apply 'read-string '("Last name: "))))
			      result))
	 (email (read-string "Email: "))
	 (description (read-string "Description: ")))
    (sqlite-execute my-db "INSERT INTO people (people_firstname, people_middlenames, people_name, people_email, people_description)
                           VALUES (?, ?, ?, ?, ?) RETURNING people_id" 
		    (list first-name middle-names name-or-last-name description))))

And then we speak of internal and external complexities. But those are
subjective opinions.

What is objective is to see the how big is the code that handles
purely text (and never reaches the point of being deterministic) and
the size of code that handles equivalent functions using database.

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/


  reply	other threads:[~2022-10-09 10:17 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-24  1:45 Org and Hyperbole Robert Weiner
2022-06-24  1:56 ` Robert Weiner
2022-06-24  4:32   ` Samuel Wales
2022-06-24  5:34     ` Robert Weiner
2022-06-24 10:55       ` indieterminacy
2022-06-24 12:51         ` Robert Weiner
2022-10-08 20:26           ` Robert Weiner
2022-10-10  4:02             ` indieterminacy
2022-09-27 13:59       ` Jean Louis
2022-10-04  6:10         ` Robert Weiner
2022-10-04 18:05           ` David Masterson
2022-10-07 19:52             ` Jean Louis
2022-10-08 21:05               ` Robert Weiner
2022-10-09  9:54                 ` Jean Louis [this message]
2022-10-10 16:44                   ` David Masterson
2022-10-10 23:04                     ` Jean Louis
2022-10-11  0:21                       ` David Masterson
2022-10-07 22:57             ` Jean Louis
2022-10-10 16:50               ` David Masterson
2022-10-10 23:07                 ` Jean Louis
2022-10-08 20:53             ` Robert Weiner
2022-10-09 11:16               ` Jean Louis
2022-10-10 16:52               ` David Masterson
2022-10-07 22:18           ` Jean Louis
2022-09-27 13:52     ` Jean Louis
2022-06-24  2:13 ` Eduardo Ochs
2022-06-24  2:20   ` Robert Weiner
2022-06-24  2:14 ` Robert Weiner
2022-06-24  6:29 ` Tim Cross
2022-06-24 12:44   ` Robert Weiner
2022-06-24 13:52 ` Juan Manuel Macías
2022-06-24 22:06   ` Robert Weiner
2022-06-25 14:32     ` Juan Manuel Macías
2022-06-25 20:35       ` Robert Weiner
2022-10-08 20:34       ` Robert Weiner
2022-10-08 21:43         ` Juan Manuel Macías
2022-06-24 17:57 ` João Pedro
2022-06-25  1:32   ` Robert Weiner
2022-07-02  4:41     ` Samuel Wales
2022-07-02  4:49       ` Ihor Radchenko
2022-07-02  4:57         ` Samuel Wales
2022-07-02  5:12           ` Ihor Radchenko
2022-07-02 21:38             ` Samuel Wales
2022-07-07 12:18     ` Max Brieiev
2022-07-07 12:27       ` Ihor Radchenko
2022-07-16 23:16         ` Robert Weiner
2022-07-16 23:17           ` Robert Weiner
2022-06-25 19:07 ` David Masterson
2022-06-25 20:49   ` Robert Weiner
2022-06-25 21:18     ` David Masterson
2022-10-08 19:44       ` Robert Weiner
2022-09-27 14:06     ` Jean Louis
2022-10-04  6:11       ` Robert Weiner
2022-10-07 22:04         ` Jean Louis
2023-03-02 22:50           ` bug#58371: " Bob Weiner
2023-03-12 22:20           ` Mats Lidell
2022-06-26  6:37 ` Siva Swaminathan
2022-06-26  7:24   ` tomas
2022-06-26 20:03     ` David Masterson
2022-06-26 20:27       ` indieterminacy
2022-06-26 20:51         ` Robert Weiner
2022-06-27 23:16           ` David Masterson
2022-06-26 20:27   ` Robert Weiner
2022-10-08 19:52   ` Robert Weiner
2022-07-04 10:43 ` Fraga, Eric
2022-07-04 11:01   ` Ihor Radchenko
2022-07-04 11:08     ` Fraga, Eric
2022-07-04 11:09   ` Tim Cross
2022-07-04 14:20     ` Fraga, Eric
2022-07-04 16:56       ` Robert Weiner
2022-07-06 16:58         ` Fraga, Eric
2022-07-07  2:33           ` Robert Weiner
2022-07-07 10:46             ` Fraga, Eric
2022-10-08 20:01               ` Robert Weiner
  -- strict thread matches above, loose matches on Subject: below --
2022-10-09  9:12 Payas Relekar
2022-10-04  6:46 Payas Relekar
2022-10-07 22:44 ` Jean Louis
2022-10-08  0:45   ` Hendursaga
2022-10-08  1:05     ` Jean Louis
2022-10-08 17:04       ` Robert Weiner
2022-10-08 20:48 ` Robert Weiner
2022-06-22 19:57 linux_hpc_akr
2022-06-23  6:47 ` Bill Burdick
2022-06-23  6:53   ` Bill Burdick
2022-06-20 14:03 Juan Manuel Macías
2022-06-20 15:26 ` Russell Adams
2022-06-20 16:57   ` Eduardo Ochs
2022-06-20 23:28     ` Juan Manuel Macías
2022-06-20 23:37   ` Tim Cross
2022-09-27 13:06     ` Jean Louis
2022-09-27 15:08       ` Russell Adams
2022-10-08 17:26         ` Robert Weiner
2022-09-27 13:18     ` Jean Louis
2022-06-22 15:13   ` Russell Adams
2022-06-22 17:36     ` Bill Burdick
2022-06-22 18:05       ` David Masterson
2022-06-22 19:03         ` Bill Burdick
2022-06-23  3:46           ` David Masterson
2022-06-20 15:56 ` Uwe Brauer
2022-06-20 16:09 ` Bill Burdick
2022-06-20 16:24 ` indieterminacy
2022-06-22 14:48   ` Juan Manuel Macías
2022-09-27 13:26   ` Jean Louis
2022-06-21  3:08 ` David Masterson
2022-06-22 10:37   ` Juan Manuel Macías
2022-06-22 14:35     ` Bill Burdick
2022-06-22 19:23       ` David Masterson
2022-06-22 19:26         ` Bill Burdick
2022-06-22 19:55           ` Bill Burdick
2022-06-23 18:48       ` Eduardo Ochs
2022-06-22 19:17     ` David Masterson
2022-06-23  1:12     ` Samuel Wales
2022-06-23  4:04       ` David Masterson
2022-06-23  5:22         ` indieterminacy
2022-06-23 15:38           ` Samuel Banya
2022-06-23 23:30           ` Samuel Wales
2022-06-23 23:36             ` Samuel Wales
2022-06-24  5:50               ` indieterminacy
2022-09-27 13:33       ` Jean Louis
2022-10-07 20:34       ` Jean Louis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y0Kaa7itx2eVFNOy@protected.localdomain \
    --to=bugs@gnu.support \
    --cc=dsmasterson@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=rswgnu@gmail.com \
    --cc=samologist@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.