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.6 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,T_SCC_BODY_TEXT_LINE 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 411FC20EE2 for ; Mon, 10 Jun 2024 21:41:13 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 53BFE427C5; Tue, 11 Jun 2024 05:41:07 +1000 (AEST) Received: from sdaoden.eu (sdaoden.eu [217.144.132.164]) by minnie.tuhs.org (Postfix) with ESMTPS id 32F9F427C2 for ; Tue, 11 Jun 2024 05:40:59 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sdaoden.eu; s=citron; t=1718048456; x=1718715122; h=date:author:from:to:cc:subject: message-id:in-reply-to:references:mail-followup-to:openpgp:blahblahblah: mime-version:content-type:content-transfer-encoding:author:from:subject: date:to:cc:resent-author:resent-date:resent-from:resent-sender:resent-to: resent-cc:resent-reply-to:resent-message-id:in-reply-to:references: mime-version:content-type:content-transfer-encoding:content-disposition: content-id:content-description:message-id:mail-followup-to:openpgp: blahblahblah; bh=Am+jFz0OH9NkqdIM7Bd7xzvYkjg0IIP/vNGhhPQZeGo=; b=IFjMzYonTBXwqFEg1KP03hzThcu3mg7uZyQXaR67LLJmZjb9RIv51H/0wSa2JvuxcB/mQ81+ Q+g+m5YB7Iw15VXq98nZUW260XV6f2rHp2ZXowmEsoFDn+eOGnlDr3hILb7iGT/0isrREfYTLb o7Ivjh1trGQXyxY0EOB6l41R48wdocsaHW95PddWDB3TyhzTtwNdVhywNY5KYNF+6EuoJfrYl3 cltMxiuW2QralDpQJ7y0lZ0C5vtX7NKhJShrI0WGXsdu26NBEOGAyv7u+S2jkw7MNCbJVdxmoJ 82Pt5c7w/jlb0V9lSy6a6X83gfVahmNm3PjP1Da87bSGQ12A== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=sdaoden.eu; s=orange; t=1718048456; x=1718715122; h=date:author:from:to:cc:subject: message-id:in-reply-to:references:mail-followup-to:openpgp:blahblahblah: mime-version:content-type:content-transfer-encoding:author:from:subject: date:to:cc:resent-author:resent-date:resent-from:resent-sender:resent-to: resent-cc:resent-reply-to:resent-message-id:in-reply-to:references: mime-version:content-type:content-transfer-encoding:content-disposition: content-id:content-description:message-id:mail-followup-to:openpgp: blahblahblah; bh=Am+jFz0OH9NkqdIM7Bd7xzvYkjg0IIP/vNGhhPQZeGo=; b=74orGB5NmNbWC9/PPkLxdE0uGlPGQGEyvG0BGyQO3HZhEG4Hx7wt5SM4/1hRchmJOxkz0ujt r4FO4rNmU//9AA== Date: Mon, 10 Jun 2024 21:40:53 +0200 Author: Steffen Nurpmeso From: Steffen Nurpmeso To: Marc Donner Message-ID: <20240610194053.JfHirqmk@steffen%sdaoden.eu> In-Reply-To: References: Mail-Followup-To: Marc Donner , Dave Horsfall , The Eunuchs Hysterical Society User-Agent: s-nail v14.9.24-621-g0d1e55f367 OpenPGP: id=EE19E1C1F2F7054F8D3954D8308964B51883A0DD; url=https://ftp.sdaoden.eu/steffen.asc; preference=signencrypt BlahBlahBlah: Any stupid boy can crush a beetle. But all the professors in the world can make no bugs. MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID-Hash: GLOCHONVWYEKC3EZFH4XH2ECDDH32H7O X-Message-ID-Hash: GLOCHONVWYEKC3EZFH4XH2ECDDH32H7O X-MailFrom: steffen@sdaoden.eu 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 CC: The Eunuchs Hysterical Society X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: most direct Unix descendant List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Marc Donner wrote in : |The architectural alternative to powershell-style extension has been arou= nd |in various guises for a while. In particular things like TCL and Lua are |engineered to be add-on extension languages. Integrating them just |involves adding a few callouts (dispatch a =E2=80=9Cprogram=E2=80=9D, sca= n directories in a |designated =E2=80=9Cpath=E2=80=9D for programs, render internal structure= s into text). | |This style of design has been around for a long time - all Unix shells, |EMacs, many video games. | |It enables an elegant approach to performance management - build it first |as a script and only reimplement it as a binary if needed. | |Doing this enables automation, but it does require the designers and |product managers to want automation. Let me be the one who feed the silent head shakers with the Rob Pike quote "[just] make it strings". Of course lua hooks are faster, and i am looking forward myself, but other than that textual input/output communication with a program is language-neutral and somehow humanic. So now the time has come to point to an influential -- for me -- manual from 2001, that goes into assembler programming for x86: https://docs.freebsd.org/en/books/developers-handbook/x86/ And there you read things like A.12. One-Pointed Mind As a student of Zen, I like the idea of a one-pointed mind: Do one thing at a time, and do it well. This, indeed, is very much how UNIX=C2=AE works as well. While a typical Windows=C2=AE application is attempting to do everything imaginable (and is, therefore, riddled with bugs), a typical UNIX=C2=AE program does only one thing, and it does it well. The typical UNIX=C2=AE user then essentially assembles his own applications by writing a shell script which combines the various existing programs by piping the output of one program to the input of another. When writing your own UNIX=C2=AE software, it is generally a good idea to see what parts of the problem you need to solve can be handled by existing programs, and only write your own programs for that part of the problem that you do not have an existing solution for. And going over A.13.2. Excursion to Pinhole Photography we come to the A.13.3.1. Processing Program Input which was a stunning read for me (the 15+ years before i came via Commodore 64 and its Basic, over Windows 3.1 and Windows 95 and, alongside, DOS, later 4DOS (then perl etc.)), because when doing really, really important things like calculating the cubic capacity of ones penis' in cubic millimeters (to end up with large numbers, say), i would never have thought by myself that the program accept and parse running text! (There you see that something "big" can actually be pretty "small" indeed.) Personally, I like to keep it simple. Something either is a number, so I process it. Or it is not a number, so I discard it. I do not like the computer complaining about me typing in an extra character when it is obvious that it is an extra character. Duh. Plus, it allows me to break up the monotony of computing and type in a query instead of just a number: What is the best pinhole diameter for the focal length of 150? There is no reason for the computer to spit out a number of complaints: Syntax error: What Syntax error: is Syntax error: the Syntax error: best Et cetera, et cetera, et cetera. And this (assembler!) then goes to % pinhole Computer, What size pinhole do I need for the focal length of 150? 150 490 306 362 2930 12 Hmmm... How about 160? 160 506 316 362 3125 12 Let's make it 155, please. 155 498 311 362 3027 12 Ah, let's try 157... 157 501 313 362 3066 12 156? 156 500 312 362 3047 12 That's it! Perfect! Thank you very much! ^D which is not even handled by GNU getopt with its argument-resorting behaviour! But it is likely that you all do not need that no more anyway, since you likely just speak out (silently at "Hal" level) "Hey computer bla bla", and the AI does the rest itself. --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)