From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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 autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [IPv6:2600:3c01:e000:146::1]) by inbox.vuxu.org (Postfix) with ESMTP id 0A492244AE for ; Sun, 19 May 2024 10:39:57 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id C2A7643A97; Sun, 19 May 2024 18:39:52 +1000 (AEST) Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by minnie.tuhs.org (Postfix) with ESMTPS id 9789543A5E for ; Sun, 19 May 2024 18:39:46 +1000 (AEST) Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-34e7a35d5d4so1177464f8f.2 for ; Sun, 19 May 2024 01:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716107984; x=1716712784; darn=tuhs.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=/47/WqfnMNXSxOgXHDCJVshq/IDc9Kw2nQXNzcPpSGs=; b=gPO0xdJQF2AAXMYv817NsWHzsuHDRaphkOTGaF1Ts0pYR7uyY8mzwUWIqQIVFtjFoC 95qpfFs8QV6AF0e+G+wqSuMaTkP09xT2rk56jGI8wsW38DzdbvFzm7P77yde0UIQmoKk uUfWIwRcUIo8AS7HB32Zzxq3w9svVPoGf0OodG5T8QHhFnoGiFigqsrhOuoImPpuo/Kp 9DVI1r+CgWEccnTywihEDNRv2vG92mlnnSNDwDDzmCboHTBQvT14fkUyBVPK8+/9zL6d MwMiZ3hOvNGQBvHEJenTf2224zVnZ6K9U1PbOT0w5/+NnKsCC581njWiYBTBoBe1EHzp Jl9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716107984; x=1716712784; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/47/WqfnMNXSxOgXHDCJVshq/IDc9Kw2nQXNzcPpSGs=; b=YKEKYnm3SBDnTi5dAO9AIj1mZLSDm8yyasnT/fdsD3Ccqtx3C34A1MwGK+pXw+TO7p Dse4rCv+b/d/LJeH4accdqsMK55khG5/eFOm1bfUobA5+MTaXnPIDEWIxhdbcDgFwlfV b3Fni56ta5cShgfUA7z777FLzxKs77mGVGuZiY2GYrMpEuA3dvGSZssuRKVGKQkK3EID zV9P4ZpBfqDJzvSKWW+k8bF8p0wocrUQgubQMT9jqLBql5ao7A2CYV7x0RR2k2Oc2z/a tbgpJnnYUZIVyU/pl1fkySYEO/EtDRmVrXJNnRGR38aqn6YzuCCKDX7eUHL7UH3qxwoi Ikqw== X-Gm-Message-State: AOJu0YxUqPHT2kVIQF2D/LpHkLIYbA1qNihj9PwPSileR06UaNXCZkcD imoydpI4d9imXveqgQEqJ+gfm+YmmV6pAVdEanvYFK3WScj9DIQdo94nTyxY93baraUCzzs5k7s +M/9elAxOqQn/dpJT0lz8LpA+lZbJ X-Google-Smtp-Source: AGHT+IFoFVy1/hu508aa3IPrC5YA4BE6XbGUcSZyBRoTp/nsQr16fzdl6+uYzv+q/bzO7mvQ6zV43+FsdamP1Tj3kso= X-Received: by 2002:a05:6000:1aca:b0:351:d95d:45b5 with SMTP id ffacd0b85a97d-351d95d473dmr6780574f8f.35.1716107983408; Sun, 19 May 2024 01:39:43 -0700 (PDT) MIME-Version: 1.0 References: <20240518203319.3oAKtOSk@steffen%sdaoden.eu> In-Reply-To: <20240518203319.3oAKtOSk@steffen%sdaoden.eu> From: Marc Rochkind Date: Sun, 19 May 2024 11:39:32 +0300 Message-ID: To: TUHS main list Content-Type: multipart/alternative; boundary="000000000000bf56a30618ca8607" Message-ID-Hash: MUHG5FVFD2O66U2XA4CBO3JZNXKVW6HC X-Message-ID-Hash: MUHG5FVFD2O66U2XA4CBO3JZNXKVW6HC X-MailFrom: mrochkind@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: On Bloat and the Idea of Small Specialized Tools List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --000000000000bf56a30618ca8607 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable UNIX man pages were almost universally accurate, complete, and succinct. That third admirable attribute gave me the opportunity to write *Advanced UNIX Programming*. So I wasn't complaining. Marc On Sat, May 18, 2024, 11:33=E2=80=AFPM Steffen Nurpmeso wrote: > Douglas McIlroy wrote in > : > |I just revisited this ironic echo of Mies van der Rohe's aphorism, "Les= s > is > |more". > | % less --help | wc > | 298 > |Last time I looked, the line count was about 220. Bloat is > self-catalyzing. > > I do not buy that. > You are working on Windows and in the meantime have switched to > one of those graphical browser monsters (i think) where each > instance has more code active than the entire Unix history > altogether. > > less(1) can now Unicode, and that is not as easy with ISO/POSIX as > it was on Plan9 for example which simply goes UTF-8 and has some > (smart) lookup tables (now in go, more or less, last i looked), > but that is not the whole picture of it. > > It can those ANSI / ISO 6429 color sequences that everybody wants, > as you have them everywhere, even GNU's yacc, bison. > > The OpenBSD people took a port done by an OpenSolaris (i think, > that scene, anyhow) guy, and together they stripped it down > massively. > > But i do not use it, because after almost exactly a decade i got > upstreamed to Nudelman's less(1) the necessary patches to have > active hyperlinks on the terminal, in a normal Unix (roff mdoc) > manual. (These work via OSC-8 escape sequences; it was a "15 > files changed, 601 insertions(+), 9 deletions(-)" patch, which > included careful quoting of file paths etc. for man(1) openings > (ie, such code gets lengthy), but he did it differently a bit, and > left off some things i wanted, included others (good), but if you > use --mouse with his one then you have a real browser feeling. > I have problems with --mouse, unfortunately, because when used you > can no longer copy+paste -- he would need to add clipboard control > in addition i'd say.., adding even more code.) > > You know, it may be viable for some tools, but for others, .. not. > You say it yourself in your "A Research UNIX Reader": "Electronic > mail was there from the start. Never satisfied with its exact > behavior, everybody touched it at one time or another". > In the meantime the IETF went grazy and produced masses of > standards, and unfortunately each one adds a little bit that needs > to be addressed differently, and all that needs documentation. > Now mail is an extreme example. > > And almost a quarter of a century ago i wrote a small pager that > even had a clock, and it required less CPU on a day with some > scrolling than less/ncurses for a one time scroll through the > document. But that pager is history, and less is still there, > running everywhere, and being used by me dozens to hundreds time > a day. Also with colours, with searching, and now also with > > ^O^N ^On * Search forward for (N-th) OSC8 hyperlink. > ^O^P ^Op * Search backward for (N-th) OSC8 hyperlink. > ^O^L ^Ol Jump to the currently selected OSC8 hyperlink. > > And prepared mdoc manuals can now display on a normal Unix > terminal in a normal (actively OSC-8 supporting $PAGER) a TOC (at > will, with links), and have external (man:, but also http: etc; > man is built into less(1) -- yay!) links, too. > For example here =E2=88=9E is an external, and =E2=80=A0 are internal lin= ks: > > The OpenSSL program ciphers(1)=E2=88=9E should be referred to when cre= ating a > custom cipher list. Variables of interest for TLS in general are > tls-ca-dir=E2=80=A0, tls-ca-file=E2=80=A0, tls-ca-flags=E2=80=A0, tls-= ca-no-defaults=E2=80=A0, > tls-config-file=E2=80=A0, tls-config-module=E2=80=A0, tls-config-pairs > > So ^O^L on that ciphers(1) opens a new man(1)ual instance. > For all this functionality a program with 221K bytes is small: > > 221360 May 18 22:13 ...less* > > Also it starts up into interactive mode with --help. > So you could have "full interactivity" and colours and mouse, and > configurability to a large extend, which somehow has to be > documented, in just 221 K bytes. > > I give in in that i try to have --help/-h and --long-help/-H, but > sometimes that -h is only minimal, because a screenful of data is > simply not enough to allow users to have a notion. > > So less could split the manual into a less.1 and a less-book.7. > The same is true for bash, for sure. (And for my little mailer.) > But things tend to divert, and it is hard enough to keep one > manual in sync with the codebase, especially if you develop > focused and expert-idiotized in a one man show. > > |What prompted me to look was another disheartening discovery. The "smal= l > |special tool" Gnu diff has a 95-page manual! And it doesn't cover the > |option I was looking up (-h). To be fair, the manual includes related > |programs like diff3(1), sdiff(1) and patch(1), but the original manual > for > |each fit on one page. > --End of .com> > > --steffen > | > |Der Kragenbaer, The moon bear, > |der holt sich munter he cheerfully and one by one > |einen nach dem anderen runter wa.ks himself off > |(By Robert Gernhardt) > --000000000000bf56a30618ca8607 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
UNIX man pages were almost universally accurate, complete= , and succinct.=C2=A0

That thi= rd admirable attribute gave me the opportunity to write Advanced UNIX Pr= ogramming.=C2=A0

So = I wasn't complaining.

Marc

On Sat, May 18, 2024, 11:33=E2=80=AFPM Steffen Nurpmeso <steffen@sdaoden.eu> wrote:
Douglas McIlroy wrote in
=C2=A0<CAKH6PiXaYGEUmV= FRX99eM6s3+nTJrbVvkuBRa-Awhhd69xzJrg@mail.gmail.com>:
=C2=A0|I just revisited this ironic echo of Mies van der Rohe's aphoris= m, "Less is
=C2=A0|more".
=C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0% less --help | wc
=C2=A0|=C2=A0 =C2=A0 =C2=A0 298
=C2=A0|Last time I looked, the line count was about 220. Bloat is self-cata= lyzing.

I do not buy that.
You are working on Windows and in the meantime have switched to
one of those graphical browser monsters (i think) where each
instance has more code active than the entire Unix history
altogether.

less(1) can now Unicode, and that is not as easy with ISO/POSIX as
it was on Plan9 for example which simply goes UTF-8 and has some
(smart) lookup tables (now in go, more or less, last i looked),
but that is not the whole picture of it.

It can those ANSI / ISO 6429 color sequences that everybody wants,
as you have them everywhere, even GNU's yacc, bison.

The OpenBSD people took a port done by an OpenSolaris (i think,
that scene, anyhow) guy, and together they stripped it down
massively.

But i do not use it, because after almost exactly a decade i got
upstreamed to Nudelman's less(1) the necessary patches to have
active hyperlinks on the terminal, in a normal Unix (roff mdoc)
manual.=C2=A0 (These work via OSC-8 escape sequences; it was a "15
files changed, 601 insertions(+), 9 deletions(-)" patch, which
included careful quoting of file paths etc. for man(1) openings
(ie, such code gets lengthy), but he did it differently a bit, and
left off some things i wanted, included others (good), but if you
use --mouse with his one then you have a real browser feeling.
I have problems with --mouse, unfortunately, because when used you
can no longer copy+paste -- he would need to add clipboard control
in addition i'd say.., adding even more code.)

You know, it may be viable for some tools, but for others, .. not.
You say it yourself in your "A Research UNIX Reader": "Elect= ronic
mail was there from the start.=C2=A0 Never satisfied with its exact
behavior, everybody touched it at one time or another".
In the meantime the IETF went grazy and produced masses of
standards, and unfortunately each one adds a little bit that needs
to be addressed differently, and all that needs documentation.
Now mail is an extreme example.

And almost a quarter of a century ago i wrote a small pager that
even had a clock, and it required less CPU on a day with some
scrolling than less/ncurses for a one time scroll through the
document.=C2=A0 But that pager is history, and less is still there,
running everywhere, and being used by me dozens to hundreds time
a day.=C2=A0 Also with colours, with searching, and now also with

=C2=A0 ^O^N=C2=A0 ^On=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*=C2=A0 Search forwa= rd for (N-th) OSC8 hyperlink.
=C2=A0 ^O^P=C2=A0 ^Op=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*=C2=A0 Search backw= ard for (N-th) OSC8 hyperlink.
=C2=A0 ^O^L=C2=A0 ^Ol=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Jump to the = currently selected OSC8 hyperlink.

And prepared mdoc manuals can now display on a normal Unix
terminal in a normal (actively OSC-8 supporting $PAGER) a TOC (at
will, with links), and have external (man:, but also http: etc;
man is built into less(1) -- yay!) links, too.
For example here =E2=88=9E is an external, and =E2=80=A0 are internal links= :

=C2=A0 =C2=A0The OpenSSL program ciphers(1)=E2=88=9E should be referred to = when creating a
=C2=A0 =C2=A0custom cipher list.=C2=A0 Variables of interest for TLS in gen= eral are
=C2=A0 =C2=A0tls-ca-dir=E2=80=A0, tls-ca-file=E2=80=A0, tls-ca-flags=E2=80= =A0, tls-ca-no-defaults=E2=80=A0,
=C2=A0 =C2=A0tls-config-file=E2=80=A0, tls-config-module=E2=80=A0, tls-conf= ig-pairs

So ^O^L on that ciphers(1) opens a new man(1)ual instance.
For all this functionality a program with 221K bytes is small:

=C2=A0 221360 May 18 22:13 ...less*

Also it starts up into interactive mode with --help.
So you could have "full interactivity" and colours and mouse, and=
configurability to a large extend, which somehow has to be
documented, in just 221 K bytes.

I give in in that i try to have --help/-h and --long-help/-H, but
sometimes that -h is only minimal, because a screenful of data is
simply not enough to allow users to have a notion.

So less could split the manual into a less.1 and a less-book.7.
The same is true for bash, for sure.=C2=A0 (And for my little mailer.)
But things tend to divert, and it is hard enough to keep one
manual in sync with the codebase, especially if you develop
focused and expert-idiotized in a one man show.

=C2=A0|What prompted me to look was another disheartening discovery. The &q= uot;small
=C2=A0|special tool" Gnu diff has a 95-page manual!=C2=A0 And it doesn= 't cover the
=C2=A0|option I was looking up (-h). To be fair, the manual includes relate= d
=C2=A0|programs like diff3(1), sdiff(1) and patch(1), but the original manu= al for
=C2=A0|each fit on one page.
=C2=A0--End of <CAKH6PiXaYGEUmVFRX99eM6s3+nTJrbVvkuBRa-Awhhd69xzJrg@mail= .gmail\
=C2=A0.com>

--steffen
|
|Der Kragenbaer,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The= moon bear,
|der holt sich munter=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0he cheerfully= and one by one
|einen nach dem anderen runter=C2=A0 wa.ks himself off
|(By Robert Gernhardt)
--000000000000bf56a30618ca8607--