emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Org, Hyperbole, and eev


From: Robert Weiner
Subject: Re: Org, Hyperbole, and eev
Date: Sun, 26 Jun 2022 14:23:00 -0400

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 <eduardoochs@gmail.com> wrote:
On Sun, 26 Jun 2022 at 13:29, Robert Weiner <rsw@gnu.org> 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.  <find-file "~/.org/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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]