From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id yFWMAM0vs2LjDgEAbAwnHQ (envelope-from ) for ; Wed, 22 Jun 2022 17:05:49 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id yIowO8wvs2I88gAAG6o9tA (envelope-from ) for ; Wed, 22 Jun 2022 17:05:48 +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 7D10D3B821 for ; Wed, 22 Jun 2022 17:05:48 +0200 (CEST) Received: from localhost ([::1]:53820 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o41TC-0000iF-Ln for larch@yhetil.org; Wed, 22 Jun 2022 10:36:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33204) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o41SS-0000hs-9j for emacs-orgmode@gnu.org; Wed, 22 Jun 2022 10:35:52 -0400 Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30]:35636) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o41SQ-0007ZC-0I for emacs-orgmode@gnu.org; Wed, 22 Jun 2022 10:35:52 -0400 Received: by mail-yb1-xb30.google.com with SMTP id t1so30533323ybd.2 for ; Wed, 22 Jun 2022 07:35:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aDX/VzOwjIYQIutuSrf0rJFV/1e3Fbme2cASrbBdOhQ=; b=PlPr9NczpWrr6Z3hkWsRtxo+b1/HikWfEvul3xnCf50y6tiRKVIK/hg3gAIhFVUxxf IgPMXL3ZEfhnev9QjM60BZxPw2sdrDpWPx2KPgEMa0SNrYS7Q1R6zracJmMtMB96+buK R2NCjaOJg5Bu2G4v4ZYLg2bkad0gDwxZQ98/e6E9Pv9+MYTMp+A5DOjBJY3KV2yuhubF UledMX8puJ7pky1qR+5pjSOzivyb9Y67XnEXEqBKg3PRNnwYfpe9ljDmtaVAfckw1yYg TlsmdX0Vwy8DaF8NGoFJeClXbhfGnE5HHQEaMnUh0nXtQDaMesOfR/rzcVLb2q+IN9pq jcLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aDX/VzOwjIYQIutuSrf0rJFV/1e3Fbme2cASrbBdOhQ=; b=W3ftnWh5nlpD/58ivyd2uITKUGUGjpYjmYQbQaHviHC45AFNsHQSZSqizwM8zVoaKc jIA8/oF2j/LtDHuANCtltm6h87LH706DtVzY604y56s3TKiplayq6UBBcr/NBjV5cVzI 8kNLtskIXw7ybViY5Ohs99tNkZNXcYwafpgzQ5vSMvRIrHcb7O/S6a59I0zIOYT0hcP6 enmcn8PB0zDlw+yLurbPAVPmrBzvxhgCnfFtWV0KzxQOnKd7CeSDGBUF8ZAcLvxx5ZG6 nOsKvoIg9p5GE4SoNYBQyURQvZPdKtRZYD0iqcbfhYCuokgAos7GbqHhLa5LKg1rFtSY nLXw== X-Gm-Message-State: AJIora+I55R9512uFfHRm6loqs0+kRfCNRIfl09U0C/AJT5gVKUqz5xX WD2HC0bEbUb0ljK+rshVNb/pWlzMmlSXowVzAPo= X-Google-Smtp-Source: AGRyM1vN5+3qeVPKtFUaw8/gckf9ciaJXZguTcSLOZJwu+wVw0WJlSoZe9Gv+AlSLSbbwHOBUAKjT7r4/gu2OQSjSQ0= X-Received: by 2002:a25:ad68:0:b0:668:ca95:3cd2 with SMTP id l40-20020a25ad68000000b00668ca953cd2mr4042146ybe.593.1655908548420; Wed, 22 Jun 2022 07:35:48 -0700 (PDT) MIME-Version: 1.0 References: <875ykvbffg.fsf@posteo.net> <87a6a5gf1p.fsf@posteo.net> In-Reply-To: <87a6a5gf1p.fsf@posteo.net> From: Bill Burdick Date: Wed, 22 Jun 2022 17:35:37 +0300 Message-ID: Subject: Re: Org and Hyperbole To: =?UTF-8?Q?Juan_Manuel_Mac=C3=ADas?= Cc: David Masterson , orgmode Content-Type: multipart/alternative; boundary="000000000000cf2a8805e20a4011" Received-SPF: pass client-ip=2607:f8b0:4864:20::b30; envelope-from=bill.burdick@gmail.com; helo=mail-yb1-xb30.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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: , 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=1655910348; h=from:from:sender:sender: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=aDX/VzOwjIYQIutuSrf0rJFV/1e3Fbme2cASrbBdOhQ=; b=Bu58i8dAHsDiQu+Q1XHZSEd6Mn9R7Q40VgKo5jaXPgwVtDntnhCmUUxAavJRZW7wLun4Wr TdztAxH9aEDGEGVKluv3KMaJS34h+jZdrRGNzGNb+O2FcALjoinc9WVM+5Fnp2oCuRw/A5 NTf6xEEcrXUv4giRJi/Oh5l5sUTeDCPVYCnama3UGh9wqKSy7yg44e8vqP60k0/xtTIqDL urQ2WwZk23CSgvJ8imnit2+/H/YTqn3LuHYwjmPDF3nvf8ElvNNH6XnDYphz0SmnzOfkGR EFv/xZRk/ZHAt9LbqcuLCDiL+yvMVaFMqFkT1IhujJiy+gDm1XJuxhPPhfMArg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1655910348; a=rsa-sha256; cv=none; b=onHnFsiXgQtdh8pfqC8BD7ion1LNtYZXw37detifRFqyFMtS3hw5LrfWyv030vcFRO6Wi+ HkHerxnfsWfmdgZx043naA8CLL4c1yFENU+PSVIl89riFiDA0cVCfITaBQFDzL2Fua6NS4 bxfNzWUDN3O54lqwyG9vrE0yU5y638MeuTI7qn85W6D/z0uV9n6PBqjT8w1jKDZA01JLer mnhTh/817NK0+PKilTafjl2cM+rRSXiir1HrTekieC7fPeaolgqYo3UrfvwBSMKfUEQJEc rE6ekyvwgZsuk1wpYqpHNfSKGXrsjmmAedlAh5rShJ8Kg76cntgmxpqQDkjfjw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=PlPr9Ncz; dmarc=pass (policy=none) header.from=gmail.com; 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: -3.96 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=PlPr9Ncz; dmarc=pass (policy=none) header.from=gmail.com; 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: 7D10D3B821 X-Spam-Score: -3.96 X-Migadu-Scanner: scn0.migadu.com X-TUID: vYeahF/HfoQ0 --000000000000cf2a8805e20a4011 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Here's a hyperbole-org integration that lets you use org-mode tables outside of org-mode files. Shift-middle-click a "recalc" button and it will recalculate the table right under it (this idea is from an old version of the Oberon environment I wrote in Java, by the way). Here's the code: (defun bill/calc (end) (goto-char end) (re-search-forward "\n") (when (org-at-table-p) (org-table-analyze) (let* ((table-start (point)) (rows (1- (length org-table-dlines))) (table-end (re-search-forward "\n" nil t rows)) (inside (<=3D table-start action-key-depress-prev-point table-end))) (when inside (goto-char action-key-depress-prev-point) (org-table-maybe-eval-formula)) (goto-char table-start) (call-interactively 'org-table-recalculate) (org-table-align)))) (defib recalc () "recalculate a table" (save-excursion (let* ((pos (point)) (eol (progn (re-search-forward "\n") (point))) (bol (progn (re-search-backward "\n" nil t 2) (1+ (point)))) (start (progn (goto-char pos) (re-search-backward "<" bol t))) (end (progn (goto-char pos) (re-search-forward ">" eol t)))) ;;(message "pos: %s, prev: %s" (point) action-key-depress-prev-point) (and start end (string-match " ].*" (buffer-substring start end)) (hact 'bill/calc end))))) Here's an example table you can put anywhere. Just shift-middle-click on it to recalculate the org-mode table. Also, if you type a formula (and keep the cursor on the same line) and then shift-click recalc, it'll handle the formula: | a | 12 | | a | 5 | #+TBLFM: @1$2=3D3*4::@2$2=3D2+3 -- Bill On Wed, Jun 22, 2022 at 1:38 PM Juan Manuel Mac=C3=ADas wrote: > Hi David, > > David Masterson writes: > > > I haven't touched Hyperbole in ...decades...? Even then, it was > > complicated and full-featured (but I still keep it in my .emacs file). > > My discussions with Bob Weiner were interesting at the time and I reall= y > > wanted to make use of it. > > > > As you've discovered, it integrates a lot of what Org has in, perhaps, = a > > tighter fashion (which makes it more complicated, but the pain might be > > useful). The Smart Keys and Buttons are very similar to Org. The > > outliner (KOutline) is more powerful than Org, but not integrated with > > export capabilities to other formats (I think there is a way of > > exporting an outline to Org). Something that Org does not have is > > browsing capabilities for Object Oriented languages. This is an add-on > > (for C++ ?) in Hyperbole (search for OO-Browser). Since I retired, I > > don't do much programming, so Org's project management has been more > > interesting to me. > > > > It's nice to see that it's actually still being developed by Bob. > > Thanks for all the interesting facts about hyperbole. I hadn't looked at > the package source code info yet, and didn't know that this is all the > work of one person. I also thought hyperbole was more recent... > > It certainly has some interesting stuff. In what way is KOutline more > powerful than Org? Do you think there is any useful feature of KOutline > that could be incorporated into Org? > > So far I've been able to find a couple of practical uses for this > package in my workflow. The whole window control system is very > powerful, although it would have been better if it had been a single > separate package, IMHO. > > Implicit links have a lot of potential. For example, I've managed to > define some buttons for LaTeX, which recognize LaTeX commands and > environments and lead to the local TeX live documentation or > tex.stackexchange.org. It's like giving a LaTeX document a sort of hover > help. This could also be done in Org, by defining some patterns as > implicit buttons to lead to Org info pages. > > Best regards, > > Juan Manuel > > --000000000000cf2a8805e20a4011 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Here's a hyperbole-org integration that lets you use o= rg-mode tables outside of org-mode files. Shift-middle-click a "recalc= " button and it will recalculate the table right under it (this idea i= s from an old version of the Oberon environment I wrote in Java, by the way= ).

Here's the code:

(def= un bill/calc (end)
=C2=A0 (goto-char end)
=C2=A0 (re-search-forward &= quot;\n")
=C2=A0 (when (org-at-table-p)
=C2=A0 =C2=A0 (org-table= -analyze)
=C2=A0 =C2=A0 (let* ((table-start (point))
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(rows (1- (length org-table-dlines)))
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(table-end (re-search-forward "\n&qu= ot; nil t rows))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(inside (<= =3D table-start action-key-depress-prev-point table-end)))
=C2=A0 =C2=A0= =C2=A0 (when inside
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (goto-char action-key-d= epress-prev-point)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-table-maybe-eval-for= mula))
=C2=A0 =C2=A0 =C2=A0 (goto-char table-start)
=C2=A0 =C2=A0 =C2= =A0 (call-interactively 'org-table-recalculate)
=C2=A0 =C2=A0 =C2=A0= (org-table-align))))

(defib recalc ()
=C2=A0 "recalculate a= table"
=C2=A0 (save-excursion
=C2=A0 =C2=A0 (let* ((pos (point)= )
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(eol (progn (re-search-forwar= d "\n") (point)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(bo= l (progn (re-search-backward "\n" nil t 2) (1+ (point))))
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(start (progn (goto-char pos) (re-sea= rch-backward "<" bol t)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(end (progn (goto-char pos) (re-search-forward ">" e= ol t))))
=C2=A0 =C2=A0 =C2=A0 ;;(message "pos: %s, prev: %s" (= point) action-key-depress-prev-point)
=C2=A0 =C2=A0 =C2=A0 (and start en= d (string-match "<recalc[> ].*" (buffer-substring start end= ))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(hact 'bill/calc end))))= )

Here's an example table you can put anyw= here. Just shift-middle-click on it to recalculate the org-mode table. Also= , if you type a formula (and keep the cursor on the same line) and then shi= ft-click recalc, it'll handle the formula:

<= ;recalc>
| a | 12 |
| a | =C2=A05 |
#+TBLFM: @1$2=3D3*4::@2$2= =3D2+3


-- Bi= ll


On Wed, Jun 22, 2022 at 1:3= 8 PM Juan Manuel Mac=C3=ADas <= maciaschain@posteo.net> wrote:
Hi David,

David Masterson writes:

> I haven't touched Hyperbole in ...decades...?=C2=A0 Even then, it = was
> complicated and full-featured (but I still keep it in my .emacs file).=
> My discussions with Bob Weiner were interesting at the time and I real= ly
> wanted to make use of it.
>
> As you've discovered, it integrates a lot of what Org has in, perh= aps, a
> tighter fashion (which makes it more complicated, but the pain might b= e
> useful). The Smart Keys and Buttons are very similar to Org.=C2=A0 The=
> outliner (KOutline) is more powerful than Org, but not integrated with=
> export capabilities to other formats (I think there is a way of
> exporting an outline to Org).=C2=A0 Something that Org does not have i= s
> browsing capabilities for Object Oriented languages.=C2=A0 This is an = add-on
> (for C++ ?) in Hyperbole (search for OO-Browser).=C2=A0 Since I retire= d, I
> don't do much programming, so Org's project management has bee= n more
> interesting to me.
>
> It's nice to see that it's actually still being developed by B= ob.

Thanks for all the interesting facts about hyperbole. I hadn't looked a= t
the package source code info yet, and didn't know that this is all the<= br> work of one person. I also thought hyperbole was more recent...

It certainly has some interesting stuff. In what way is KOutline more
powerful than Org? Do you think there is any useful feature of KOutline
that could be incorporated into Org?

So far I've been able to find a couple of practical uses for this
package in my workflow. The whole window control system is very
powerful, although it would have been better if it had been a single
separate package, IMHO.

Implicit links have a lot of potential. For example, I've managed to define some buttons for LaTeX, which recognize LaTeX commands and
environments and lead to the local TeX live documentation or
tex.stackexchange.org. It's like giving a LaTeX document a sort = of hover
help. This could also be done in Org, by defining some patterns as
implicit buttons to lead to Org info pages.

Best regards,

Juan Manuel

--000000000000cf2a8805e20a4011--