From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.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 YHE/JqPAuGJeLwEAbAwnHQ (envelope-from ) for ; Sun, 26 Jun 2022 22:25:07 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id +M5UJaPAuGIpFgEAG6o9tA (envelope-from ) for ; Sun, 26 Jun 2022 22:25:07 +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 EC1CE303B5 for ; Sun, 26 Jun 2022 22:25:06 +0200 (CEST) Received: from localhost ([::1]:45998 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o5Yoc-00033n-1U for larch@yhetil.org; Sun, 26 Jun 2022 16:25:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38482) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o5Ynl-00032R-Q6 for emacs-orgmode@gnu.org; Sun, 26 Jun 2022 16:24:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53374) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o5Ynj-00028y-39 for emacs-orgmode@gnu.org; Sun, 26 Jun 2022 16:24:12 -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=kWL7vtEFPQTkQZenENsAYMNTDZfAyzu272hk5t4t4y8=; b=iiBaIFXhwSgr P9fHc0QB1Lernq6T9zCz14Bc0Q8+VWaoGP4xoLrL6kcLuTIGeGSX0AyKOT848Mjr2Q6vo2VHU9kZC xDKccGtnsnSixeiqmtWT1dcviqiKjjd68nB/B0kxdFPjmJugEw6WkcsJFT3y0GeEXAKP97UdT8Grv snbr5pVFztPW24mf8UGJ8jrw+EoQ/nYidmf4alXqMNGMRVN7SzHzqYJcxpRHp3qLsekKuJoiMLQJo 0w7izhwT5aSTZkyRoWDOhlMPyuOBnlm1ooQ/ywvys2/EDqSfOPwSO3KNgk2nhODG6bxlfb9DNfCep NUSPpZq7Py/fYNe7VJiswg==; Received: from mail-yw1-f176.google.com ([209.85.128.176]:39542) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o5Yng-0003NS-RM for emacs-orgmode@gnu.org; Sun, 26 Jun 2022 16:24:09 -0400 Received: by mail-yw1-f176.google.com with SMTP id 00721157ae682-3178acf2a92so68064647b3.6 for ; Sun, 26 Jun 2022 13:24:08 -0700 (PDT) X-Gm-Message-State: AJIora86uQbBlm07D6RRgCOxmaosB1uUmCe78g1i67kqjqQXXFso3tK/ nMa9+6D2g0SltdniT0Desy5eaUOsxhovJgIS5BA= X-Google-Smtp-Source: AGRyM1sL+CI7KZoFxdMdHaMoZdbeB7E0swzt7Y22UtCCfXWRzlrz/QUc4+AqNVLi0zAh/djtLCWh66LGAL9yvqoRiKI= X-Received: by 2002:a81:57d7:0:b0:317:b111:34d5 with SMTP id l206-20020a8157d7000000b00317b11134d5mr11228342ywb.7.1656275048151; Sun, 26 Jun 2022 13:24:08 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Robert Weiner Date: Sun, 26 Jun 2022 16:23:42 -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="000000000000e5429a05e25f956c" 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=1656275107; 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=kWL7vtEFPQTkQZenENsAYMNTDZfAyzu272hk5t4t4y8=; b=LeWQ67zvX3kqon9Im7RNhGQ9XmGyowABDrlcGZMzMA5XBcAq/SoIJuMB24nBmlurzS5MP4 QCVpTJxoUVEbSR5DW+ZbINRN8oDrLsv6i7dCHGLnrG/BL+TXVzv5l71aNbEAZWy6u8u9cu n702+N8ieMhgU8IwFtAsayzJfo08Jo/4iSrwdxg1yT+YqJpGtojP05MpKZClmhDsB11k9H 3Gwr6sLD3OpAuY+izcxy6/KK8Y7/hb69S6mWCisYpwRyZechZNTgeZj7ePUaokUJ0bG4EN gaxHaXyH5Lrs4F4qLlMhohzj9tZGpD03RYz8GgmK+JPA3pI/QbpImSQwJmPE0A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656275107; a=rsa-sha256; cv=none; b=FrThUbkVz52UXYXWwN9EqWNocAZA9qskE5L1n/p8H0O06IflG4pHsfMkm1P8bOn/93l/CW uZTOOj1oxnBrbLqalY68ZBAaJscJg6vU0D3qCLZIhCQKWoQuBdx0U0r5LkWRhmZBkwsMAR nisVEkx0KQ2kH9CYzOCDPHjJ9+rvxVcUR/594zc9NxV3CpIPs+rWUA5hJkQXNa4BgNW6us dEGDmGc1l1CJHmEDwASoFnDqxeMK+b11sd2jWbx+zqnMsq4fwwxKT/mab+1C84U+UvI67b WOYM8WE+TygTXqpUX9618LNMrQOzLX2WvdiKDRbtmWmb9IcnniXHP9UKfElNwQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=iiBaIFXh; 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.16 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=iiBaIFXh; 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: EC1CE303B5 X-Spam-Score: -5.16 X-Migadu-Scanner: scn0.migadu.com X-TUID: DuIzmS9M8qC5 --000000000000e5429a05e25f956c Content-Type: text/plain; charset="UTF-8" That was not the offer. The offer was to show you how to implement a discrete eev command using another framework, possibly simplifying its implementation. Hopefully, from seeing the code used to do this, you could dig in yourself and follow the flow to whatever level you like. Hyperbole, for example, has been implemented across years of part-time work. Of course, it has complexities in its implementation and if the non-abstract parts of that interest you, then use edebug or trace commands to explore the code flow but I wouldn't expect anyone to write that out for you. #3 is closer to the offer. If you want to see a Hyperbole function or button type equivalent, I can show you that, i.e. you load Hyperbole and then you use Hyperbole or eev syntax to jump to a point in a video that is done through a Hyperbole implementation. But I can't explain the Hyperbole dispatching mechanisms except at a high level. hkey-alist in Hyperbole is not hard to understand. The prioritized list of implicit buttons types in Hyperbole is not that hard to understand. That kind of level I can discuss. -- rsw -- rsw On Sun, Jun 26, 2022 at 3:45 PM Eduardo Ochs wrote: > On Sun, 26 Jun 2022 at 15:23, Robert Weiner wrote: > > > > 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. > > I am not sure if I understood your proposal correctly, but let me > propose three tasks that would be pretty natural in eev-land... In all > cases below "explain" means "explain step by step, with links to the > source code and to the docs, and with sexps that inspect the data > structures". > > 1) explain what happens when we type M-RET on this button: > > "subr.el" > > 2) explain what happens when we type: > > C-h h d d > > 3) suppose that we have a function that plays a local copy of your > video "GNU Hyperbole - Overview and Demo". Let's use this fake > function instead of a real one: > > ;; Test: (fake-play-oand "2:34") > ;; > (defun fake-play-oand (time &rest comments) > (move-beginning-of-line 2) > (insert (format "[Play Overview and Demo from: %s]\n" time))) > > Explain how you would implement buttons - choose your favorite > syntax for them - that play "GNU Hyperbole - Overview and Demo" > starting from a given timemark. > > Is that a good starting point? Note the unusual meaning for > "explain"... how would you use Hyperbole to prepare these > "explanations"? > > > 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. > > I'm very interested in seeing your suggestions! Can you be more > concrete? > > [[]], > Eduardo Ochs > http://angg.twu.net/#eev > --000000000000e5429a05e25f956c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
That was not the offer.=C2=A0 The offer was to show you how to= implement a discrete eev command using another framework, possibly simplif= ying its implementation.=C2=A0 Hopefully, from seeing the code used to do t= his, you could dig in yourself and follow the flow to whatever level you li= ke.=C2=A0 Hyperbole, for example, has been implemented across years of part= -time work.=C2=A0 Of course, it has complexities in its implementation and = if the non-abstract parts of that interest you, then use edebug or trace co= mmands to explore the code flow but I wouldn't expect anyone to write t= hat out for you.

#3 is closer to the offer.=C2=A0 If you want to see= a Hyperbole function or button type equivalent, I can show you that, i.e. = you load Hyperbole and then you use Hyperbole or eev syntax to jump to a po= int in a video that is done through a Hyperbole implementation.=C2=A0 But I= can't explain the Hyperbole dispatching mechanisms except at a high le= vel.=C2=A0 hkey-alist in Hyperbole is not hard to understand.=C2=A0 The pri= oritized list of implicit buttons types in Hyperbole is not that hard to un= derstand.=C2=A0 That kind of level I can discuss.

-- rsw

=
-- r= sw

On Sun, Jun 26, 2022 at 3:45 PM Eduardo Ochs <eduardoochs@gmail.com> wrote:
On Sun, 26 Jun 2022 at 15:23, R= obert Weiner <rsw@gnu.o= rg> wrote:
>
> 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.

I am not sure if I understood your proposal correctly, but let me
propose three tasks that would be pretty natural in eev-land... In all
cases below "explain" means "explain step by step, with link= s to the
source code and to the docs, and with sexps that inspect the data
structures".

=C2=A0 1) explain what happens when we type M-RET on this button:

=C2=A0 =C2=A0 =C2=A0 =C2=A0"subr.el"

=C2=A0 2) explain what happens when we type:

=C2=A0 =C2=A0 =C2=A0 =C2=A0C-h h d d

=C2=A0 3) suppose that we have a function that plays a local copy of your =C2=A0 =C2=A0 =C2=A0video "GNU Hyperbole - Overview and Demo". Le= t's use this fake
=C2=A0 =C2=A0 =C2=A0function instead of a real one:

=C2=A0 =C2=A0 =C2=A0 =C2=A0;; Test: (fake-play-oand "2:34")
=C2=A0 =C2=A0 =C2=A0 =C2=A0;;
=C2=A0 =C2=A0 =C2=A0 =C2=A0(defun fake-play-oand (time &rest comments)<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(move-beginning-of-line 2)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(insert (format "[Play Overview and = Demo from: %s]\n" time)))

=C2=A0 =C2=A0 =C2=A0Explain how you would implement buttons - choose your f= avorite
=C2=A0 =C2=A0 =C2=A0syntax for them - that play "GNU Hyperbole - Overv= iew and Demo"
=C2=A0 =C2=A0 =C2=A0starting from a given timemark.

Is that a good starting point? Note the unusual meaning for
"explain"... how would you use Hyperbole to prepare these
"explanations"?

> 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.

I'm very interested in seeing your suggestions! Can you be more
concrete?

=C2=A0 [[]],
=C2=A0 =C2=A0 Eduardo Ochs
=C2=A0 =C2=A0 http://angg.twu.net/#eev
--000000000000e5429a05e25f956c--