From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id AG+dAq2kuGJmBwAAbAwnHQ (envelope-from ) for ; Sun, 26 Jun 2022 20:25:49 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id MOWIAq2kuGLEEAAAauVa8A (envelope-from ) for ; Sun, 26 Jun 2022 20:25:49 +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 6416B15CEF for ; Sun, 26 Jun 2022 20:25:48 +0200 (CEST) Received: from localhost ([::1]:60646 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o5Wx9-0006qR-G6 for larch@yhetil.org; Sun, 26 Jun 2022 14:25:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45010) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o5Wut-0005G9-92 for emacs-orgmode@gnu.org; Sun, 26 Jun 2022 14:23:29 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51764) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o5Wut-0007qU-0g for emacs-orgmode@gnu.org; Sun, 26 Jun 2022 14:23:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=To:Subject:Date:From:In-Reply-To:References: MIME-Version; bh=JmFTORJdpqUMpoGYaFrFR2ktf/5E9agCKsTXT+1Pyro=; b=nmY2KJ/J/HZv nQA9Bb6ZYw/HJ/EsE57nQ7IkXeRItTZtCL6IC+Hvs3D2jPm0kF8mlB6DOb+Z7jd98TkLTpRdy/q69 HcnsYTq9n/tG86R38b4Bazzc+5PeaEdByFJzsPqV4D7iYw41JLH33h/eCEo+SBdtu1Z8/GmZpFsAn ZShEaT2m9xcjXVpXOE2N7ZtQYAdFVsXcu2tHLoL5O3IhghbyS4lnygKG97xOKYR65//zrFwpIvuFY nfI4u9C+7sf4+VkrvFNzcA5GEvN9OItv7e3RSbhXeZkijNJ18dQYh2a9CmTBJHVxJXV9u4u5s1Qht IGjpI5ECBylJhB3xMFAzoQ==; Received: from mail-yb1-f179.google.com ([209.85.219.179]:44933) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o5Wus-00083B-Q6 for emacs-orgmode@gnu.org; Sun, 26 Jun 2022 14:23:26 -0400 Received: by mail-yb1-f179.google.com with SMTP id i7so13154702ybe.11 for ; Sun, 26 Jun 2022 11:23:26 -0700 (PDT) X-Gm-Message-State: AJIora/xVTXl8BcZG9V2oEohSmD+KoJmUtrtoirnt2oSekKnx28cdr6A W2PBBxkhe6RkUfKhDjZUtnDpvIZJAQtkK5gjrlA= X-Google-Smtp-Source: AGRyM1tWdv6/WMj8maVRx6acn91aj6l0esYCqJe9L+MXfXlzHCq/iQLQLFJn7wQrWjEDkKgH5lQ1C9uZnSLCNrmkCVc= X-Received: by 2002:a25:2d2:0:b0:66c:a2db:547d with SMTP id 201-20020a2502d2000000b0066ca2db547dmr4423165ybc.72.1656267806223; Sun, 26 Jun 2022 11:23:26 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Robert Weiner Date: Sun, 26 Jun 2022 14:23:00 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Org, Hyperbole, and eev To: Eduardo Ochs Cc: Org Mode Content-Type: multipart/alternative; boundary="0000000000003e320405e25de630" 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: , Reply-To: rswgnu@gmail.com Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1656267948; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=JmFTORJdpqUMpoGYaFrFR2ktf/5E9agCKsTXT+1Pyro=; b=aPwab9hB+aRgsJIouG9B1/8jKHDX4zeisbz5lRQtRREXXusFxcdEIg/x6sdYe8HmasYLyz yz0YXgcHdIKwIRWjqDlQ6hkmXn3dGnm+Gu8opzBN6oCnGkTTtKjexPkvhTqqG/feusb3eP 513CpHbqf4CGOZaN4pHMesFCBQJDenJ/E9lCKXa5h+sSEcNA2FIIvak7MdCzU5k8uHbTzC odTXFZsVx5hZHCwFudbK7vOBC/O/JMpFsJVinnOQFPCBUNRLBxhe1W7TTLe96uJi5ztzPi uJGitmCpn+x6WzvJqcGnF1UQqDybhMYbpMh7N9/J/QUn1JKCOa0ogZ5MLc0twA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656267948; a=rsa-sha256; cv=none; b=HPzcx77REjvUC7WKhkafyQ9ePawllD/akEVEe1snsErbR7qWRrRoMJ70EPg94oYvmmsE+/ kBHFAXUFNcr66yCDBNCO7zg+noW9ZdssKBcF7omTKb/ayJwvOyCDFyVrGm5IiuW/U8BW7x rEVrsmPnKOO9PTwbkB7Doq97309LhrsHXMkOzVpYlClPcDSCXVLAqj0Th6Z7rpxBZwRrnO fSKWIc09NgYzEGkijSyH87QGKAUh2XOevXH0RtNTxdYi8g++ryMzHhSMCjvUy3gTyWtmb5 TyYOzQnPtYUOOqiUIOd5YajMvPdvMhV8sgmFQGFf15hjM5H0rBA/pPxs5n98KQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b="nmY2KJ/J"; dmarc=pass (policy=none) header.from=gnu.org; 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: -5.26 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b="nmY2KJ/J"; dmarc=pass (policy=none) header.from=gnu.org; 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: 6416B15CEF X-Spam-Score: -5.26 X-Migadu-Scanner: scn0.migadu.com X-TUID: H9+nho7kmWzv --0000000000003e320405e25de630 Content-Type: text/plain; charset="UTF-8" Hi Eduardo: I do get this and see this is why you have not leveraged Hyperbole or Org for eev implementation. (I do feel eev has a number of interesting and useful ideas, and as I've said to you personally, I just hoped you could use Hyperbole or other existing Emacs infrastructure to avoid embedding so much code within eev). I took a brief look today at some of the code in the latest packaged release of eev from ELPA, as well as a bit at some of your email archives and video links. What I see is that you like things extraordinarily concrete and packages like Hyperbole and Org try to build up generalized abstractions that can be used in many contexts. When you try to break down how these abstractions work at the very low-level concrete mental model you like, you find them too complex and therefore have to set them aside. If you can't bend on that, then I think your choice is right, to just build large amounts of low-level code that meets your needs. I think the way you archive long lists of hyperlinks into videos for every few words spoken in the video speaks to this style. I see the utility but this is not a common style or need. It feels like we are offering a 'pour a glass of water' function and you are trying to understand the physics of the molecular movement within the water while it is pouring. Because you struggle to do so, you decide you can't use our functions/capabilities, which is fine if this is how your mind works, but really should not be a commentary upon the packages provided. You see each day new people are coming to these packages and figuring out not only how to use them but to extend them to meet their needs, either through new hyperbutton types or snippets of additional code. So they can be bent to people's wills but you have to be willing to deal with abstractions, not the equivalent of assembly language to do so. Maybe if you could pick a single eev function that you think could be implemented with Org and Hyperbole and pointed us to the documentation for that, then we could show you an equivalent one using these packages and begin to give you a better sense of how you would go about leveraging what has been built. You document everything in detail, so this should be pretty simple. >From my perspective, I do really like your idea of replayable notebooks for training and interaction purposes. And you have certainly made that easy to use via eev. But your implementation could use much better organization and abstraction which would likely greatly reduce the code size as well. You should separate out computation of what you want to display from how and where you will display it as one technique. -- rsw On Sun, Jun 26, 2022 at 1:52 PM Eduardo Ochs wrote: > On Sun, 26 Jun 2022 at 13:29, Robert Weiner wrote: > > Hi Eduardo: > > > > I really think that you are confused in saying that Hyperbole and Org > are hacker-unfriendly. Yes, they are targeted at users who don't have to > understand the programming, but if you do understand Lisp programming well, > the interactive features are available as Lisp functions in almost all > cases, so you simply have to dive in, find the functions you want and > utilize or change them. > > > > In fact, Hyperbole offers 'action implicit buttons' that utilize > angle-bracket syntax to turn any Lisp function (or hyperbole button type > call or variable reference) into a hyperbutton that runs the function with > arguments or displays the variable, e.g. my-org-file.org">. > > > > With Hyperbole, much of the behavior is factored into class-like > libraries with the 'methods' alphabetized and separated into public and > private groupings. Now some of this code is complex in order to handle > many contexts and make things simple to the user but that is a matter of > you understanding this complexity if you want to hack on it. > > > > I'm not sure what else you could ask for in packages. > > > Hi Robert, > > let me see if I can find something useful to say... > > Most of the people that I know who became active users of eev were > "beginner programmers" when they started using eev - by "beginner > programmers" I mean that their mental buffers were still quite small, > and they couldn't understand well functions that were more than a few > lines long. I wanted to make eev more accessible to people like them, > and I treated their feedback very seriously. > > One of the techniques that I used to make eev more accessible to them > is described in this video, > > http://angg.twu.net/find-elisp-intro.html > (find-1stclassvideo-links "2022findelispintro") > (find-2022findelispintrovideo "14:36") > > from 14:36 onwards - "put several similar examples close to one > another, starting by the most basic ones". > > I treated that technique as "obvious" for many years - I just used it > in many places, and I thought that the users would notice that > pattern, and start to use it in their own notes. That didn't work, and > I saw that I had to spell out that technique explicitly, and repeat it > often. > > When I asked you questions about how to create eev-style sexps that > would behave as hyperbole-style buttons, in some of the e-mails that I > point to here, > > http://angg.twu.net/hyperbole.html > > I was signaling that my mental buffers were almost full... at that > point explanations in English helped me very little, and I was trying > to write "several similar examples close to one another, starting by > the most basic ones" to factor your code conceptually via tests. > > I _still_ think that your buttons and menus are hacker-unfriendly. The > source code is available, yes, but I spent several evenings trying to > understand them in my "non-user" way, and I got a mental buffer > overflow instead of enlightenment... and I also spent many hours > writing e-mails to the Hyperbole mailing list, but the answers left me > very frustrated. > > Hope that helps, =/ > Eduardo Ochs > http://angg.twu.net/#eev > --0000000000003e320405e25de630 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Eduardo:

I do get this and see this is why you have = not leveraged Hyperbole or Org for eev implementation.=C2=A0 (I do feel eev= has a number of interesting and useful ideas, and as I've said to you = personally, I just hoped you could use Hyperbole or other existing Emacs in= frastructure to avoid embedding so much code within eev).

I took a= brief look today at some of the code in the latest packaged release of eev= from ELPA, as well as a bit at some of your email archives and video links= .=C2=A0 What I see is that you like things extraordinarily concrete and pac= kages like Hyperbole and Org try to build up generalized abstractions that = can be used in many contexts.=C2=A0 When you try to break down how these ab= stractions work at the very low-level concrete mental model you like, you f= ind them too complex and therefore have to set them aside.=C2=A0 If you can= 't bend on that, then I think your choice is right, to just build large= amounts of low-level code that meets your needs.=C2=A0 I think the way you= archive long lists of hyperlinks into videos for every few words spoken in= the video speaks to this style.=C2=A0 I see the utility but this is not a = common style or need.=C2=A0 It feels like we are offering a 'pour a gla= ss of water' function and you are trying to understand the physics of t= he molecular movement within the water while it is pouring.=C2=A0 Because y= ou struggle to do so, you decide you can't use our functions/capabiliti= es, which is fine if this is how your mind works, but really should not be = a commentary upon the packages provided.

You see each day new people= are coming to these packages and figuring out not only how to use them but= to extend them to meet their needs, either through new hyperbutton=C2=A0ty= pes or snippets of additional code.=C2=A0 So they can be bent to people'= ;s wills but you have to be willing to deal with abstractions, not the equi= valent of assembly language to do so.

Maybe if you could pick a sing= le eev function that you think could be implemented with Org and Hyperbole = and pointed us to the documentation for that, then we could show you an equ= ivalent one using these packages and begin to give you a better sense of ho= w you would go about leveraging what has been built.=C2=A0 You document eve= rything in detail, so this should be pretty simple.

From my perspe= ctive, I do really like your idea of replayable notebooks for training and= =C2=A0interaction purposes.=C2=A0 And you have certainly made that easy to = use via eev.=C2=A0 But your implementation could use much better organizati= on and abstraction which would likely greatly reduce the code size as well.= =C2=A0 You should separate out computation of what you want to display from= how and where you will display it as one technique.

-- rsw

On= Sun, Jun 26, 2022 at 1:52 PM Eduardo Ochs <eduardoochs@gmail.com> wrote:
On Sun, 26 Jun 2022 at 13:29, Robert Wein= er <rsw@gnu.org>= wrote:
> Hi Eduardo:
>
> I really think that you are confused in saying that Hyperbole and Org = are hacker-unfriendly.=C2=A0 Yes, they are targeted at users who don't = have to understand the programming, but if you do understand Lisp programmi= ng well, the interactive features are available as Lisp functions in almost= all cases, so you simply have to dive in, find the functions you want and = utilize or change them.
>
> In fact, Hyperbole offers 'action implicit buttons' that utili= ze angle-bracket syntax to turn any Lisp function (or hyperbole button type= call or variable reference) into a hyperbutton that runs the function with= arguments or displays the variable, e.g.=C2=A0 <find-file "~/.org/= my-= org-file.org">.
>
> With Hyperbole, much of the behavior is factored into class-like libra= ries with the 'methods' alphabetized and separated into public and = private groupings.=C2=A0 Now some of this code is complex in order to handl= e many contexts and make things simple to the user but that is a matter of = you understanding this complexity if you want to hack on it.
>
> I'm not sure what else you could ask for in packages.


Hi Robert,

let me see if I can find something useful to say...

Most of the people that I know who became active users of eev were
"beginner programmers" when they started using eev - by "beg= inner
programmers" I mean that their mental buffers were still quite small,<= br> and they couldn't understand well functions that were more than a few lines long. I wanted to make eev more accessible to people like them,
and I treated their feedback very seriously.

One of the techniques that I used to make eev more accessible to them
is described in this video,

=C2=A0 http://angg.twu.net/find-elisp-intro.html
=C2=A0 (find-1stclassvideo-links "2022findelispintro")
=C2=A0 (find-2022findelispintrovideo "14:36")

from 14:36 onwards - "put several similar examples close to one
another, starting by the most basic ones".

I treated that technique as "obvious" for many years - I just use= d it
in many places, and I thought that the users would notice that
pattern, and start to use it in their own notes. That didn't work, and<= br> I saw that I had to spell out that technique explicitly, and repeat it
often.

When I asked you questions about how to create eev-style sexps that
would behave as hyperbole-style buttons, in some of the e-mails that I
point to here,

=C2=A0 http://angg.twu.net/hyperbole.html

I was signaling that my mental buffers were almost full... at that
point explanations in English helped me very little, and I was trying
to write "several similar examples close to one another, starting by the most basic ones" to factor your code conceptually via tests.

I _still_ think that your buttons and menus are hacker-unfriendly. The
source code is available, yes, but I spent several evenings trying to
understand them in my "non-user" way, and I got a mental buffer overflow instead of enlightenment... and I also spent many hours
writing e-mails to the Hyperbole mailing list, but the answers left me
very frustrated.

=C2=A0 Hope that helps, =3D/
=C2=A0 =C2=A0 Eduardo Ochs
=C2=A0 =C2=A0 http://angg.twu.net/#eev
--0000000000003e320405e25de630--