From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id df163a37 for ; Tue, 7 Jan 2020 18:33:48 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 6492A9BCBC; Wed, 8 Jan 2020 04:33:47 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 1AC249BCA8; Wed, 8 Jan 2020 04:33:09 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="lavuMisG"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 89F289BCA8; Wed, 8 Jan 2020 04:33:07 +1000 (AEST) Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by minnie.tuhs.org (Postfix) with ESMTPS id DFC4B945FC for ; Wed, 8 Jan 2020 04:33:06 +1000 (AEST) Received: by mail-qk1-f172.google.com with SMTP id z76so311097qka.2 for ; Tue, 07 Jan 2020 10:33:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1GZq7NEHyiNLzBq+1l+e9qcMJTPevnQUCb1DJjSX5ng=; b=lavuMisGuk62r6s4h1Y9pEKoi96iczX8yYIwmWefs2SB85mj+j3fAvUv4i+CvKmlnR 4RTQ6oSgC+s4EC9LXYYLukBTPE0w5pnEl3asXHPUNEoYzgF98/MrtGAiFBtw+ot6svH+ 08nSwuS2zIxxpsX8ZZq/QsgwY5wRfFR+ApfatE7eLZbsFU+ynqeNylIaKPaetERgGIXG OdGDiXaMQr+WLpeinhTSi54H4gchLCbh58sqnGT8hcSJXU64hwUETV9exNtlOXuz4ToT Vr16q8rKDIp6aFSXAipSsHjeQrwmkSdBLCczB8kjMSzSGloVZzSkBjJCMt3ZvJX9Xu+3 yD1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1GZq7NEHyiNLzBq+1l+e9qcMJTPevnQUCb1DJjSX5ng=; b=XXR50VK62gnFmsiKx+iRagv2LVR01SOqxg4qOUvVHIHTDXjqF1sPu4sZ87WLAWsGjZ w7lXAt2BMsk7iYZwiqfZ1SLMmLDlqF5/eO2iAfsl+iQDCMDF4LDjMMPDkSJp/M+/g7hL +KjwMC14WgSam+LXaWFxsqkt798iHTyKQG2M++zTE+cmOvpBlxU3CfEyoDgdMsLcZZTQ bfW9yqta8I6InMl+MkIE8H/zTLzQYt3D5HFhFAI5fyDejLxqYLaqsqKePzc+hZ+/vjK5 lqX6g4qWJ6HBg9Kx2Vt7tZortn/GZkNgXcLyZ4UIIyEKDctrnTZ7AwBnRD0hP7WySl/w d6pQ== X-Gm-Message-State: APjAAAVY96aO0KLfqshqQ6N517VRwlSkUF4UpfzkhcIEmnFVl9Ky6EfD g5rq0TxrODWGy254QXKQdk1gRbUb7i7oMUhxey4= X-Google-Smtp-Source: APXvYqzB8FVkWWUOzrA/1jm1gOYEMoCxaseKYzDAp2rnPnUE7yXT0KOKv7qzV20iMo/HX+9Jxd/rpkjFKaQSB1eI/48= X-Received: by 2002:a05:620a:1183:: with SMTP id b3mr671701qkk.316.1578421985871; Tue, 07 Jan 2020 10:33:05 -0800 (PST) MIME-Version: 1.0 References: <202001070231.0072ViZp123105@tahoe.cs.Dartmouth.EDU> <20200107023834.GN20269@mcvoy.com> <202001071630.007GUrBj030452@freefriends.org> In-Reply-To: <202001071630.007GUrBj030452@freefriends.org> From: Dan Cross Date: Tue, 7 Jan 2020 13:32:29 -0500 Message-ID: To: Aharon Robbins Content-Type: multipart/alternative; boundary="000000000000c60d9b059b910122" Subject: Re: [TUHS] screen editors X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: The Eunuchs Hysterical Society , Doug McIlroy Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --000000000000c60d9b059b910122 Content-Type: text/plain; charset="UTF-8" On Tue, Jan 7, 2020 at 11:31 AM wrote: > Larry McVoy wrote: > > > I'm a vi guy to this day. Love it. > > In the summer of '82 I did some contract programming at Southern Bell > on a PDP-11 running USG Unix 4.0. It had a screen editor called 'se' > that I only ever saw there, written somewhere in the Bell System and > squeezed to run on an -11. Anyone know anything about it? > > Unrelated, Georgia Tech had the 'se' screen editor as part of the > Software Tools Subsystem, based on the 'ed' in the Software Tools book. > This was later ported to Unix. I modified that code to use curses/termlib > and posted it to USENET. It's been updated and is available from > https://github.com/se-editor/se and http://se-editor.org is the home > page. (Thomas Cort IIRC did that work.) > > What's funny is that in doing the work to get 'se' running on Georgia > Tech's Vax, I had to learn vi. By the time I was done, vi had become > my main editor and had burned itself into my finger's ROMs. > Ah, this reminds me of something. I assume you've read, "A Software Tools Sampler"? A few months ago, I started looking into screen update algorithms for a (frivolous) retro-computing time sink, er, I mean project. Naturally, Gosling's redisplay algorithm figured prominently, as it's famous and well-known. I looked at the Unix emacs code and it's not that hard to puzzle through, actually, despite the reputation and the (in)famous skull and crossbones comment. However, Gosling's code assumes that update commands all have uniform cost (cost here being proportional to the command's length) which, on real terminals, just isn't true. Meyers and Miller came up with several algorithms that take into account editing command cost, and produce potentially far-better solutions than Gosling's code, though limited by the inability at the time to quickly build suffix trees (this was about a decade before Ukkonen's algorithm); it's interesting that none of these algorithms take into account text attributes, which on most serial terminals are modal. Anyway, at least one of these algorithms was implemented in a modified version of `se`, as described in "A Software Tools Sampler." I guess Webb thought that was easier to work with than an existing editor? Perhaps these "se"s share a lineage? What's interesting to me is that redisplay algorithms were clearly an area of active research at one time, but interest seemed to dry up almost over night. One must presume that this evaporation of research activity had to do with the en mass migration to graphical workstations where the problems are different, and possibly with curses being "good enough" in e.g. an xterm. However, one can see some of the fruits of Miller's research in his later work in genomics. - Dan C. A few random references: Gosling, James, "A Redisplay Algorithm." https://dl.acm.org/doi/10.1145/872730.806463 Meyers, Eugene and Webb Miller, "A Simple Row Replacement Algorithm." https://dl.acm.org/doi/10.5555/52187.52188 Meyers, Eugene and Webb Miller, "Row Replacement Algorithm for Screen Editors." https://dl.acm.org/doi/10.1145/59287.59290 --000000000000c60d9b059b910122 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Jan 7, 2020 at 11:31 AM= <arnold@skeeve.com> wrote:<= br>
Larry McVoy <lm@mcvoy.com> wrote:

> I'm a vi guy to this day.=C2=A0 Love it.

In the summer of '82 I did some contract programming at Southern Bell on a PDP-11 running USG Unix 4.0.=C2=A0 It had a screen editor called '= se'
that I only ever saw there, written somewhere in the Bell System and
squeezed to run on an -11.=C2=A0 Anyone know anything about it?

Unrelated, Georgia Tech had the 'se' screen editor as part of the Software Tools Subsystem, based on the 'ed' in the Software Tools b= ook.
This was later ported to Unix. I modified that code to use curses/termlib and posted it to USENET. It's been updated and is available from
https://github.com/se-editor/se and http://se-editor.org is the ho= me
page. (Thomas Cort IIRC did that work.)

What's funny is that in doing the work to get 'se' running on G= eorgia
Tech's Vax, I had to learn vi.=C2=A0 By the time I was done, vi had bec= ome
my main editor and had burned itself into my finger's ROMs.

Ah, this reminds me of something. I assume you'= ;ve read, "A Software Tools Sampler"?

A = few months ago, I started looking into screen update algorithms for a (friv= olous) retro-computing time sink, er, I mean project.

<= div>Naturally, Gosling's redisplay algorithm figured prominently, as it= 's famous and well-known. I looked at the Unix emacs code and it's = not that hard to puzzle through, actually, despite the reputation and the (= in)famous skull and crossbones comment. However, Gosling's code assumes= that update commands all have uniform cost (cost here being proportional t= o the command's length) which, on real terminals, just isn't true. = Meyers and Miller came up with several algorithms that take into account ed= iting command cost, and produce potentially far-better solutions than Gosli= ng's code, though limited by the inability at the time to quickly build= suffix trees (this was about a decade before Ukkonen's algorithm); it&= #39;s interesting that none of these algorithms take into account text attr= ibutes, which on most serial terminals are modal. Anyway, at least one of t= hese algorithms was implemented in a modified version of `se`, as described= in "A Software Tools Sampler." I guess Webb thought that was eas= ier to work with than an existing editor? Perhaps these "se"s sha= re a lineage?

What's interesting to me is that= redisplay algorithms were clearly an area of active research at one time, = but=C2=A0 interest seemed to dry up almost over night. One must presume tha= t this evaporation of research activity had to do with the en mass migratio= n to graphical workstations where the problems are different, and possibly = with curses being "good enough" in e.g. an xterm. However, one ca= n see some of the fruits of Miller's research in his later work in geno= mics.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 - Dan C.

A few random references:
Gosling, James, "= A Redisplay Algorithm." https://dl.acm.org/doi/10.1145/872730.806463
Meyer= s, Eugene and Webb Miller, "A Simple Row Replacement Algorithm." = https://dl.acm.org/d= oi/10.5555/52187.52188
Meyers, Eugene and Webb Miller, &q= uot;Row Replacement Algorithm for Screen Editors."=C2=A0https://dl.acm.org/doi/10.1145/592= 87.59290

--000000000000c60d9b059b910122--