Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

<<<<< EVACUATION ROUTE <<<<<


devel / comp.lang.python / Re: some problems for an introductory python test

SubjectAuthor
* some problems for an introductory python testHope Rouselle
+* Re: some problems for an introductory python testChris Angelico
|`* Re: some problems for an introductory python testHope Rouselle
| `* Re: some problems for an introductory python testChris Angelico
|  `- Re: some problems for an introductory python testHope Rouselle
+* Re: some problems for an introductory python testMats Wichmann
|`* Re: some problems for an introductory python testHope Rouselle
| +- Re: some problems for an introductory python testStefan Ram
| +* Re: some problems for an introductory python testChris Angelico
| |`* Re: some problems for an introductory python testHope Rouselle
| | `* Re: some problems for an introductory python testDennis Lee Bieber
| |  `* Re: some problems for an introductory python testHope Rouselle
| |   `- Re: some problems for an introductory python testHope Rouselle
| `* Re: some problems for an introductory python testTerry Reedy
|  `* Re: some problems for an introductory python testHope Rouselle
|   +* Re: some problems for an introductory python testTerry Reedy
|   |+* Re: some problems for an introductory python testGreg Ewing
|   ||`* Re: some problems for an introductory python testHope Rouselle
|   || `* Re: some problems for an introductory python testCameron Simpson
|   ||  `- Re: some problems for an introductory python testGreg Ewing
|   |`- Re: some problems for an introductory python testHope Rouselle
|   +- Re: some problems for an introductory python testWolfram Hinderer
|   +- Re: some problems for an introductory python testMRAB
|   +- Re: some problems for an introductory python testRob Cliffe
|   `- Re: some problems for an introductory python testChris Angelico
+- Re: some problems for an introductory python testChris Angelico
+- Re: some problems for an introductory python testMats Wichmann
+* Re: some problems for an introductory python testChris Angelico
|+* Re: some problems for an introductory python testHope Rouselle
||+* Re: some problems for an introductory python testChris Angelico
|||`* Re: some problems for an introductory python testHope Rouselle
||| +* Re: some problems for an introductory python testDennis Lee Bieber
||| |`* Re: some problems for an introductory python testHope Rouselle
||| | `* Re: some problems for an introductory python testDennis Lee Bieber
||| |  `- Re: some problems for an introductory python testHope Rouselle
||| `* Re: some problems for an introductory python testChris Angelico
|||  `- Re: some problems for an introductory python testHope Rouselle
||+* Re: some problems for an introductory python testChris Angelico
|||`* Re: some problems for an introductory python testHope Rouselle
||| +* Re: some problems for an introductory python testChris Angelico
||| |`* Re: some problems for an introductory python testHope Rouselle
||| | `* Re: some problems for an introductory python testChris Angelico
||| |  `- Re: some problems for an introductory python testHope Rouselle
||| +- Re: some problems for an introductory python testChris Angelico
||| +- Re: some problems for an introductory python testMRAB
||| +- Re: some problems for an introductory python testDennis Lee Bieber
||| +- Re: some problems for an introductory python testGrant Edwards
||| +- Re: some problems for an introductory python testDennis Lee Bieber
||| `- Re: some problems for an introductory python testCameron Simpson
||`- RE: some problems for an introductory python testAvi Gross
|`* Re: some problems for an introductory python testGrant Edwards
| +- Re: some problems for an introductory python testGreg Ewing
| `- Re: some problems for an introductory python testHope Rouselle
`- Re: some problems for an introductory python testAbhiram R

Pages:123
Re: some problems for an introductory python test

<mailman.352.1628717063.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14557&group=comp.lang.python#14557

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: rob.cli...@btinternet.com (Rob Cliffe)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Wed, 11 Aug 2021 22:03:21 +0100
Lines: 38
Message-ID: <mailman.352.1628717063.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo> <seukpg$16e4$1@ciao.gmane.io>
<mailman.345.1628624729.4164.python-list@python.org>
<861r71c7nw.fsf@jevedi.com> <sevfq5$2jb$1@ciao.gmane.io>
<30ad3e32-c7f5-e255-4c18-0147a56c3346@gmail.com>
<6382edc7-ac3f-7b7b-a183-c109f9fb5b8b@mrabarnett.plus.com>
<edbd441a-34c7-5170-263c-967ec54dba9b@btinternet.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de d2CK8IUtRFEqnOFeYvHtQwTOAfEJzhEJs8IDN4i0GktA==
Return-Path: <rob.cliffe@btinternet.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=btinternet.com header.i=@btinternet.com header.b=Y2QxmECa;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.006
X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'subject:python': 0.06;
'(to': 0.07; 'planned': 0.07; 'wrong.': 0.07;
'received:192.168.1.64': 0.09; 'schrieb': 0.09; 'subject:test':
0.09; 'terry': 0.09; 'looks': 0.11; 'assumption': 0.16;
'confusing.': 0.16; 'indexing,': 0.16; "isn't.": 0.16; 'mean.':
0.16; 'wrote:': 0.16; 'python': 0.16; 'maybe': 0.20; "i've": 0.22;
'to:addr:python-list': 0.23; 'code': 0.24; 'anything': 0.24;
'cannot': 0.24; '>>>': 0.26; 'examples': 0.26; 'space': 0.26;
'white': 0.27; 'sense': 0.28; 'header:User-Agent:1': 0.31;
'received:192.168.1': 0.31; 'but': 0.31; 'expect': 0.31; 'looked':
0.31; "i'm": 0.32; 'python-list': 0.32; "wouldn't": 0.32; 'header
:In-Reply-To:1': 0.33; 'subject:for': 0.33; 'example,': 0.35;
'missing': 0.35; '"if': 0.35; 'two': 0.37; 'received:192.168':
0.37; 'mean': 0.37; 'really': 0.37; "it's": 0.38; 'use': 0.38;
'example': 0.40; 'valid': 0.40; 'normal': 0.60; 'here': 0.62;
'them,': 0.63; 'saw': 0.66; 'subject:some': 0.69; 'little': 0.75;
'annotations,': 0.84; 'difference.': 0.84; 'inclined': 0.84;
'rob': 0.84
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btinternet.com;
s=btmx201904; t=1628715801;
bh=M5eGb7trygtisQ84yD1AGpRTuqXnQMSyFm/kMsSrUVA=;
h=Subject:To:References:From:Message-ID:Date:MIME-Version:In-Reply-To;
b=Y2QxmECah81AXUfSPgAwmaLXwcDgSrL8/HkOQXMkgxueY1iJGc6Y7fdWuN628fIpP5HLgHIbTYcrpBZzMGRfciZlYxWlHd9JUy+aGs2XzpEw6vJKZQvfob7Svc/SuLvGC/dA0ONrYs3+yUh0yRKKjpj+nvxTU7lJz4CZ7mRYV3U2pmiNvGQm7wXqiRR+VwQd2hGu54pHPvA8yWRf5nynTBgiwHjRKpPaQdKA9SKgIKsZzLcPGh4snQvNixUKMl1A224wiBAndAbNd+BXF9DKmyctnXPwCE4uovQ4zvq9Y1mYjb+Cwe3tK3HD80TFnHVJBvOU91lNqDU6RnwkAczGGw==
Authentication-Results: btinternet.com;
auth=pass (PLAIN) smtp.auth=rob.cliffe@btinternet.com
X-SNCR-Rigid: 610B2AB5011FD6E7
X-Originating-IP: [86.143.125.159]
X-OWM-Source-IP: 86.143.125.159 (GB)
X-OWM-Env-Sender: rob.cliffe@btinternet.com
X-VadeSecure-score: verdict=clean score=0/300, class=clean
X-RazorGate-Vade: gggruggvucftvghtrhhoucdtuddrgedvtddrkedugdduheehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuueftkffvkffujffvgffngfevqffopdfqfgfvnecuuegrihhlohhuthemuceftddunecunecujfgurhepuffvfhfhkffffgggjggtgfesthekredttdefjeenucfhrhhomheptfhosgcuvehlihhffhgvuceorhhosgdrtghlihhffhgvsegsthhinhhtvghrnhgvthdrtghomheqnecuggftrfgrthhtvghrnhepueeikeeljeeukefggeefieefvefhfeehtdelfeehjeeikeetffeiieetvdethfefnecukfhppeekiedrudegfedruddvhedrudehleenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhephhgvlhhopegludelvddrudeikedruddrieegngdpihhnvghtpeekiedrudegfedruddvhedrudehledpmhgrihhlfhhrohhmpeeorhhosgdrtghlihhffhgvsegsthhinhhtvghrnhgvthdrtghomhequceuqfffjgepkeeukffvoffkoffgpdhrtghpthhtohepoehphihthhhonhdqlhhishhtsehphihthhhonhdrohhrgheq
X-RazorGate-Vade-Verdict: clean 0
X-RazorGate-Vade-Classification: clean
X-SNCR-hdrdom: btinternet.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
In-Reply-To: <6382edc7-ac3f-7b7b-a183-c109f9fb5b8b@mrabarnett.plus.com>
Content-Language: en-GB
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <edbd441a-34c7-5170-263c-967ec54dba9b@btinternet.com>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo> <seukpg$16e4$1@ciao.gmane.io>
<mailman.345.1628624729.4164.python-list@python.org>
<861r71c7nw.fsf@jevedi.com> <sevfq5$2jb$1@ciao.gmane.io>
<30ad3e32-c7f5-e255-4c18-0147a56c3346@gmail.com>
<6382edc7-ac3f-7b7b-a183-c109f9fb5b8b@mrabarnett.plus.com>
 by: Rob Cliffe - Wed, 11 Aug 2021 21:03 UTC

On 11/08/2021 19:10, MRAB wrote:
> On 2021-08-11 18:10, Wolfram Hinderer via Python-list wrote:
>>
>>
>> Am 11.08.2021 um 05:22 schrieb Terry Reedy:
>>> Python is a little looser about whitespace than one might expect
>>> from reading 'normal' code when the result is unambiguous in that it
>>> cannot really mean anything other than what it does.  Two other
>>> examples:
>>>
>>> >>> if3: print('yes!')
>>> yes!
>>> >>> [0]  [0]
>>> 0
>>
>> Not sure what you mean here - is it a joke? The first looks like an if
>> statement, but isn't. The missing space *does* make a difference. (Try
>> "if0" instead.)
>>
> I see what you mean. It's a type annotation:
>
>     var: type
>
> where the "type" is a print statement!
>
>> The second is normal indexing, which allows white space. I wouldn't
>> consider that surprising, but maybe I should? (Honest question, I really
>> don't know.)
>>
I looked at the if3 example, and I was gobsmacked.  I momentarily
assumed that "if3" was parsed as "if 3", although that clearly makes no
sense ("if3" is a valid identifier).
Then I saw the "if0" example and I was even more gobsmacked, because it
showed that my assumption was wrong.
I've never used type annotations, I've never planned to used them. And
now that all is revealed, I'm afraid that my reaction is: I'm even more
inclined never to use them, because these examples are (to me) so confusing.
Rob Cliffe

RE: some problems for an introductory python test

<mailman.353.1628717499.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14558&group=comp.lang.python#14558

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: avigr...@verizon.net (Avi Gross)
Newsgroups: comp.lang.python
Subject: RE: some problems for an introductory python test
Date: Wed, 11 Aug 2021 17:31:31 -0400
Lines: 46
Message-ID: <mailman.353.1628717499.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<00ca01d78ef8$40fcec70$c2f6c550$@verizon.net>
Mime-Version: 1.0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de j3vfMTborQRS9nfvcBZtOQ0MOIuny51TdhKln/EWP9Ig==
Return-Path: <avigross@verizon.net>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=verizon.net header.i=@verizon.net header.b=sZTsQzA7;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.008
X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'tests': 0.05;
'subject:python': 0.06; 'beginner': 0.07; 'class.': 0.07;
'modules': 0.07; 'fewer': 0.09; 'rarely': 0.09; 'shift': 0.09;
'subject:test': 0.09; 'afresh.': 0.16; 'books.': 0.16;
'expected.': 0.16; 'implements': 0.16; 'importing': 0.16; 'in-
line': 0.16; 'level,': 0.16; 'loops': 0.16; 'loops,': 0.16;
'mean,': 0.16; 'received:(vzm hermes smtp server)': 0.16;
'sounds': 0.16; 'specify': 0.16; 'think.': 0.16; 'memory': 0.16;
'python': 0.16; 'python,': 0.21; 'language': 0.22; 'classes':
0.23; 'object': 0.23; 'teach': 0.23; 'anyone': 0.23; 'to:addr
:python-list': 0.23; 'code': 0.24; 'student': 0.24; 'idea': 0.25;
'purpose': 0.26; 'programmers': 0.27; 'function': 0.28; 'old':
0.28; 'done': 0.28; 'output': 0.28; 'use,': 0.29; 'there': 0.31;
'but': 0.31; 'teaching': 0.31; 'question': 0.32; 'program': 0.33;
'using': 0.33; 'class': 0.33; 'header:In-Reply-To:1': 0.33;
'subject:for': 0.33; 'same': 0.34; 'errors': 0.37; 'way': 0.37;
'really': 0.37; 'others': 0.38; 'something': 0.38; 'use': 0.38;
'list': 0.39; 'students': 0.40; 'whether': 0.40; 'example': 0.40;
'test': 0.40; 'days': 0.61; 'covered': 0.61; 'simply': 0.62;
'skip:o 10': 0.62; 'ignore': 0.66; 'well': 0.66; 'look': 0.66;
'and,': 0.69; 'compare': 0.69; 'oriented': 0.69; 'subject:some':
0.69; 'away': 0.70; 'above,': 0.71; 'compared': 0.71; 'low': 0.71;
'five': 0.75; '(like': 0.84; 'allowed,': 0.84; 'decent': 0.84;
'talked': 0.84; 'largely': 0.91; 'received:74.6.132': 0.91
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=verizon.net; s=a2048;
t=1628717496; bh=6DTou3D3X/sBkIhVrNTaz6onufwRdh4BR1BZ1WFKwt4=;
h=From:To:References:In-Reply-To:Subject:Date:From:Subject:Reply-To;
b=sZTsQzA77jV8uqM2xdQtEWuNUyBYGtvTuLME8DN7zFn65p27/1V0ytxzqrYj9zOeHJqxB1Id2iTUIo33q05Z8UCuVggxSPEKiP8SHPhuj6miubAX3bz6XwxQtC4Gndfu8mY9cWN+laoCe74HRqNlTJKOyRVc5TD6kAO5UaATA0AOMPnibJ0achPjyrUCJzfJ7JrxIKco1ebD1G7imEiKYNTNrOb07TVwkbBhjI7Q6aRHKGoCioUApEgAdRKsKbDQWIbQkZjb6MgSBbwhMBPTcmv2vH5yAYXLClDUT811IppKlwNovdvHKNuN3wNRIUEGrh9C0n1u7Z7O+aXKnm0bdw==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
t=1628717496; bh=uacYtvGz/hfFufRpSZTkytIZ8mVPs9vfYNg64ooFOYk=;
h=X-Sonic-MF:From:To:Subject:Date:From:Subject;
b=cmW7ag+8HkNp3Mi1YreHWfa22ln9ygKRowNrQzCvUriDugX9Cym8W3iPEGOjdoz9WU5UztuuL+6v+fRqHwiLUhvuDhB+fWVfR1td8txtGENsIB+bywYtCbjjsSvINauTSK3mP5eb0wHl1tY0/dnAzTLT4TR+9K7aE36TtQ1iQI+J9l2DMgiAao/bfUSFU7cLT6MAG4j/u/bOT9fQrfH+Ts2XO8f9efvu5dg7+IXB/YS81mZEOdgJQDdVfcRFbeFSj8ChMvSqKLLZtFA824B+lQrIYkIoe+gDa5ykJaUwDOBvfQuv5UeYvJU1n1l+zDreO1SEIIMYYqUwsfkizCngWQ==
X-YMail-OSG: .sNFOkcVM1lQQllst0UcSjX2ak7HlOZylSChZqpk6HomJDrF.k0OMFKjSPkvgmT
cnjndnNtPO57KfnS1i0iA8uObUykhl8L_cFOISpXZisO4sd7wB4xvdjnRew8GAHWFnK1m3nwf5gB
7I.CPu2koVPbvDhhYcJOmhDlZCNt7LRvmE.jBuHAi8WxkmsO.YGrW3pLIZfhqIH1tWZ_Nx9qVtm2
7WfEIo.yxjXncgwGoJQMEyhFhkmD1OM38BBjcIQr19Q8RxJBCDd6QC.vxBttugnD1ZBlEK660zcC
UP20q7MnngiPV196pvf2Eqqqt_xkGGUitwJRtqA2uh8EBjaNFSklqA4OD7v1pAFMY0hlV4.6Eoq.
Q6I1yyA_jKfDtE4IBdh8MC4VhuLOFFFjBOIlrxaIPbJeiSyMRiD1y8wBJ8Lu7i0k0FwwMDvk2BHY
LShq_5nD4o_jmKNUPrifgbeq8QQaDXIrLz3W1SydJlP9BEurvC09HTqwOIS1Pm8.kuxwBgICjQFL
np1IsZL0k7YSaXPc8jqfbSmrQVtdAz2_KufDbmw8.G8ZEDZ54KqTmVFRCHb4zUbWiBbcN2vY9.yU
f4xb6Z9N0vIVzbSdCunJ507.mf8BRJtv1jzyth.Kd4X5ZjhRz3m5GuJ.7kCVFTg_3DRVzffNyoCK
wAbqqQycPuOgMNTmJVPKhi5ytQUXriVu68J7l_LoX3RcUPgUMh0h3s8b5L1KMnV_dKkPvi2eoYLy
2DJPcwDZfVBpBUYra2gu4SYrEADCUaGwY9zIYXvDKZOAcFluPXvhVNVVJQ2._ufkvuKZfmpH2XCj
zwxzzkCMnHy0AYGAE7_QpGCm30IT2Xm36gnxLDr5e9tu9mBOM418xdcxjYisGpB0wg_o0Unz6CAV
CuZt_gHakIQPGYKwKlv8fdRP5EAnBOTrKh774XxFLEafDiu.hQA2.ZKQn3WvWPfQ3c32ToW4J601
M2O4bJQ3.waOhuHaA3duOHDvcAoR8thh3n.MCV2dWI2FGmf5_5066M3n2T6hBzMWIChG5QWWEug1
Or9_viuE5lTeU5oX6nQch5r4rvw0HXW3..8Hfe6.bF6s3mYKgEdiJ4WGfJ.Y_H9nURy3b7XD.Ynh
z0jGKaRPZJ5Ufj4OZnq5Scx7IWVJ8x.UW1ueCXAABFVCG2N6z6KeHXVjakShY1FP4mLHZIKerAgs
Nvt0nBqNvVUTWB5AeNQ.fO67vwuSVfdYC8xpfNLd5_1phCr3TvAqhiAfh5aSgg46rW6odwq32E0a
UITJsM16Z4UWireMJfOZAzlV9Pl0auhGH_3WzhSuYql238Nd8rCQyRp1GmhpS2Tv2L05siCfI0hP
OAzOP13L9.i1zO_2OBb0gOLnm8ZRnHWLhwJ_WUOaLt_oGX34K7hJP9egDN3.tsZYgGpAe92mt0Hh
YFZa6eUA1JwCdeB8VnQY5haW_yN3hSFMJtlR42x_WF08W63e83wgYJM85sFfQV3wq_UM21yzER.N
.xjw7g.SaQ4cgMidb2HNDKRJmRRCsc5K4VRNjuc.CJjyCgLBPkiYAQpVQrhvKTvx.mTZ0BGl97eZ
BeLsgaEPQofUTkOt35FiH8SV7vqrMA4_QA.MStgT2d3y9sY7hy4sIg8tuCwK5Y7aHp5sm6N2Qrhk
1T9_EO9LewVw2t5Vdrydx3y9zzh3cxh0Q2mB4.DFOoe81LeowuXQ7mo_b63kjJi80uSR7QnIKG3X
WLOLXQ9awbc5FSkrJ4r.oWXargv4s4h.3ZscyrundmOQiEt5mB3ZCnbvY3Idiwza4bnX41S5gdOR
M36D4jVZGRloKlrwqa7uR.qYQYwkWwz3FW7E_jYfQPAAl46jqjlzQZDNsE_0579MsoqwhIg4Typu
lTBy4e5oOMh.O3u5n685quXc8cTrA14KAWRpWkjaCFGFZ8xKbFeBaLr35ctx4pMjOXdJkkcn2PX9
n8bacekC0wMO8TYjl8zhHnyuUruhNMpsEozBx_HdXTODeqpljx4pnR3OuY7Dnod4zqdSrnmJ1aHx
f5ZZmHx8aGobCBYt9saJpTheXXBDblwRUj6QfDBFtGdHcmexnfcfWNPYVK4mKaX21Fiaz5CJPRFj
kDB7J7oos3DtYFDC6LBTEfUFzKm2_V6QSt_WldFyvo7QblIjfkHYQ9i5kT9xpsPEofuFf9gNpxHZ
iGX38aVHbPhFlrxTvquh.ZFp2cI4IIkANbiillUknA9BVvseX6XKhxh3tmaVE_NXV1IUOplz.Ul.
HeXXK5vTw34X0GyGR8R4QIAOwkKMETBEf2H_Z9B5d9jOTdgxEgGiZVqrLT3qrwxLT8ohXldT4pfN
pDmRaONHWn4ALcRc9G_50EWEiHBw62eegQE2Ry3rZ6t8Tu5QJzMT.ROYuPTtlDYAEfss-
X-Sonic-MF: <avigross@verizon.net>
In-Reply-To: <CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
X-Mailer: Microsoft Outlook 16.0
Content-Language: en-us
Thread-Index: AQKjtbW3voeozi8OsAUdVzeHvobxrQIWQvPbAQW3vRAAvrJ3owKfsHqyASxcM9IBuxn3/AIdOJYlARvb4cIBWmjDsgIiT/+RqVXDY0A=
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <00ca01d78ef8$40fcec70$c2f6c550$@verizon.net>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
 by: Avi Gross - Wed, 11 Aug 2021 21:31 UTC

This conversation has, of course, veered away from the original question so
I am starting afresh.

My memory of the original question is about how one sets up a test for
material covered in class or associated materials for what sounds like a
beginner class. I am not sure whether this would be the place for anyone to
ask such a question, especially as we have no real idea what was taught and
expected. Python is too rich a language and can be taught all kinds of ways
including many that largely ignore object-orientedness or other ways that
professionals use and appreciate.

There are lots of others who have taught such classes and plenty of books.
One can look to see what kinds of questions they use, and, where allowed,
borrow some, suitably adjusted. Any textbooks actually used for a course may
be an excellent place to start.

When I have taught, I like to do things incrementally. Tests are made up
based on what is talked about and stressed, perhaps with harder questions
asking for some innovation. So you may end up teaching how to do some things
without loops such as the example where you largely repeat some code in-line
five times. You might show how to do the same thing using dreaded
GOTO-statements in the OLD days but rarely now. Nowadays you might introduce
while loops or their repeat/do/for variants. In Python, you may well
introduce abbreviated variants such as list comprehensions.

So if testing the above, it is fair to specify in a question what NOT to
use. You can ask for no use of loops, or you can specify you want them to
use nothing but methods X or Y and so on. And since there are so many
modules out there, you might specify that no importing is allowed as that
defeats the purpose. I mean, if the purpose is to teach them how to
logically write a program that implements an algorithm as compared to just
calling a function already made.

As noted, some very decent projects are simply asking the student to create
something others have already done and one way to test how well they did it
is to compare the output of their work with a debugged solution.

Real programmers may at some point shift to using all kinds of constructs
that help them write lots of code faster and with fewer errors but beginner
students need something not very low level (like assembler?) but also not
very high level, I would think.

But debates about object oriented are fine for us philosophers but not
really of much use for the question I thought was asked.

Re: some problems for an introductory python test

<mailman.354.1628717782.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14560&group=comp.lang.python#14560

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: ros...@gmail.com (Chris Angelico)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 07:36:09 +1000
Lines: 71
Message-ID: <mailman.354.1628717782.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo> <seukpg$16e4$1@ciao.gmane.io>
<mailman.345.1628624729.4164.python-list@python.org>
<861r71c7nw.fsf@jevedi.com> <sevfq5$2jb$1@ciao.gmane.io>
<30ad3e32-c7f5-e255-4c18-0147a56c3346@gmail.com>
<6382edc7-ac3f-7b7b-a183-c109f9fb5b8b@mrabarnett.plus.com>
<edbd441a-34c7-5170-263c-967ec54dba9b@btinternet.com>
<CAPTjJmoFu2-D1fgOOj3ySVFzm-RR1MDZzbgCJc9TVUVj4U37fw@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
X-Trace: news.uni-berlin.de +sCkavPJiiNb3isyMe4+kAp8amV91z6vOlpWZS+WT5AQ==
Return-Path: <rosuav@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=rd5v4so6;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.001
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'def': 0.04; 'traceback':
0.04; '(most': 0.05; 'last):': 0.05; 'subject:python': 0.06;
'(to': 0.07; 'planned': 0.07; 'wrong.': 0.07; 'aug': 0.09;
'example.': 0.09; 'schrieb': 0.09; 'subject:test': 0.09; 'terry':
0.09; 'looks': 0.11; 'assumption': 0.16; 'chrisa': 0.16;
'confusing.': 0.16; 'context.': 0.16; 'from:addr:rosuav': 0.16;
'from:name:chris angelico': 0.16; 'indexing,': 0.16; "isn't.":
0.16; 'mean.': 0.16; 'wrote:': 0.16; 'syntax': 0.16; 'python':
0.16; 'maybe': 0.20; 'thu,': 0.20; "i've": 0.22; 'to:addr:python-
list': 0.23; 'code': 0.24; 'anything': 0.24; 'cannot': 0.24;
'>>>': 0.26; 'examples': 0.26; 'space': 0.26; 'white': 0.27;
'sense': 0.28; 'but': 0.31; 'expect': 0.31; 'looked': 0.31;
"doesn't": 0.32; "i'm": 0.32; '"",': 0.32; 'difference': 0.32;
'python-list': 0.32; 'to:name:python': 0.32; "wouldn't": 0.32;
'message-id:@mail.gmail.com': 0.33; 'using': 0.33;
'received:209.85.166': 0.33; 'header:In-Reply-To:1': 0.33;
'subject:for': 0.33; 'same': 0.34; 'received:google.com': 0.34;
'example,': 0.35; 'missing': 0.35; '"if': 0.35;
'from:addr:gmail.com': 0.35; 'two': 0.37; 'mean': 0.37; 'really':
0.37; 'received:209.85': 0.38; 'file': 0.38; "it's": 0.38;
'received:209': 0.38; 'use': 0.38; 'example': 0.40; 'valid': 0.40;
'normal': 0.60; 'here': 0.62; 'them,': 0.63; 'ever': 0.63; 'saw':
0.66; 'that,': 0.68; 'subject:some': 0.69; 'little': 0.75; '....':
0.81; '2021': 0.84; 'annotations,': 0.84; 'difference.': 0.84;
'inclined': 0.84; 'rob': 0.84; 'avoiding': 0.91; 'declaration':
0.91
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;
bh=BquNrL9tK9m19/VIm5jfA9baRG/yrZYTdO8mz9gkZwc=;
b=rd5v4so6k/iV10spBJniswsEPk1Lwoqu8KHYVaF+GoqCRKq/7Yc0ZvtZqJF4P1rmHf
2wyz8Q/e5gCdQVxs0TS+mpyjIK5jGhXGu93Ify7lCq1iMcpW3QGJtJKcL3U9koehhtYi
dc1Mc0JnORw/t59xdCVq+xu2qL+FelzhmthSG2rE95YPyM7NxesQSCDuxtmHuBh8zBls
VgrE1MMSPSL/YTgl0r2yYfjVleCyJ9O6EG8IYQgX9OySuHlujwA7UnJUumfVSl0PyDn/
SaT9YYanz/idmGNI8hzm5xIgMaq2inmPhNronNc+5Sz0cLjlNzayX+LNMYKoPpO0ZBXA
TDDg==
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;
bh=BquNrL9tK9m19/VIm5jfA9baRG/yrZYTdO8mz9gkZwc=;
b=UfyYdW+NeWzzG/xdzOSCwvRegky4cVS77Bv6RNpTOPYQ0dlvWeTuf6RsBB7X9vWZNM
hsAZuUqbcSQomGt6ieZeRkKwOXH/3yzs+/kLE6EHMyrV60vwTudjT+ur4kO99SUpBIYX
WBhziH9BOa2NEjWMvIcXmAfH9bVHXITYC1y4LX1uuyHmGLG+BgiErjyC+trXyXjhoSKw
Vi94dEFfsKR/x5WQtVN2WvViSD9uojEbDn+1IxG1SLXa8xgxREMDoqkL9r+86fG6Hpnc
a3Ko8EsfoAGxNq8v+qIVxK6qByTYc1uEXpYB3R/oFgwCgtCQbgQw1nGn/Lo7pu+d6zls
QwZA==
X-Gm-Message-State: AOAM533J+y+Mn184DMVxDe7h5dKGntl2r9F1tRvPvIc3RMKgOhzcIUkr
UJUg4Yd5TupgimcT2LYjqAa6Ad6wxxbxpOeC0pm0cJHznik=
X-Google-Smtp-Source: ABdhPJwf6umTNwksN8iLdztXA6m4h4gO+VrdIQ4avRqTtmKti3dYTVuI9AtQW7/rp0UB/KaFkXW0d4dO1JDx1rStnmI=
X-Received: by 2002:a6b:8dd1:: with SMTP id p200mr499499iod.177.1628717780352;
Wed, 11 Aug 2021 14:36:20 -0700 (PDT)
In-Reply-To: <edbd441a-34c7-5170-263c-967ec54dba9b@btinternet.com>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <CAPTjJmoFu2-D1fgOOj3ySVFzm-RR1MDZzbgCJc9TVUVj4U37fw@mail.gmail.com>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo>
<seukpg$16e4$1@ciao.gmane.io>
<mailman.345.1628624729.4164.python-list@python.org>
<861r71c7nw.fsf@jevedi.com> <sevfq5$2jb$1@ciao.gmane.io>
<30ad3e32-c7f5-e255-4c18-0147a56c3346@gmail.com>
<6382edc7-ac3f-7b7b-a183-c109f9fb5b8b@mrabarnett.plus.com>
<edbd441a-34c7-5170-263c-967ec54dba9b@btinternet.com>
 by: Chris Angelico - Wed, 11 Aug 2021 21:36 UTC

On Thu, Aug 12, 2021 at 7:25 AM Rob Cliffe via Python-list
<python-list@python.org> wrote:
>
> On 11/08/2021 19:10, MRAB wrote:
> > On 2021-08-11 18:10, Wolfram Hinderer via Python-list wrote:
> >>
> >>
> >> Am 11.08.2021 um 05:22 schrieb Terry Reedy:
> >>> Python is a little looser about whitespace than one might expect
> >>> from reading 'normal' code when the result is unambiguous in that it
> >>> cannot really mean anything other than what it does. Two other
> >>> examples:
> >>>
> >>> >>> if3: print('yes!')
> >>> yes!
> >>> >>> [0] [0]
> >>> 0
> >>
> >> Not sure what you mean here - is it a joke? The first looks like an if
> >> statement, but isn't. The missing space *does* make a difference. (Try
> >> "if0" instead.)
> >>
> > I see what you mean. It's a type annotation:
> >
> > var: type
> >
> > where the "type" is a print statement!
> >
> >> The second is normal indexing, which allows white space. I wouldn't
> >> consider that surprising, but maybe I should? (Honest question, I really
> >> don't know.)
> >>
> I looked at the if3 example, and I was gobsmacked. I momentarily
> assumed that "if3" was parsed as "if 3", although that clearly makes no
> sense ("if3" is a valid identifier).
> Then I saw the "if0" example and I was even more gobsmacked, because it
> showed that my assumption was wrong.
> I've never used type annotations, I've never planned to used them. And
> now that all is revealed, I'm afraid that my reaction is: I'm even more
> inclined never to use them, because these examples are (to me) so confusing.

Don't judge a feature based on its weirdest example. Based on this
example, you should avoid ever using the len() built-in function:

>>> def show_count(n, word):
.... return "{{}} {{:{0}.{0}}}".format(len(word)-(n==1)).format(n, word)
....
>>> show_count(0, "things")
'0 things'
>>> show_count(1, "things")
'1 thing'
>>> show_count(5, "things")
'5 things'
>>> show_count(2, "widgets")
'2 widgets'
>>> show_count(1, "widgets")
'1 widget'

Any syntax can be abused. And the same thing would happen in any other
context. The only difference is that, in a declaration like "if3:
print()", the name if3 doesn't have to have been assigned already,
avoiding this problem:

>>> {
.... if3: print("Hello")
.... }
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'if3' is not defined

ChrisA

Re: some problems for an introductory python test

<mailman.356.1628724134.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14562&group=comp.lang.python#14562

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: wlfr...@ix.netcom.com (Dennis Lee Bieber)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Wed, 11 Aug 2021 18:51:14 -0400
Organization: IISS Elusive Unicorn
Lines: 54
Message-ID: <mailman.356.1628724134.4164.python-list@python.org>
References: <c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<k5k8hgt6apk88p4pat8m25t67rgbaqhkkc@4ax.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de G6B2SuDasdj6y/ytpOShlwJJiQDv8tplr8yZwaMTWnZQ==
Return-Path: <python-python-list@m.gmane-mx.org>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.001
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'fairly': 0.05; "python's":
0.05; 'subject:python': 0.06; 'linux': 0.07; 'returning': 0.07;
'scripts.': 0.07; 'angelico': 0.09; 'aug': 0.09; 'enough.': 0.09;
'ports': 0.09; 'received:ciao.gmane.io': 0.09;
'received:gmane.io': 0.09; 'received:list': 0.09; 'subject:test':
0.09; 'arbitrary': 0.16; 'bash': 0.16; 'fetch': 0.16; 'granted,':
0.16; 'guis': 0.16; 'integrations': 0.16; 'interpreter': 0.16;
'intuition': 0.16; 'message-id:@4ax.com': 0.16; 'ms-dos': 0.16;
'passed.': 0.16; 'received:116.202': 0.16; 'received:116.202.254':
0.16; 'received:116.202.254.214': 0.16; 'sockets': 0.16;
'standards,': 0.16; 'support,': 0.16; 'variant': 0.16; 'memory':
0.16; 'api': 0.18; 'implement': 0.18; 'supported': 0.18;
'applications': 0.18; "aren't": 0.20; 'thu,': 0.20; "i've": 0.22;
'language': 0.22; 'version': 0.22; 'basically': 0.23; "i'd": 0.23;
'to:addr:python-list': 0.23; 'command': 0.24; 'run': 0.24;
'anything': 0.24; 'written': 0.24; 'chris': 0.26; 'seems': 0.26;
'space': 0.26; 'port': 0.27; 'default': 0.28; "didn't": 0.29;
'(and': 0.30; 'header:User-Agent:1': 0.31;
'header:Organization:1': 0.31; 'stuff': 0.31; 'but': 0.31; 'fact':
0.31; 'looked': 0.31; 'shared': 0.31; 'script': 0.32;
'difference': 0.32; 'feed': 0.32; 'subject:for': 0.33; 'running':
0.35; 'way': 0.37; 'guide': 0.37; 'currently': 0.37; 'really':
0.37; 'read': 0.38; "it's": 0.38; 'use': 0.38; 'list': 0.39;
'could': 0.40; 'common': 0.60; 'light': 0.60; 'normal': 0.60;
'search': 0.61; 'entire': 0.61; 'time.': 0.63; 'data,': 0.63;
'pass': 0.64; 'seen': 0.65; 'back': 0.65; 'extremely': 0.65;
'well': 0.66; 'ability': 0.68; 'virtual': 0.69; 'change.': 0.69;
'days,': 0.69; 'subject:some': 0.69; 'highly': 0.70; 'took': 0.70;
'received:116': 0.71; 'day.': 0.74; 'easy': 0.75; 'tools': 0.75;
'features': 0.76; '2021': 0.84; 'variety': 0.84; 'remarkably':
0.84; 'url-ip:76/8': 0.84
X-Injected-Via-Gmane: http://gmane.org/
User-Agent: ForteAgent/8.00.32.1272
X-Mailman-Approved-At: Wed, 11 Aug 2021 19:22:14 -0400
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <k5k8hgt6apk88p4pat8m25t67rgbaqhkkc@4ax.com>
X-Mailman-Original-References: <c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
 by: Dennis Lee Bieber - Wed, 11 Aug 2021 22:51 UTC

On Thu, 12 Aug 2021 06:15:28 +1000, Chris Angelico <rosuav@gmail.com>
declaimed the following:

>The default command interpreter and shell on OS/2 was fairly primitive
>by today's standards, and was highly compatible with the MS-DOS one,
>but it also had the ability to run REXX scripts. REXX was *way* ahead
>of its time. It's a shell language but remarkably well suited to
>building GUIs and other tools (seriously, can you imagine designing a
>GUI entirely in a bash script??). It had features that we'd consider
>fairly normal or even primitive by Python's standards, but back then,
>Python was extremely new and didn't really have very much mindshare.
>REXX offered arbitrary-precision arithmetic, good databasing support,
>a solid C API that made it easy to extend, integrations with a variety
>of other systems... this was good stuff for its day. (REXX is still
>around, but these days, I'd rather use Python.)
>
I was spoiled by the Amiga variant of REXX. Most current
implementations (well, Regina is the only one I've looked at) can just pass
command to the default shell. The Amiga version took advantage of Intuition
Message Ports (OS supported IPC). That allowed it to "address
<application>" any application that defined an ARexx port, allowing ARexx
to be used as a scripting language for that application (and with multiple
applications, one could easily fetch data from app1 and feed it to app2).
ARexx did not, to my memory, implement arbitrary precision math.

Any statement in a REXX script that was not parsable as REXX would be
passed on the currently "addressed" command host.

Granted, the fact that the Amiga used a shared common address space for
all running applications made IPC quite easy -- one looked up the
application message port, then added a small packet to the linked list
associated with the port. That small packet basically held the address of
the message port for returning data, and the address of the data being
passed. The closet thing I've seen to that capability on systems with
process-isolated virtual memory is (Open)VMS "mailbox" structures. The
difference being that the entire data had to be written (QIO) to the
mailbox, and the receiver had to read (another QIO call) the message --
this allowed the address space to change.

I've not seen anything equivalent in my light perusal of the Win32 API
(the various guide books aren't layed out in any way to be a reference),
and Linux seems to use UNIX sockets for IPC... No way to search for a
connection point by name...

But I've harangued long enough.

--
Wulfraed Dennis Lee Bieber AF6VN
wlfraed@ix.netcom.com http://wlfraed.microdiversity.freeddns.org/

Re: some problems for an introductory python test

<mailman.357.1628724135.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14563&group=comp.lang.python#14563

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!lilly.ping.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: wlfr...@ix.netcom.com (Dennis Lee Bieber)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Wed, 11 Aug 2021 19:19:44 -0400
Organization: IISS Elusive Unicorn
Lines: 57
Message-ID: <mailman.357.1628724135.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo>
<CAPTjJmqA1=LR94juniaMRC=Vi=u0h_Sbneqf0qn1wqgELMRwgw@mail.gmail.com>
<mailman.343.1628622186.4164.python-list@python.org>
<86czqkb1z9.fsf@jevedi.com>
<oal8hg5jn9j196d6tttpieq09nmvgad9sj@4ax.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de tWY0yYCPF7ljc8yLa8V7CAEU6PMGPigvC990VLguN33Q==
Return-Path: <python-python-list@m.gmane-mx.org>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.001
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '(which': 0.04; 'knows':
0.04; 'subject:python': 0.06; 'queue': 0.07; 'real-world': 0.07;
'translate': 0.07; 'python.': 0.07; 'aug': 0.09; 'describe': 0.09;
'numerical': 0.09; 'obviously': 0.09; 'received:ciao.gmane.io':
0.09; 'received:gmane.io': 0.09; 'received:list': 0.09;
'subject:test': 0.09; 'coding': 0.10; '"data': 0.16; '(so': 0.16;
'basic.': 0.16; 'campus': 0.16; 'commodore': 0.16; 'conditional':
0.16; 'hash': 0.16; 'iterative': 0.16; 'looping': 0.16; 'manual,':
0.16; 'may,': 0.16; 'message-id:@4ax.com': 0.16; 'name;': 0.16;
'presumes': 0.16; 'received:116.202': 0.16;
'received:116.202.254': 0.16; 'received:116.202.254.214': 0.16;
'restriction': 0.16; 'sigma': 0.16; 'slicing': 0.16; 'stride':
0.16; 'python': 0.16; 'instead': 0.17; 'implement': 0.18; 'maybe':
0.20; 'programming': 0.21; 'python,': 0.21; "i've": 0.22;
'language': 0.22; 'languages': 0.23; 'advanced': 0.23; 'object':
0.23; 'teach': 0.23; "i'd": 0.23; 'to:addr:python-list': 0.23;
'list,': 0.23; 'computer': 0.26; 'files,': 0.27; 'library': 0.27;
'programming,': 0.27; 'wrong': 0.27; "isn't": 0.29; 'header:User-
Agent:1': 0.31; 'header:Organization:1': 0.31; 'but': 0.31;
'teaching': 0.31; 'instructor': 0.32; 'objects': 0.32;
'structure': 0.32; 'using': 0.33; 'subject:for': 0.33; 'same':
0.34; 'year': 0.35; 'trying': 0.36; 'able': 0.36; 'year,': 0.37;
'(or': 0.37; 'mean': 0.37; 'really': 0.37; 'file': 0.38; 'those':
0.38; 'read': 0.38; "it's": 0.38; 'use': 0.38; 'list': 0.39;
'means': 0.40; 'main': 0.40; 'students': 0.40; 'least': 0.40;
'directory': 0.40; 'enough': 0.40; 'could': 0.40; 'common': 0.60;
'normal': 0.60; 'reference': 0.61; 'skip:h 10': 0.61; 'hope':
0.61; 'covered': 0.61; 'covering': 0.63; 'follow': 0.63; 'seen':
0.65; 'let': 0.65; 'well': 0.66; 'nearly': 0.68; 'reach': 0.68;
'discussing': 0.69; 'subject:some': 0.69; 'received:116': 0.71;
'know.': 0.72; 'features': 0.76; 'strategies': 0.81; '2021': 0.84;
'points': 0.84; 'chooses': 0.84; 'chose': 0.84; 'maps': 0.84;
'stack,': 0.84; 'url-ip:76/8': 0.84; 'assembly,': 0.91; 'head,':
0.91; 'trick': 0.91
X-Injected-Via-Gmane: http://gmane.org/
User-Agent: ForteAgent/8.00.32.1272
X-Mailman-Approved-At: Wed, 11 Aug 2021 19:22:14 -0400
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <oal8hg5jn9j196d6tttpieq09nmvgad9sj@4ax.com>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo>
<CAPTjJmqA1=LR94juniaMRC=Vi=u0h_Sbneqf0qn1wqgELMRwgw@mail.gmail.com>
<mailman.343.1628622186.4164.python-list@python.org>
<86czqkb1z9.fsf@jevedi.com>
 by: Dennis Lee Bieber - Wed, 11 Aug 2021 23:19 UTC

On Wed, 11 Aug 2021 09:27:38 -0300, Hope Rouselle <hrouselle@jevedi.com>
declaimed the following:

>
>I wouldn't. This is all Python-stuff. The course chooses a language
>like Python, but it is not trying to teach Python --- it is trying to
>teach computer programming, that is, strategies in high-precision.
>

Then I would posit you are teaching the wrong level... What you
describe is what would be found a "data structures" and/or "algorithms"
course -- which is a second year, if not third year course in my (ancient)
history. Such a course presumes one already knows at least on programming
language well enough that they can take description of an algorithm (or
even more detailed, pseudo-code) and translate it into the language they
know. This means the students /must/ know basic if/then/else, iterative
looping (which may, at common core, mean coding with a numerical index,
rather than pulling objects themselves out of the indexable structure --
since not all languages support object iteration), conditional looping
(including how to turn a "repeat/until" into the equivalent "while" (I was
tempted to say "while/wend" but that is specific to languages that need
block terminators). Slicing with a stride isn't really useful to most
algorithm development -- it's more of trick in normal Python.

So... The first thing I would drop is the RESTRICTION to only use what
you've covered in prior sessions... Let the students read the language
reference manual, peruse the library reference manual, and allow them to
use whatever "advanced" techniques they are able to understand on their
own. Granted you may have to restrict some features if discussing a
"common" data structure (queue, stack, maybe even advanced list
manipulation -- allow pop() and del, as those are how one would implement
queue and stack). Same for sorting -- if covering bubble, insertion, heap,
and (horrors) multipass sort/merge using working files, obviously the
Python sort()/sorted() are off-limits.

For my Algorithm/Data Structure course (circa 1978), the instructor
allowed us to use any language /he/ could understand (so no SNOBOL). At the
time I'd gone through intro/advanced FORTRAN-4, intro/advanced COBOL, Sigma
Assembly, UCSD Pascal (not on the campus main computer, just a pair of
LSI-11s), and BASIC. The assignment was a "Hashed Head, Multiply-Linked
List". I chose to do that assignment using BASIC! In nearly 45 years, I've
only seen ONE real-world implementation of the HHMLL -- The file system
used by the Commodore Amiga. (Hash the first component of the path/name,
that maps to one of 64 entries in the root directory block; each entry
points the start of a linked list, follow the list until you reach the
block with the component name; if it is a directory block, hash the next
component and repeat; if it is a file block, the "entries" point to data
blocks instead of lists)

--
Wulfraed Dennis Lee Bieber AF6VN
wlfraed@ix.netcom.com http://wlfraed.microdiversity.freeddns.org/

Re: some problems for an introductory python test

<mailman.358.1628724842.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14564&group=comp.lang.python#14564

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: ros...@gmail.com (Chris Angelico)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 09:33:48 +1000
Lines: 47
Message-ID: <mailman.358.1628724842.4164.python-list@python.org>
References: <c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<k5k8hgt6apk88p4pat8m25t67rgbaqhkkc@4ax.com>
<CAPTjJmpAzJFCUrdDMtzR8SEC9e67cE8fpuP8JRP51bUGvn6b7Q@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
X-Trace: news.uni-berlin.de Ktigb2JE7mtEIS6IJCJqpAom7bTQ4H7WtLMr3Lw/6tYA==
Return-Path: <rosuav@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=BT1FFysD;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.001
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'fairly': 0.05; "python's":
0.05; 'subject:python': 0.06; 'language,': 0.07; 'linux': 0.07;
'scripts.': 0.07; 'used.': 0.07; 'angelico': 0.09; 'aug': 0.09;
'ports': 0.09; 'subject:test': 0.09; 'arbitrary': 0.16; 'bash':
0.16; 'chrisa': 0.16; 'command.': 0.16; 'fetch': 0.16;
'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16;
'guis': 0.16; 'heavily': 0.16; 'integrations': 0.16;
'interpreter': 0.16; 'intuition': 0.16; 'ms-dos': 0.16; 'sockets':
0.16; 'standards,': 0.16; 'support,': 0.16; 'variant': 0.16;
'wrote:': 0.16; 'api': 0.18; 'implement': 0.18; 'supported': 0.18;
"aren't": 0.20; 'thu,': 0.20; "i've": 0.22; 'language': 0.22;
'version': 0.22; "i'd": 0.23; 'to:addr:python-list': 0.23;
'command': 0.24; 'run': 0.24; 'probably': 0.24; 'anything': 0.24;
'chris': 0.26; 'thinking': 0.26; 'seems': 0.26; 'default': 0.28;
"didn't": 0.29; 'text': 0.29; '(and': 0.30; 'there': 0.31;
'think': 0.31; 'stuff': 0.31; 'but': 0.31; 'looked': 0.31;
"doesn't": 0.32; 'feed': 0.32; 'to:name:python': 0.32; 'message-
id:@mail.gmail.com': 0.33; 'received:209.85.166': 0.33; 'header
:In-Reply-To:1': 0.33; 'subject:for': 0.33; 'same': 0.34;
'received:google.com': 0.34; 'from:addr:gmail.com': 0.35; 'path':
0.37; 'way': 0.37; 'guide': 0.37; 'really': 0.37;
'received:209.85': 0.38; "it's": 0.38; 'something': 0.38;
'received:209': 0.38; 'use': 0.38; 'sending': 0.40; 'could': 0.40;
'built': 0.40; 'identify': 0.60; 'light': 0.60; 'normal': 0.60;
'search': 0.61; 'time.': 0.63; 'pass': 0.64; 'seen': 0.65; 'back':
0.65; 'extremely': 0.65; 'well': 0.66; 'ability': 0.68; 'days,':
0.69; 'interpreted': 0.69; 'subject:some': 0.69; 'highly': 0.70;
'took': 0.70; 'day.': 0.74; 'easy': 0.75; 'tools': 0.75;
'features': 0.76; '2021': 0.84; 'variety': 0.84; 'remarkably':
0.84
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;
bh=bL1OgeYNQFAjEWg19LFDkKusJ20EYdDrP8XqARhzOgU=;
b=BT1FFysDVRawmIRoCqlqretzvEGEFjY3HVzyoDlDfQjLYkAR8DRnQXAy70OZbCkyNH
BzBFokYMwzOOcli5t8Hypo6xzx1jg/AZpyDO0vroIBAyJMczGaBUQwqaSN65UTWlBHCo
pxk8RwBftaeNQbk9j+O+9mY/V7684kwv9k+4awwZEq0b0GupfXKkjqKZ19a6SiUrpnzL
AdTATZJAt13jeBHOxOuCdQ/C8oYZNdItPm+RJ2ps2WepKdDn6HoFZEdv8IGobOi6p6bX
fJJ0Pe1ztiLg6kHdillamfvdolgmDnFpvd3dhybEyv7cZEKUOs9PxWhtrYJZf2KZBcMj
GfEQ==
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;
bh=bL1OgeYNQFAjEWg19LFDkKusJ20EYdDrP8XqARhzOgU=;
b=TkzfzxQrp3dybkg813cKw5zaF6DeDt8v6hhssycXb7PlJDZHdP5z57mUdTPKwGMwkL
KIZNJ3q7TYx1L/em4EjLCWm1/5QrKGB27rOz26I4UrbA/mZ6ZejE0GwmmpvVpdV3XA3I
YXOe4tjS9upZgq1LHy/q576XTkfRzXSwyq58E2hVVaZ9Kfgmf6Xjrz0tqEOU0qkJROYw
97AM6nHvDpt/jUAkRi7CZqSfokpTudtr6M7TTSrMQ2g/zLx5RvheFsby5OGzHdg62+f4
kbouBudpAjP4YvGdWBjar20B1M3ZNd9lIqzutLlQe18y44XxTD1WlAycFnIAuwnk8zxT
mxcw==
X-Gm-Message-State: AOAM5313PJCQ2zpFR8Tt4gCOrWKPNYxrNHFDWNPMcPErtXQYfbUvT3vQ
c8VjrpaUil144P8a+pXYcxRqEf0k4Ga4kP1y/+20eEze
X-Google-Smtp-Source: ABdhPJyIaYE5f8umGq9Wf+lqcGKwIjKvSoa85H4uO0aN5zvODttKjCqdkjsx3pP9NBxx2g0Fv0i4sbl0LhB1tcDMttY=
X-Received: by 2002:a6b:b306:: with SMTP id c6mr816845iof.24.1628724839614;
Wed, 11 Aug 2021 16:33:59 -0700 (PDT)
In-Reply-To: <k5k8hgt6apk88p4pat8m25t67rgbaqhkkc@4ax.com>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <CAPTjJmpAzJFCUrdDMtzR8SEC9e67cE8fpuP8JRP51bUGvn6b7Q@mail.gmail.com>
X-Mailman-Original-References: <c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<k5k8hgt6apk88p4pat8m25t67rgbaqhkkc@4ax.com>
 by: Chris Angelico - Wed, 11 Aug 2021 23:33 UTC

On Thu, Aug 12, 2021 at 9:23 AM Dennis Lee Bieber <wlfraed@ix.netcom.com> wrote:
>
> On Thu, 12 Aug 2021 06:15:28 +1000, Chris Angelico <rosuav@gmail.com>
> declaimed the following:
>
>
> >The default command interpreter and shell on OS/2 was fairly primitive
> >by today's standards, and was highly compatible with the MS-DOS one,
> >but it also had the ability to run REXX scripts. REXX was *way* ahead
> >of its time. It's a shell language but remarkably well suited to
> >building GUIs and other tools (seriously, can you imagine designing a
> >GUI entirely in a bash script??). It had features that we'd consider
> >fairly normal or even primitive by Python's standards, but back then,
> >Python was extremely new and didn't really have very much mindshare.
> >REXX offered arbitrary-precision arithmetic, good databasing support,
> >a solid C API that made it easy to extend, integrations with a variety
> >of other systems... this was good stuff for its day. (REXX is still
> >around, but these days, I'd rather use Python.)
> >
> I was spoiled by the Amiga variant of REXX. Most current
> implementations (well, Regina is the only one I've looked at) can just pass
> command to the default shell. The Amiga version took advantage of Intuition
> Message Ports (OS supported IPC). That allowed it to "address
> <application>" any application that defined an ARexx port, allowing ARexx
> to be used as a scripting language for that application (and with multiple
> applications, one could easily fetch data from app1 and feed it to app2).
> ARexx did not, to my memory, implement arbitrary precision math.

The same functionality was available in OS/2, but not heavily used.
You could 'address cmd commandname' to force something to be
interpreted as a shell command, but that was about it. However, I
built a MUD that used REXX as its scripting language, and the default
destination was sending text back to the person who sent the command;
and you could, of course, still 'address cmd' to run a shell command.

> I've not seen anything equivalent in my light perusal of the Win32 API
> (the various guide books aren't layed out in any way to be a reference),
> and Linux seems to use UNIX sockets for IPC... No way to search for a
> connection point by name...
>

Win32 doesn't really have it. Unix sockets are kinda there but you
identify something by a path to the socket, not the name of the
application. But I think dbus is probably the closest to what you're
thinking of.

ChrisA

Re: some problems for an introductory python test

<868s16zol5.fsf@jevedi.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14572&group=comp.lang.python#14572

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!aioe.org!R5TT2ZhOtX40TQ/kWzunkQ.user.46.165.242.75.POSTED!not-for-mail
From: hrouse...@jevedi.com (Hope Rouselle)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 12:09:58 -0300
Organization: Aioe.org NNTP Server
Message-ID: <868s16zol5.fsf@jevedi.com>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: gioia.aioe.org; logging-data="61465"; posting-host="R5TT2ZhOtX40TQ/kWzunkQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:RcngCfNTPjpYiDF4I+6W/DH0eKU=
 by: Hope Rouselle - Thu, 12 Aug 2021 15:09 UTC

Chris Angelico <rosuav@gmail.com> writes:

[...]

>> > [1] And boy oh boy was that good fun. The OS/2 Presentation Manager
>> > had a wealth of power available. Good times, sad that's history now.
>>
>> I know OS/2 only by name. I never had the pleasure of using it. In
>> fact, I don't even know how it looks. I must be a little younger than
>> you are. But not too younger because I kinda remember its name. Was it
>> a system that might have thought of competing against Microsoft Windows?
>> :-) That's what my memory tells me about it.
>
> History lesson!
>
> Once upon a time, IBM and Microsoft looked at what Intel was
> producing, and went, hey, we need to design an operating system that
> can take advantage of the fancy features of this 80286 thing. So they
> collaborate on this plan to make a 16-bit protected mode OS.
> Unfortunately, things didn't work out too well, partly because this
> was when Microsoft was at its most monopolistic, and they ended up
> parting company. IBM continued to make OS/2, but Microsoft took their
> part of the code and made Windows NT out of it.

How is it possible that Microsoft would take part of the code of OS/2?
Did IBM just hand it to them?

> (Aside: Windows NT's 16-bit applications and OS/2's 16-bit
> applications were actually identical and compatible. Unfortunately,
> Win32 introduced a very new API, so as soon as everyone moved to
> 32-bit everything, the schism became problematic. But it was actually
> possible to package up a single .EXE file with a 16-bit MS-DOS loader,
> a Win32 loader, and an OS/2 32-bit loader, all happily coexisting.

Beautiful. :-) So if all libraries were around in each system, they had
perfect compatibility?

> In the latter half of the 1990s, Windows came in three broad flavours:
> the 16-bit Windows 3.x line, which ran purely on top of DOS; the
> 32-bit Windows 95 line, which was the "home" OS and had to be heavily
> compatible with Windows 3, but still doing more things; and the
> Windows NT line, which was aimed at businesses. OS/2 was a viable
> option for businesses, but almost nobody took it seriously as a home
> OS. And Microsoft was using its marketing machine to push Windows
> fairly hard, so most people went that way.
>
> OS/2 had all kinds of amazing features (for its time). The default
> file system, HPFS ("High Performance File System"... IBM was good at
> many things, but imaginative naming wasn't one of them), did a
> spectacular job of maintaining reliability and performance on the
> ever-growing hard disks of the time. Yes, it coped remarkably well,
> even on *gigantic* drives that could carry, ooh, an entire gigabyte of
> data! I'm not kidding! We even had a drive that had TWO gigabytes of
> space, and HPFS managed it beautifully! Plus, it had this fancy
> concept of "extended attributes"; on older systems (like MS-DOS's
> "FAT" family), a file might be Read-Only, Hidden, a System file, or
> needing to be Archived, and that was it - but on HPFS, you could
> attach arbitrary data like "File type: DeScribe Word Processor" or
> "Double click action: Run CASMake.cmd". This allowed the GUI to store
> all kinds of information *on the file itself* instead of needing
> hidden files (or, in Windows' case, the registry) to track that kind
> of thing.

Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
sequence of bytes? Users decide what to put in them? So OS/2 was
taking advantage of that to integrate it well with the system. Windows
was doing the same, but integrating the system with files in odd ways
--- such as a registry record to inform the system which programs open
which files? (That does sound more messy.)

UNIX's execve() is able to read the first line of an executable and
invoke its interpreter. I guess OS/2 was doing precisely that in a
different way?

> The default command interpreter and shell on OS/2 was fairly primitive
> by today's standards, and was highly compatible with the MS-DOS one,
> but it also had the ability to run REXX scripts. REXX was *way* ahead
> of its time. It's a shell language but remarkably well suited to
> building GUIs and other tools (seriously, can you imagine designing a
> GUI entirely in a bash script??).

I cannot imagine. I always wondered what REXX was about --- I saw
programs sometimes written in some website whose name is something like
Rosetta Code. REXX looked so weird. (``Who would program in that?'')
But I see now there is a context to it.

> It had features that we'd consider fairly normal or even primitive by
> Python's standards, but back then, Python was extremely new and didn't
> really have very much mindshare. REXX offered arbitrary-precision
> arithmetic, good databasing support, a solid C API that made it easy
> to extend, integrations with a variety of other systems... this was
> good stuff for its day. (REXX is still around, but these days, I'd
> rather use Python.)

Yeah, REXX looks horrible at first. But arbitrary-precision is
definitely very attractive. I never liked to deal with floating-point.

> I mentioned the Presentation Manager, because it was one of the best
> parts of running OS/2. The kernel was decent, but it was the graphical
> shell that was the real pleasure to work with. Probably the most
> notable feature, by today's standards, was that it had a single input
> queue. If you press a series of keys, they'd go into a global queue,
> and the application that has focus would get the first one. When that
> key has been handled, the application that has focus would get the
> next key from the queue. This means that, if the response to a
> keystroke is to change focus, then *even in a slow and lagged out
> system*, subsequent keys WOULD be sent to the new target window. That
> was AWESOME, and I really miss it. Except that I also don't. Because
> if a single application is having issues, now your entire keyboard and
> mouse is locked up... which kinda slightly sucks. Good luck resolving
> that problem. (We had some neat tools like WatchCat that could get
> around the single input queue via interrupt signals, and regain
> control. But it was still problematic.)

Wow, I kinda feel the same as you here. I think this justifies perhaps
using a hardware solution. (Crazy idea?! Lol.) Maybe machine and OS
could have a desktop-version that would have a hardware that could
effectively be like a second keyboard --- a button. So our keywords
would have a button that we press it, we could interrupt the OS to
handle such lock-up more gracefully. I suppose this is expensive,
complex and so on. But at the same time, it could be worth it.

> So, yeah. It was spectacular in its day.... but it kinda got left
> behind as the world moved on. These days, instead of running REXX code
> on OS/2 in a system that uses eight-bit text for most things, I use
> Python on Linux and full Unicode. But OS/2 was an important part of
> history, both my own personal journey, and the history of the world of
> PCs.

Very nice. Thanks a lot for sharing. I care a lot about such
histories. In fact, if you could point out from the top of your head
the best reference on the facts you mentioned here, I would love to
write it down for future reference. (You probably read books that
perhaps explained how the queue of windows messages worked et cetera.)

Thank you!

Re: some problems for an introductory python test

<mailman.369.1628793716.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14577&group=comp.lang.python#14577

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: ros...@gmail.com (Chris Angelico)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Fri, 13 Aug 2021 04:41:42 +1000
Lines: 182
Message-ID: <mailman.369.1628793716.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<CAPTjJmrG=+3EHBr=18k5M4d+p2Evd3HW9mpb2CjnRu5C0KeG4Q@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
X-Trace: news.uni-berlin.de XIqI8twp3+BW0q8xGiZSxwfTmRvXF63fURn9DCPy7a9Q==
Return-Path: <rosuav@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=NvzBx0O+;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.000
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '(for': 0.05; 'fairly':
0.05; 'gui': 0.05; 'restrictions': 0.05; 'subject:python': 0.06;
'dad': 0.07; 'linux': 0.07; 'queue': 0.07; 'scripts.': 0.07;
'thing.': 0.07; 'used.': 0.07; ':-)': 0.09; 'angelico': 0.09;
'api,': 0.09; 'aug': 0.09; 'describe': 0.09; 'design?': 0.09;
'effectively': 0.09; 'ended': 0.09; 'fact,': 0.09; 'identical':
0.09; 'integrate': 0.09; 'itself,': 0.09; 'meant': 0.09; 'moved':
0.09; 'neat': 0.09; 'odd': 0.09; 'pages,': 0.09; 'subject:test':
0.09; 'though.': 0.09; 'way?': 0.09; 'wikipedia': 0.09; 'window.':
0.09; 'writes:': 0.09; 'yes.': 0.09; "can't": 0.14; 'problem.':
0.14; 'arbitrary': 0.16; 'aside': 0.16; 'awkward': 0.16; 'bash':
0.16; 'chrisa': 0.16; 'come.': 0.16; 'executable': 0.16;
'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16;
'guis': 0.16; 'heavily': 0.16; 'idea.': 0.16; 'interpreter': 0.16;
'invoke': 0.16; 'ms-dos': 0.16; 'notable': 0.16; 'now;': 0.16;
'oh,': 0.16; 'oses': 0.16; 'regain': 0.16; 'registry': 0.16;
'resolving': 0.16; 'signals,': 0.16; 'slow': 0.16; 'standards,':
0.16; 'supported.': 0.16; 'them?': 0.16; 'things,': 0.16;
'wrote:': 0.16; 'that.': 0.16; 'python': 0.16; 'instead': 0.17;
'applications': 0.18; 'code.': 0.19; 'uses': 0.19; 'libraries':
0.20; 'maybe': 0.20; 'language': 0.22; 'machine': 0.22;
'basically': 0.23; 'fri,': 0.23; 'anyone': 0.23; 'to:addr:python-
list': 0.23; 'command': 0.24; 'url:wiki': 0.24; 'run': 0.24;
'code': 0.24; 'probably': 0.24; 'written': 0.24; 'cannot': 0.24;
'chris': 0.26; 'available,': 0.27; 'concept': 0.27; 'port': 0.27;
"wasn't": 0.27; 'else': 0.27; 'bit': 0.28; 'old': 0.28; 'single':
0.28; 'default': 0.28; 'mostly': 0.28; "didn't": 0.29; 'input':
0.29; "isn't": 0.29; 'everyone': 0.29; 'text': 0.29; 'highly':
0.70; 'shows': 0.70; 'took': 0.70; 'manager': 0.70; 'companies':
0.70; 'you.': 0.70; 'interesting': 0.71; 'head': 0.74; 'url:php':
0.74; 'tools': 0.75; 'features': 0.76; 'database': 0.77; 'man':
0.77; '(you': 0.77; 'collaborate': 0.77; 'up,': 0.77; 'left':
0.79; 'inform': 0.79; 'reference.': 0.81; 'more.': 0.81; 'click':
0.82; '2021': 0.84; '(like': 0.84; '(that': 0.84; 'became': 0.84;
'compatible.': 0.84; 'control.': 0.84; 'feature,': 0.84;
'handled': 0.84; 'keystroke': 0.84; 'luck': 0.84; 'mouse': 0.84;
'os.': 0.84; 'pin': 0.84; 'remarkably': 0.84; 'spectacular': 0.84;
'behind': 0.88; 'perfect': 0.89; '(we': 0.91; 'ball': 0.91;
'trick': 0.91; 'wondered': 0.91; 'locked': 0.93; 'hidden': 0.95;
'ibm': 0.95; 'keywords': 0.95; 'subsequent': 0.95
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;
bh=vNIeFGyb/7ubn5Wew81yU/C4L1y2cf8ejVgCmDbK5Lk=;
b=NvzBx0O+Gu2VNxf+FdjSReH9YB0H3IPYU3KcC98j/EnM4HwDL0Pr9lkzgBLhK/JLTS
ZB5qIpq4PC1R6+NgJBDtiQ5aOTthrTr/kDqXiEsrbHKsTv0jpxDFuHdWuNqJMiQDWrhj
z4QFUdnkWhzL8VooyUtVekfqtbTmfQPwpVoSrqn4R7iI+R19YDfDwKAZ+SPBvfzlUMO5
vEi5Pqws89ySoT7L32CimP7dkhi0STymsVB7aYYOf7jxtI57RSaJZ6xGe8S471TmmMod
lndSIfd3zWTgtP4JJXOavSgC0ahLY9I8+NfYcW2ctNoi801fZJG0n6y4R+MvuVvC2c++
gRcQ==
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;
bh=vNIeFGyb/7ubn5Wew81yU/C4L1y2cf8ejVgCmDbK5Lk=;
b=quqma4aPTRlIb5fY1j8GC6XJO782ffT+CyozCyqQs6dV/btBrWZq3XDFFX/4+PMqPI
doKOid0hkg9gQPf8FsbpdguqI/3/cDuI9V8MD2nP7I9xR3m02yysPdKIvzxPH32w1C7A
MHmTu3cwwLoeTWovAAoIpNg9n4HcHK7symWQ3zdcrrDHkWQkvLsn30KraTYcmMTT+QJJ
MYWhRLXyKNfHeQKkdVUbD/Pqs8lqaDkYQ1memC8TgvsR6BTV5Cr0BGYMhFDhoUybotFE
2R00SPCTvpxagMG+8JgyaWdIkZl1+z9W9qt5W6hc2U8fd3s/XRZcalAZiIjVemjGoP4v
1Oyw==
X-Gm-Message-State: AOAM530G8TUWP4218uT5c0RztKC+zCZjallh/G5WBPy1SMmR/9/tDEch
qld51Eu2B4UJlHi8vhjFMrz/VOL4hCnaoQHxe5EmdUuQ57w=
X-Google-Smtp-Source: ABdhPJwYUTjVF2rWNSsXFH71sPJVzhKUS+lfZd4fOGEczitWNMtcxVfMBlo4k2d5tQsFnEUv6cidf23pblzo7i2c/lg=
X-Received: by 2002:a92:3f0b:: with SMTP id m11mr4017331ila.265.1628793713568;
Thu, 12 Aug 2021 11:41:53 -0700 (PDT)
In-Reply-To: <868s16zol5.fsf@jevedi.com>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <CAPTjJmrG=+3EHBr=18k5M4d+p2Evd3HW9mpb2CjnRu5C0KeG4Q@mail.gmail.com>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
 by: Chris Angelico - Thu, 12 Aug 2021 18:41 UTC

On Fri, Aug 13, 2021 at 2:15 AM Hope Rouselle <hrouselle@jevedi.com> wrote:
>
> Chris Angelico <rosuav@gmail.com> writes:
>
> > History lesson!
> >
> > Once upon a time, IBM and Microsoft looked at what Intel was
> > producing, and went, hey, we need to design an operating system that
> > can take advantage of the fancy features of this 80286 thing. So they
> > collaborate on this plan to make a 16-bit protected mode OS.
> > Unfortunately, things didn't work out too well, partly because this
> > was when Microsoft was at its most monopolistic, and they ended up
> > parting company. IBM continued to make OS/2, but Microsoft took their
> > part of the code and made Windows NT out of it.
>
> How is it possible that Microsoft would take part of the code of OS/2?
> Did IBM just hand it to them?

I presume both companies had all of the code. It was a matter of
licensing, though. There were a few components that were saddled with
awkward restrictions due to the dual ownership (for instance, HPFS386
was Microsoft-controlled, but vanilla HPFS was fine - kinda like the
difference between LZW and LZ77).

> > (Aside: Windows NT's 16-bit applications and OS/2's 16-bit
> > applications were actually identical and compatible. Unfortunately,
> > Win32 introduced a very new API, so as soon as everyone moved to
> > 32-bit everything, the schism became problematic. But it was actually
> > possible to package up a single .EXE file with a 16-bit MS-DOS loader,
> > a Win32 loader, and an OS/2 32-bit loader, all happily coexisting.
>
> Beautiful. :-) So if all libraries were around in each system, they had
> perfect compatibility?

The 16-bit loaders were fine, but the 32-bit loaders were different,
so this trick basically meant having three different copies of the
code wrapped up in a single executable.

> > Plus, it had this fancy
> > concept of "extended attributes"; on older systems (like MS-DOS's
> > "FAT" family), a file might be Read-Only, Hidden, a System file, or
> > needing to be Archived, and that was it - but on HPFS, you could
> > attach arbitrary data like "File type: DeScribe Word Processor" or
> > "Double click action: Run CASMake.cmd". This allowed the GUI to store
> > all kinds of information *on the file itself* instead of needing
> > hidden files (or, in Windows' case, the registry) to track that kind
> > of thing.
>
> Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
> sequence of bytes? Users decide what to put in them? So OS/2 was
> taking advantage of that to integrate it well with the system. Windows
> was doing the same, but integrating the system with files in odd ways
> --- such as a registry record to inform the system which programs open
> which files? (That does sound more messy.)

Something like that, but with a lot more metadata. Modern OSes don't
seem to work that way any more.

> UNIX's execve() is able to read the first line of an executable and
> invoke its interpreter. I guess OS/2 was doing precisely that in a
> different way?

Kinda, but instead of having the choice of interpreter be inside the
file contents itself, the choice was in the file's metadata. Still
part of the file, but if you open and read the file, it isn't any
different.

> > The default command interpreter and shell on OS/2 was fairly primitive
> > by today's standards, and was highly compatible with the MS-DOS one,
> > but it also had the ability to run REXX scripts. REXX was *way* ahead
> > of its time. It's a shell language but remarkably well suited to
> > building GUIs and other tools (seriously, can you imagine designing a
> > GUI entirely in a bash script??).
>
> I cannot imagine. I always wondered what REXX was about --- I saw
> programs sometimes written in some website whose name is something like
> Rosetta Code. REXX looked so weird. (``Who would program in that?'')
> But I see now there is a context to it.

Yeah. It was a strange choice by today's standards, but back then,
most of my GUI programs were written in REXX.

https://en.wikipedia.org/wiki/VX-REXX
http://www.edm2.com/0206/vrexx.html

(There were other tools too - VisPro REXX, VREXX, DrDialog, and
various others - but VX-REXX was where most of my dev work happened.)

> > Probably the most
> > notable feature, by today's standards, was that it had a single input
> > queue. ... This means that, if the response to a
> > keystroke is to change focus, then *even in a slow and lagged out
> > system*, subsequent keys WOULD be sent to the new target window. That
> > was AWESOME, and I really miss it. Except that I also don't. Because
> > if a single application is having issues, now your entire keyboard and
> > mouse is locked up... which kinda slightly sucks. Good luck resolving
> > that problem. (We had some neat tools like WatchCat that could get
> > around the single input queue via interrupt signals, and regain
> > control. But it was still problematic.)
>
> Wow, I kinda feel the same as you here. I think this justifies perhaps
> using a hardware solution. (Crazy idea?! Lol.)

uhhh........ Yes. Very crazy idea. Can't imagine why anyone would ever
think about doing that.

Certainly nobody in his right mind would have WatchCat listening on
the serial port's Ring Indicator interrupt, and then grab a paperclip
to bridge the DTR and RI pins on an otherwise-unoccupied serial port
on the back of the PC. (The DTR pin was kept high by the PC, and could
therefore be used as an open power pin to bring the RI high.)

If you're curious, it's pins 4 and 9 - diagonally up and in from the
short corner. http://www.usconverters.com/index.php?main_page=page&id=61&chapter=0

And of COURSE nobody would ever take an old serial mouse, take the
ball out of it, and turn it into a foot-controlled signal... although
that wasn't for WatchCat, that was for clipboard management between my
app and a Windows accounting package that we used. But that's a
separate story.

> Maybe machine and OS
> could have a desktop-version that would have a hardware that could
> effectively be like a second keyboard --- a button. So our keywords
> would have a button that we press it, we could interrupt the OS to
> handle such lock-up more gracefully. I suppose this is expensive,
> complex and so on. But at the same time, it could be worth it.

SysRq should theoretically be that. (That's Alt+PrtSc on a lot of
keyboards.) I'm not sure how it could best be handled though. It might
be that today's GUI systems (X11, Wayland, Cocoa, Win32, etc) just
wouldn't work with a single input queue. Would be curious to see if
any modern OS/GUI pair has a synchronous input queue like that.

> > So, yeah. It was spectacular in its day.... but it kinda got left
> > behind as the world moved on. These days, instead of running REXX code
> > on OS/2 in a system that uses eight-bit text for most things, I use
> > Python on Linux and full Unicode. But OS/2 was an important part of
> > history, both my own personal journey, and the history of the world of
> > PCs.
>
> Very nice. Thanks a lot for sharing. I care a lot about such
> histories. In fact, if you could point out from the top of your head
> the best reference on the facts you mentioned here, I would love to
> write it down for future reference. (You probably read books that
> perhaps explained how the queue of windows messages worked et cetera.)
>
> Thank you!

Thank you for asking questions about it! Aside from making me feel old
(which, let's face it, is kinda inevitable), it's great to dig through
some of the history and a few of the very different ways things have
been done.

References, unfortunately, are a bit hard to share, since they're
mostly dead-tree books, plus a small number of IPF documents (a format
kinda like man pages, but they get compiled) which have probably been
lost by now. Oh, plus a lot of "My dad told me", which is a bit hard
to point anyone else to :)

But if you want to delve into things today, I would recommend using
Wikipedia or whatever the almighty Google shows up, neither of which
was available back then, but both of which have vast information
available to you. Some useful topics:

* Single (or Synchronous) Input Queue
* CORBA (the system for cross-language subclassing of PM classes)
* The OS/2 Presentation Manager
* 80386 Protected Mode
* DBCS (early multilanguage support - appallingly inferior to Unicode,
but better than nothing)
* REXX, VX-REXX, VPREXX, VREXX
* DB2 (IBM's flagship database both then and now; spectacular even
back then, although slow at times)

Python *was* available on OS/2 back then, but not heavily supported.
It might be interesting to compare the early versions of Python to the
other tools available, but probably more useful to compare the 1990s
tools to modern Python on modern OSes and see how far the world has
come.


Click here to read the complete article
Re: some problems for an introductory python test

<mailman.370.1628794928.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14578&group=comp.lang.python#14578

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: grant.b....@gmail.com (Grant Edwards)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 17:52:42 -0000 (UTC)
Lines: 44
Message-ID: <mailman.370.1628794928.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
X-Trace: news.uni-berlin.de sOhNI9u+RrzkQ5bazGegpAwr4bV4mhaXVMXN6tX0DhGw==
Return-Path: <python-python-list@m.gmane-mx.org>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.001
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '(for': 0.05; 'gui': 0.05;
'subject:python': 0.06; 'thing.': 0.07; 'describe': 0.09;
'design?': 0.09; 'integrate': 0.09; 'macos': 0.09; 'message-
id:@ciao.gmane.io': 0.09; 'odd': 0.09; 'received:ciao.gmane.io':
0.09; 'received:gmane.io': 0.09; 'received:list': 0.09;
'subject:test': 0.09; 'way?': 0.09; 'arbitrary': 0.16;
'attributes': 0.16; 'executable': 0.16; 'filesystems': 0.16;
'from:addr:grant.b.edwards': 0.16; 'from:name:grant edwards':
0.16; 'invoke': 0.16; 'received:116.202': 0.16;
'received:116.202.254': 0.16; 'received:116.202.254.214': 0.16;
'registry': 0.16; 'separately': 0.16; 'them?': 0.16; 'wrote:':
0.16; 'grant': 0.17; 'instead': 0.17; 'supported': 0.18; 'to:addr
:python-list': 0.23; 'url:wiki': 0.24; 'run': 0.24; 'concept':
0.27; "isn't": 0.29; 'header:User-Agent:1': 0.31; 'think': 0.31;
'but': 0.31; 'attach': 0.32; 'guess': 0.32; 'same,': 0.32; 'url-
ip:91/8': 0.32; 'present': 0.33; 'subject:for': 0.33; 'files':
0.33; 'same': 0.34; 'track': 0.35; 'from:addr:gmail.com': 0.35;
'windows': 0.36; 'able': 0.36; "that's": 0.37; 'users': 0.37;
'file': 0.38; 'read': 0.38; "it's": 0.38; 'something': 0.38;
'word': 0.38; 'does': 0.38; 'put': 0.39; 'taking': 0.40;
'programs': 0.40; 'could': 0.40; 'normal': 0.60; 'hope': 0.61;
'url:wikipedia': 0.63; 'talking': 0.65; 'type:': 0.65; 'amazing':
0.66; 'well': 0.66; 'similar': 0.66; 'exists': 0.69;
'integrating': 0.69; 'subject:some': 0.69; 'received:116': 0.71;
'features': 0.76; 'inform': 0.79; 'click': 0.82; '(like': 0.84;
'(that': 0.84; 'time).': 0.84; 'hidden': 0.95
X-Injected-Via-Gmane: http://gmane.org/
User-Agent: slrn/1.0.3 (Linux)
X-Mailman-Approved-At: Thu, 12 Aug 2021 15:02:08 -0400
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <sf3n5a$10sk$1@ciao.gmane.io>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
 by: Grant Edwards - Thu, 12 Aug 2021 17:52 UTC

On 2021-08-12, Hope Rouselle <hrouselle@jevedi.com> wrote:

>> OS/2 had all kinds of amazing features (for its time). [...] Plus,
>> it had this fancy concept of "extended attributes"; on older
>> systems (like MS-DOS's "FAT" family), a file might be Read-Only,
>> Hidden, a System file, or needing to be Archived, and that was it -
>> but on HPFS, you could attach arbitrary data like "File type:
>> DeScribe Word Processor" or "Double click action: Run
>> CASMake.cmd". This allowed the GUI to store all kinds of
>> information *on the file itself* instead of needing hidden files
>> (or, in Windows' case, the registry) to track that kind of thing.
>
> Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
> sequence of bytes? Users decide what to put in them?

I think what he's talking about is allowing the user to attach
arbitrary _metadata_ to the file -- metadata that exists separately
and independently from the normal data that's just a "sequence of
bytes". IOW, something similar to the "resource fork" that MacOS used
to have. https://en.wikipedia.org/wiki/Resource_fork

> So OS/2 was taking advantage of that to integrate it well with the
> system. Windows was doing the same, but integrating the system with
> files in odd ways --- such as a registry record to inform the system
> which programs open which files? (That does sound more messy.)

Windows never had filesystems that supported metadata like OS/2 and
MacOS did. The registry was an ugly hack that attempted (very poorly)
to make up for that lack of metadata.

> UNIX's execve() is able to read the first line of an executable and
> invoke its interpreter. I guess OS/2 was doing precisely that in a
> different way?

No, that's not at all the same thing. The #! line is part of the
normal file data. It's part of the 'sequence of bytes'. Metadata
maintained by Unix filesystems comprises a very limited and
pre-defined set of attributes present in the inode.

--
Grant

Re: some problems for an introductory python test

<mailman.371.1628795664.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14579&group=comp.lang.python#14579

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: ros...@gmail.com (Chris Angelico)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Fri, 13 Aug 2021 05:14:10 +1000
Lines: 45
Message-ID: <mailman.371.1628795664.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
<CAPTjJmonDHSzGuMKcM+SLFbhKv4mKqjOioBuaQZV_iTuTcMLOw@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
X-Trace: news.uni-berlin.de XAjiPeR4/8QmbN479uWtTAuPapYpA11lEkyBEkSQFGJA==
Return-Path: <rosuav@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=pBga9481;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.022
X-Spam-Evidence: '*H*': 0.96; '*S*': 0.00; '(for': 0.05; 'gui': 0.05;
'subject:python': 0.06; 'thing.': 0.07; 'aug': 0.09; 'describe':
0.09; 'design?': 0.09; 'integrate': 0.09; 'macos': 0.09; 'odd':
0.09; 'subject:test': 0.09; 'possible,': 0.14; 'arbitrary': 0.16;
'chrisa': 0.16; 'cleaned': 0.16; 'dict': 0.16; 'filesystems':
0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16;
'indeed': 0.16; 'nuke': 0.16; 'registry': 0.16; 'separately':
0.16; 'them?': 0.16; 'values,': 0.16; 'wrote:': 0.16; 'values':
0.16; 'python': 0.16; 'grant': 0.17; 'instead': 0.17; 'supported':
0.18; 'fri,': 0.23; 'to:addr:python-list': 0.23; 'url:wiki': 0.24;
'run': 0.24; 'leave': 0.25; 'concept': 0.27; "didn't": 0.29;
"isn't": 0.29; 'think': 0.31; 'but': 0.31; '(with': 0.31; '13,':
0.32; 'attach': 0.32; 'same,': 0.32; 'to:name:python': 0.32;
'message-id:@mail.gmail.com': 0.33; 'received:209.85.166': 0.33;
'header:In-Reply-To:1': 0.33; 'subject:for': 0.33; 'files': 0.33;
'received:google.com': 0.34; 'track': 0.35; 'yes,': 0.35;
'from:addr:gmail.com': 0.35; 'windows': 0.36; 'system,': 0.37;
"that's": 0.37; 'users': 0.37; 'received:209.85': 0.38; 'file':
0.38; "it's": 0.38; 'something': 0.38; 'received:209': 0.38;
'word': 0.38; 'does': 0.38; 'put': 0.39; 'taking': 0.40; 'simple':
0.40; 'directory': 0.40; 'programs': 0.40; 'could': 0.40;
'common': 0.60; 'normal': 0.60; 'hope': 0.61; 'url-
ip:208.80.154/24': 0.63; 'url-ip:208.80/16': 0.63;
'url:wikipedia': 0.63; 'back': 0.65; 'talking': 0.65; 'type:':
0.65; 'amazing': 0.66; 'well': 0.66; 'similar': 0.66; 'exists':
0.69; 'integrating': 0.69; 'subject:some': 0.69; 'url-ip:208/8':
0.71; 'features': 0.76; 'poor': 0.77; 'potentially': 0.77;
'inform': 0.79; 'click': 0.82; '2021': 0.84; '(like': 0.84;
'(that': 0.84; 'maps': 0.84; 'pairs': 0.84; 'time).': 0.84;
'behind': 0.88; 'fat': 0.91; 'hidden': 0.95
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;
bh=W1F4dnMlcSuTAXz9NH4qIWODXl78/1Vi0Pqps7DnqRg=;
b=pBga9481Y9DvL4elHBYd8lzpDw3c7YttGIo0KQVyFsQBTwFRQIz2LD6f/r1BfCaU86
dvFPspmqGGnGJLlYeo7RpB5MsQSnmikIiisTzo7+Qjq1Ovg04VRr6qVMvnXyjmueS38U
bNe/DDCZfKdIX3ZwxnBVaD8puGzgolrvCyAPytD5m7SvNB36XKZYTETB7wDIyW10qjIe
CZqHjJO/RYho6ug/BPVyRs/+7NM+V4RBeKh21nz+tCttpvpmf5NIUzpl5/GdGrQ2XW03
XhSbOWDqPEQSMVvTyLh1Tr2THegeqpQMNCjPgep3NtibLyor2RyrS16NYzuQidN+0u0D
UJ6A==
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;
bh=W1F4dnMlcSuTAXz9NH4qIWODXl78/1Vi0Pqps7DnqRg=;
b=JV0jsPiFp/f+JnX9IY3NGKBWvaHO6nFezmhGj9cRCCGvr4hyUw1OoNXQy9KMSbWa4b
hYuloTTBVFeJxpl58+HE5G9NuMK88dAAUWtXSreVqhvjaUQfdzf0Hfhrs4V+W62mULfg
YcbjcXLUSbH+QHtCfu8p+ffiKTNBzl4OjLOAGZXljIPV3x/UtUHVwOLtZBxFSLI7DR6q
JRFlSNBS+dX0TVajS5fJTGrxAzLy5v29MhJbXTvmkw/jmrvBcV4ZAJatOC8jp3rlLVNh
/7myll5HMqFt+umu1pJd/xBgcJX7Kpaz7Jj6/mRWkJBTq6NT6XaI68u4+SVuP4FyAyba
DTVg==
X-Gm-Message-State: AOAM532HJ9wqvJaov9rCtR26fzdFjJyosZoVXWR0mn0KRpCDC49KCzsH
w4ayamQwP0cl95cXdLZWiiAeBhAyDbKGU5rQK8/dV8dC
X-Google-Smtp-Source: ABdhPJwCu+YNYedmLXtELlmWUstvhA0RcKxBLrasFqckbnIfo9czQPefYFojoXmoCXCGHOOfqOnmf9TwyvsrCfDIwiU=
X-Received: by 2002:a92:da87:: with SMTP id u7mr73661iln.297.1628795661602;
Thu, 12 Aug 2021 12:14:21 -0700 (PDT)
In-Reply-To: <sf3n5a$10sk$1@ciao.gmane.io>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <CAPTjJmonDHSzGuMKcM+SLFbhKv4mKqjOioBuaQZV_iTuTcMLOw@mail.gmail.com>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<sf3n5a$10sk$1@ciao.gmane.io>
 by: Chris Angelico - Thu, 12 Aug 2021 19:14 UTC

On Fri, Aug 13, 2021 at 5:03 AM Grant Edwards <grant.b.edwards@gmail.com> wrote:
>
> On 2021-08-12, Hope Rouselle <hrouselle@jevedi.com> wrote:
>
> >> OS/2 had all kinds of amazing features (for its time). [...] Plus,
> >> it had this fancy concept of "extended attributes"; on older
> >> systems (like MS-DOS's "FAT" family), a file might be Read-Only,
> >> Hidden, a System file, or needing to be Archived, and that was it -
> >> but on HPFS, you could attach arbitrary data like "File type:
> >> DeScribe Word Processor" or "Double click action: Run
> >> CASMake.cmd". This allowed the GUI to store all kinds of
> >> information *on the file itself* instead of needing hidden files
> >> (or, in Windows' case, the registry) to track that kind of thing.
> >
> > Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
> > sequence of bytes? Users decide what to put in them?
>
> I think what he's talking about is allowing the user to attach
> arbitrary _metadata_ to the file -- metadata that exists separately
> and independently from the normal data that's just a "sequence of
> bytes". IOW, something similar to the "resource fork" that MacOS used
> to have. https://en.wikipedia.org/wiki/Resource_fork

Correct. OS/2's EAs are name/value pairs (with the value potentially
being a set of values - think how a Python dict maps keys to values,
but the values could be lists), with a few names having significance
to the system, like .TYPE and .LONGNAME (used on file systems that
didn't support longnames - yes, that's possible, since EAs could be
stored in a hidden file on a FAT disk).

> > So OS/2 was taking advantage of that to integrate it well with the
> > system. Windows was doing the same, but integrating the system with
> > files in odd ways --- such as a registry record to inform the system
> > which programs open which files? (That does sound more messy.)
>
> Windows never had filesystems that supported metadata like OS/2 and
> MacOS did. The registry was an ugly hack that attempted (very poorly)
> to make up for that lack of metadata.

Very poor indeed - it was very very common back then for Windows
programs to blat themselves all over the registry and then leave it
all behind when you nuke that thing. With EAs, it's all part of the
file itself and will be cleaned up by a simple directory removal.

ChrisA

Re: some problems for an introductory python test

<mailman.372.1628798592.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14580&group=comp.lang.python#14580

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: pyt...@mrabarnett.plus.com (MRAB)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 20:54:01 +0100
Lines: 42
Message-ID: <mailman.372.1628798592.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
<4c9de5d7-97ff-65b0-8669-8dc17f229fd0@mrabarnett.plus.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de 8rgTqs6NjcFvD3FHqHm6jAbqUJWfXvnStrAJpa+tKIaA==
Return-Path: <python@mrabarnett.plus.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=plus.com header.i=@plus.com header.b=GYdkUyR2;
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.002
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '(for': 0.05; 'gui': 0.05;
'subject:python': 0.06; 'thing.': 0.07; 'describe': 0.09;
'design?': 0.09; 'from:addr:python': 0.09; 'fyi,': 0.09;
'integrate': 0.09; 'macos': 0.09; 'odd': 0.09;
'received:192.168.1.64': 0.09; 'subject:test': 0.09; 'way?': 0.09;
'arbitrary': 0.16; 'attributes': 0.16; 'executable': 0.16;
'filesystems': 0.16; 'from:addr:mrabarnett.plus.com': 0.16;
'from:name:mrab': 0.16; 'invoke': 0.16; 'message-
id:@mrabarnett.plus.com': 0.16; 'ntfs': 0.16; 'received:84.93':
0.16; 'received:84.93.230': 0.16; 'received:plus.net': 0.16;
'registry': 0.16; 'separately': 0.16; 'them?': 0.16; 'wrote:':
0.16; 'grant': 0.17; 'instead': 0.17; 'supported': 0.18; 'to:addr
:python-list': 0.23; 'url:wiki': 0.24; 'run': 0.24; '>>>': 0.26;
'concept': 0.27; "isn't": 0.29; 'header:User-Agent:1': 0.31;
'received:192.168.1': 0.31; 'think': 0.31; 'but': 0.31; 'attach':
0.32; 'guess': 0.32; 'same,': 0.32; 'present': 0.33; 'header:In-
Reply-To:1': 0.33; 'subject:for': 0.33; 'files': 0.33; 'same':
0.34; 'track': 0.35; 'windows': 0.36; 'able': 0.36;
'received:192.168': 0.37; "that's": 0.37; 'users': 0.37; 'file':
0.38; 'read': 0.38; "it's": 0.38; 'something': 0.38; 'word': 0.38;
'does': 0.38; 'put': 0.39; 'taking': 0.40; 'programs': 0.40;
'could': 0.40; 'normal': 0.60; 'hope': 0.61; 'url-
ip:208.80.154/24': 0.63; 'url-ip:208.80/16': 0.63;
'url:wikipedia': 0.63; 'talking': 0.65; 'type:': 0.65; 'amazing':
0.66; 'well': 0.66; 'similar': 0.66; 'exists': 0.69;
'integrating': 0.69; 'subject:some': 0.69; 'url-ip:208/8': 0.71;
'features': 0.76; 'inform': 0.79; 'click': 0.82; '(like': 0.84;
'(that': 0.84; 'time).': 0.84; 'hidden': 0.95
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plus.com; s=042019;
t=1628798041; bh=+IrgyO17HemegeoiaiwZgTLo9VzM2TLA693tPRN26fA=;
h=Subject:To:References:From:Date:In-Reply-To;
b=GYdkUyR2FN3T0aCdBjt5m/2FJlgO9w4kPgcpYI09MXDf6KVpWlXbs6IEJ38SnkM1Q
EOi5OL4S8sZQepmIu/NzCIarI2gVKyZ0UgEZ0qZ1/ypNxGX547DtQcye3ht2YzPmD8
UmbPfeETpfpgmhtKOHM1g7i8biiDPuvohDDjToY6No6NU6a99W3uUvlGaPNdh55lZ7
A5288GSphyERLiRrsPGacv7zJ6PtkZ3Yr2x98D9BcbCY8/tHW9SjrPBvl7fhXV34uU
QcCYEw4pxSo3qBwEZMopwWZtN4bwX09/+MVKVPLu4uumjZxWhnJnkxYl/aLNn7o/Xo
qxg53onovkuXw==
X-Clacks-Overhead: "GNU Terry Pratchett"
X-CM-Score: 0.00
X-CNFS-Analysis: v=2.3 cv=TPXet2ta c=1 sm=1 tr=0
a=0nF1XD0wxitMEM03M9B4ZQ==:117 a=0nF1XD0wxitMEM03M9B4ZQ==:17
a=IkcTkHD0fZMA:10 a=8HUNyYg0AAAA:8 a=8pif782wAAAA:8 a=SpkR2EARFqOveAZFXZIA:9
a=QEXdDO2ut3YA:10 a=ZJZYNslktjQP36P7HBHq:22
X-AUTH: mrabarnett@:2500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
In-Reply-To: <sf3n5a$10sk$1@ciao.gmane.io>
Content-Language: en-GB
X-CMAE-Envelope: MS4wfAf+LVdiALlrzuGdz7xmgTsWA5FKMIuPLRhIltylgGlCb4KYU8HvSZce8LxAUm9TV7DE7giND0hvkK+DqAXE9Kxn6fqAILyIsbTrJFe/Y8xbXk7GwTmn
9+zVHzrSCO3Mg8lW7xmdT5gMBPSxO8GqOfTqS+UvS1iDiI9TdgkW3bFwZrA4Kf3nkigYOyW5Ad7RNQ==
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <4c9de5d7-97ff-65b0-8669-8dc17f229fd0@mrabarnett.plus.com>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
 by: MRAB - Thu, 12 Aug 2021 19:54 UTC

On 2021-08-12 18:52, Grant Edwards wrote:
> On 2021-08-12, Hope Rouselle <hrouselle@jevedi.com> wrote:
>
>>> OS/2 had all kinds of amazing features (for its time). [...] Plus,
>>> it had this fancy concept of "extended attributes"; on older
>>> systems (like MS-DOS's "FAT" family), a file might be Read-Only,
>>> Hidden, a System file, or needing to be Archived, and that was it -
>>> but on HPFS, you could attach arbitrary data like "File type:
>>> DeScribe Word Processor" or "Double click action: Run
>>> CASMake.cmd". This allowed the GUI to store all kinds of
>>> information *on the file itself* instead of needing hidden files
>>> (or, in Windows' case, the registry) to track that kind of thing.
>>
>> Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
>> sequence of bytes? Users decide what to put in them?
>
> I think what he's talking about is allowing the user to attach
> arbitrary _metadata_ to the file -- metadata that exists separately
> and independently from the normal data that's just a "sequence of
> bytes". IOW, something similar to the "resource fork" that MacOS used
> to have. https://en.wikipedia.org/wiki/Resource_fork
>
>> So OS/2 was taking advantage of that to integrate it well with the
>> system. Windows was doing the same, but integrating the system with
>> files in odd ways --- such as a registry record to inform the system
>> which programs open which files? (That does sound more messy.)
>
> Windows never had filesystems that supported metadata like OS/2 and
> MacOS did. The registry was an ugly hack that attempted (very poorly)
> to make up for that lack of metadata.
>
FYI, NTFS does support Alternate Data Streams.

>> UNIX's execve() is able to read the first line of an executable and
>> invoke its interpreter. I guess OS/2 was doing precisely that in a
>> different way?
>
> No, that's not at all the same thing. The #! line is part of the
> normal file data. It's part of the 'sequence of bytes'. Metadata
> maintained by Unix filesystems comprises a very limited and
> pre-defined set of attributes present in the inode.
>

Re: some problems for an introductory python test

<mailman.373.1628805761.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14581&group=comp.lang.python#14581

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: wlfr...@ix.netcom.com (Dennis Lee Bieber)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 15:56:04 -0400
Organization: IISS Elusive Unicorn
Lines: 172
Message-ID: <mailman.373.1628805761.4164.python-list@python.org>
References: <CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<29qahglb1bebs1fmcllvrejqh67mpth48e@4ax.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de +moao/TgSMZOax2hlAqVHA8wmjKnbBdptt113NydL/Iw==
Return-Path: <python-python-list@m.gmane-mx.org>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.008
X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'parallel': 0.05;
'subject:python': 0.06; 'linux': 0.07; 'package.': 0.07; 'aug':
0.09; 'debian': 0.09; 'design?': 0.09; 'desktop.': 0.09;
'floating': 0.09; 'integrate': 0.09; 'interfaces': 0.09; 'odd':
0.09; 'received:ciao.gmane.io': 0.09; 'received:gmane.io': 0.09;
'received:list': 0.09; 'researcher': 0.09; 'skip:x 10': 0.09;
'subject:test': 0.09; 'way?': 0.09; 'looks': 0.11; 'arbitrary':
0.16; 'cat': 0.16; 'definitions': 0.16; 'directory.': 0.16;
'emulation': 0.16; 'executable': 0.16; 'extensions': 0.16;
'feature.': 0.16; 'filename': 0.16; 'hash': 0.16; 'installed.':
0.16; 'interpreter': 0.16; 'mainframe': 0.16; 'message-
id:@4ax.com': 0.16; 'received:116.202': 0.16;
'received:116.202.254': 0.16; 'received:116.202.254.214': 0.16;
'registry': 0.16; 'right.': 0.16; 'streams': 0.16; 'them?': 0.16;
'url-ip:104.123.105.77/32': 0.16; 'url-ip:104.123.105/24': 0.16;
'url:os': 0.16; 'url:win32': 0.16; 'writes': 0.16; 'python': 0.16;
'instead': 0.17; 'implement': 0.18; 'code.': 0.19; 'bug': 0.20;
'thu,': 0.20; 'install': 0.22; 'to:addr:python-list': 0.23;
'command': 0.24; 'url:wiki': 0.24; 'code': 0.24; 'written': 0.24;
'cannot': 0.24; 'binary': 0.27; 'clicked': 0.27; 'creating': 0.27;
"isn't": 0.29; '(and': 0.30; 'header:User-Agent:1': 0.31;
'header:Organization:1': 0.31; 'there': 0.31; 'packages': 0.31;
'but': 0.31; 'looked': 0.31; 'associate': 0.32; 'guess': 0.32;
'same,': 0.32; 'zero': 0.32; 'program': 0.33; 'using': 0.33;
'subject:for': 0.33; 'files': 0.33; 'same': 0.34; 'windows': 0.36;
'close': 0.36; 'able': 0.36; 'way': 0.37; "that's": 0.37; 'users':
0.37; 'really': 0.37; 'file': 0.38; 'those': 0.38; 'read': 0.38;
'something': 0.38; 'source': 0.38; 'does': 0.38; 'put': 0.39;
'reason': 0.40; 'package': 0.40; 'programs': 0.40; 'require':
0.40; 'skip:i 30': 0.60; 'skip:w 10': 0.61; 'hope': 0.61; 'skip:t
30': 0.61; 'skip:a 40': 0.63; 'url-ip:208.80.154/24': 0.63; 'url-
ip:208.80/16': 0.63; 'url:wikipedia': 0.63; 'types': 0.63; 'saw':
0.66; 'well': 0.66; 'wish': 0.66; 'skip:t 20': 0.67; 'listed':
0.67; 'skip:o 20': 0.67; 'integrating': 0.69; 'owned': 0.69;
'skip:/ 10': 0.69; 'skip:/ 30': 0.69; 'skip:x 40': 0.69;
'subject:some': 0.69; 'skip:e 20': 0.70; 'received:116': 0.71;
'url-ip:208/8': 0.71; 'content': 0.72; 'deal': 0.74; 'little':
0.75; 'features': 0.76; 'rights': 0.76; 'skip:k 20': 0.78; 'left':
0.79; 'inform': 0.79; '....': 0.81; '2021': 0.84; '(job': 0.84;
'(such': 0.84; '(that': 0.84; 'added.': 0.84; 'horrible': 0.84;
'os.': 0.84; 'referenced': 0.84; 'server)': 0.84; 'supervision':
0.84; 'type.': 0.84; 'url-ip:76/8': 0.84; 'url:windows': 0.84;
'written,': 0.84; 'deliberately': 0.91; 'wondered': 0.91; 'ibm':
0.95
X-Injected-Via-Gmane: http://gmane.org/
User-Agent: ForteAgent/8.00.32.1272
X-Mailman-Approved-At: Thu, 12 Aug 2021 18:02:40 -0400
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <29qahglb1bebs1fmcllvrejqh67mpth48e@4ax.com>
X-Mailman-Original-References: <CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
 by: Dennis Lee Bieber - Thu, 12 Aug 2021 19:56 UTC

On Thu, 12 Aug 2021 12:09:58 -0300, Hope Rouselle <hrouselle@jevedi.com>
declaimed the following:

>How is it possible that Microsoft would take part of the code of OS/2?
>Did IBM just hand it to them?
>

Because IBM subcontracted (IE: "paid") M$ to create an OS with XYZ
features for their latest PC (under supervision of IBM design team)..

https://en.wikipedia.org/wiki/OS/2

IBM owned the rights to OS/2, but it was written, for the most part, by
M$ in parallel with M$ own "Windows" 16-bit OS.

>
>Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
>sequence of bytes? Users decide what to put in them? So OS/2 was
>taking advantage of that to integrate it well with the system. Windows
>was doing the same, but integrating the system with files in odd ways
>--- such as a registry record to inform the system which programs open
>which files? (That does sound more messy.)
>

Not really -- Have you looked at what a hash Linux graphical interfaces
require to associate file types with how to open said files?

On my Debian (VirtualBox) there is:

wulfraed@debian:~$ cat ~/.config/mimeapps.list
[Added Associations]
text/html=firefox-esr.desktop;
text/plain=gvim.desktop;
x-scheme-handler/http=exo-web-browser.desktop
x-scheme-handler/https=exo-web-browser.desktop
x-scheme-handler/mailto=exo-mail-reader.desktop
application/xml=gvim.desktop;
text/x-scheme=gvim.desktop;
application/vnd.kde.kxmlguirc=gvim.desktop;
text/x-python=gvim.desktop;
application/x-shellscript=gvim.desktop;

[Default Applications]
wulfraed@debian:~$

.... and all these

wulfraed@debian:~$ ls /usr/share/applications
atril.desktop panel-desktop-handler.desktop
claws-mail.desktop panel-preferences.desktop
...
debian-uxterm.desktop python3.7.desktop

...
org.thonny.Thonny.desktop xsane.desktop
org.xfce.Parole.desktop
wulfraed@debian:~$

wulfraed@debian:~$ cat /usr/share/applications/python3.7.desktop
[Desktop Entry]
Name=Python (v3.7)
Comment=Python Interpreter (v3.7)
Exec=/usr/bin/python3.7
Icon=/usr/share/pixmaps/python3.7.xpm
Terminal=true
Type=Application
Categories=Development;
StartupNotify=true
NoDisplay=true
wulfraed@debian:~$

wulfraed@debian:~$ cat /etc/mime.types
###############################################################################
# # MIME media types and the extensions that represent them.
# # The format of this file is a media type on the left and zero or more
# filename extensions on the right. Programs using this file will map
# files ending with those extensions to the associated type.
# # This file is part of the "mime-support" package. Please report a bug
using
# the "reportbug" command of the "reportbug" package if you would like new
# types or extensions to be added.
# # The reason that all types are managed by the mime-support package
instead
# allowing individual packages to install types in much the same way as
they
# add entries in to the mailcap file is so these types can be referenced
by
# other programs (such as a web server) even if the specific support
package
# for that type is not installed.
# # Users can add their own types if they wish by creating a ".mime.types"
# file in their home directory. Definitions included there will take
# precedence over those listed here.
# ###############################################################################

application/activemessage
application/andrew-inset ez
application/annodex anx
application/applefile
application/atom+xml atom
...
application/x-python-code pyc pyo
...
text/x-python py
...

wulfraed@debian:~$ cat /usr/share/applications/gvim.desktop
[Desktop Entry]
Name=gVim
GenericName=Text Editor
...
TryExec=gvim
Exec=gvim -f %F
Terminal=false
Type=Application
Keywords=Text;editor;
Icon=gvim
Categories=Utility;TextEditor;Development;
StartupNotify=true
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;text/x-python;text/x-python3
wulfraed@debian:~$


ALL of that is needed to link a Python source code file (.py) to GVIM
editor, when clicked on from the desktop.

>UNIX's execve() is able to read the first line of an executable and
>invoke its interpreter. I guess OS/2 was doing precisely that in a
>different way?
>
No... the UNIX/Linux shebang (and binary file equivalent magic-number)
is a deliberately written part of a file's "data" content (granted, the
linker writes it for executable binaries).

The description for OS/2 is close to the little used Windows STREAMS
feature.
https://docs.microsoft.com/en-us/windows/win32/fileio/file-streams
https://docs.microsoft.com/en-us/windows/win32/fileio/using-streams

>
>I cannot imagine. I always wondered what REXX was about --- I saw
>programs sometimes written in some website whose name is something like
>Rosetta Code. REXX looked so weird. (``Who would program in that?'')

REXX was created by an IBM researcher who wanted something better than
mainframe JCL (Job Control Language).
https://en.wikipedia.org/wiki/Rexx

>Yeah, REXX looks horrible at first. But arbitrary-precision is
>definitely very attractive. I never liked to deal with floating-point.
>
Unfortunately, the most commonly available is Regina REXX, and to my
knowledge it did not implement the arbitrary precision feature. Softrware
emulation of multprecision floating point is slooooooooooooooooooowwww!

--
Wulfraed Dennis Lee Bieber AF6VN
wlfraed@ix.netcom.com http://wlfraed.microdiversity.freeddns.org/

Re: some problems for an introductory python test

<mailman.374.1628805761.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14582&group=comp.lang.python#14582

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: grant.b....@gmail.com (Grant Edwards)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 20:23:22 -0000 (UTC)
Lines: 16
Message-ID: <mailman.374.1628805761.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
<4c9de5d7-97ff-65b0-8669-8dc17f229fd0@mrabarnett.plus.com>
<sf3vvq$e83$1@ciao.gmane.io>
X-Trace: news.uni-berlin.de j03QUof1MkRmVsgoHauWQAZHqix4DtPPnA05EwAM4riA==
Return-Path: <python-python-list@m.gmane-mx.org>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.000
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'subject:python': 0.06;
'apparently': 0.09; 'fork': 0.09; 'fyi,': 0.09; 'macos': 0.09;
'message-id:@ciao.gmane.io': 0.09; 'received:ciao.gmane.io': 0.09;
'received:gmane.io': 0.09; 'received:list': 0.09; 'subject:test':
0.09; 'filesystems': 0.16; 'found,': 0.16;
'from:addr:grant.b.edwards': 0.16; 'from:name:grant edwards':
0.16; 'malware.': 0.16; 'ntfs': 0.16; 'received:116.202': 0.16;
'received:116.202.254': 0.16; 'received:116.202.254.214': 0.16;
'registry': 0.16; 'wrote:': 0.16; 'grant': 0.17; 'supported':
0.18; 'to:addr:python-list': 0.23; 'anything': 0.24; 'seems':
0.26; 'header:User-Agent:1': 0.31; 'subject:for': 0.33;
'from:addr:gmail.com': 0.35; 'windows': 0.36; 'use': 0.38; 'does':
0.38; 'put': 0.39; 'ever': 0.63; 'subject:some': 0.69;
'received:116': 0.71; 'interesting': 0.71; 'article': 0.74
X-Injected-Via-Gmane: http://gmane.org/
User-Agent: slrn/1.0.3 (Linux)
X-Mailman-Approved-At: Thu, 12 Aug 2021 18:02:40 -0400
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <sf3vvq$e83$1@ciao.gmane.io>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
<4c9de5d7-97ff-65b0-8669-8dc17f229fd0@mrabarnett.plus.com>
 by: Grant Edwards - Thu, 12 Aug 2021 20:23 UTC

On 2021-08-12, MRAB <python@mrabarnett.plus.com> wrote:
>
>> Windows never had filesystems that supported metadata like OS/2 and
>> MacOS did. The registry was an ugly hack that attempted (very poorly)
>> to make up for that lack of metadata.
>>
> FYI, NTFS does support Alternate Data Streams.

That is interesting -- and it was apparently intended to provide some
sort of compatibility with MacOS data fork and resource
fork. According to one article I found, nobody ever seems to have put
that NTFS feature to use for anything other than hiding malware.

--
Grant

Re: some problems for an introductory python test

<mailman.375.1628805762.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14583&group=comp.lang.python#14583

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: wlfr...@ix.netcom.com (Dennis Lee Bieber)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Thu, 12 Aug 2021 17:15:58 -0400
Organization: IISS Elusive Unicorn
Lines: 48
Message-ID: <mailman.375.1628805762.4164.python-list@python.org>
References: <mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<CAPTjJmrG=+3EHBr=18k5M4d+p2Evd3HW9mpb2CjnRu5C0KeG4Q@mail.gmail.com>
<t81bhghafa23n9f5e5lleuq0ajqm1kstjv@4ax.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de csutAFn2aR1GMtGbuBHnrwY3AqhdhvlRiDSdKx5hi9FQ==
Return-Path: <python-python-list@m.gmane-mx.org>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.010
X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; '(which': 0.04; 'stream':
0.04; 'fairly': 0.05; 'gui': 0.05; 'windows,': 0.05;
'subject:python': 0.06; 'queue': 0.07; 'angelico': 0.09; 'aug':
0.09; 'inject': 0.09; 'received:ciao.gmane.io': 0.09;
'received:gmane.io': 0.09; 'received:list': 0.09; 'subject:test':
0.09; 'though.': 0.09; 'message-id:@4ax.com': 0.16;
'received:116.202': 0.16; 'received:116.202.254': 0.16;
'received:116.202.254.214': 0.16; 'standards,': 0.16; 'that.':
0.16; 'supported': 0.18; 'fri,': 0.23; 'to:addr:python-list':
0.23; 'url:wiki': 0.24; 'written': 0.24; 'chris': 0.26; 'brought':
0.27; 'library': 0.27; 'old': 0.28; 'single': 0.28; 'input': 0.29;
'header:User-Agent:1': 0.31; 'header:Organization:1': 0.31; 'it,':
0.31; 'there': 0.31; 'but': 0.31; "i'm": 0.32; 'url-ip:91/8':
0.32; 'subject:for': 0.33; 'hold': 0.34; 'difficult': 0.35;
'display': 0.37; 'image': 0.37; 'people': 0.37; 'event': 0.38;
'something': 0.38; 'put': 0.39; 'programs': 0.40; 'could': 0.40;
'best': 0.61; 'entire': 0.61; 'lot': 0.62; 'down': 0.62; 'modern':
0.63; 'url:wikipedia': 0.63; 'worked': 0.63; "you'd": 0.63;
'ever': 0.63; 'pass': 0.64; 'back': 0.65; 'parts': 0.66; 'events':
0.67; 'choice': 0.68; '"we': 0.69; 'and,': 0.69; 'subject:some':
0.69; 'url-ip:213/8': 0.69; 'received:116': 0.71; 'easy': 0.75;
'2021': 0.84; 'down,': 0.84; 'further.': 0.84; 'handled': 0.84;
'url-ip:76/8': 0.84; 'era,': 0.91
X-Injected-Via-Gmane: http://gmane.org/
User-Agent: ForteAgent/8.00.32.1272
X-Mailman-Approved-At: Thu, 12 Aug 2021 18:02:40 -0400
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <t81bhghafa23n9f5e5lleuq0ajqm1kstjv@4ax.com>
X-Mailman-Original-References: <mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<CAPTjJmrG=+3EHBr=18k5M4d+p2Evd3HW9mpb2CjnRu5C0KeG4Q@mail.gmail.com>
 by: Dennis Lee Bieber - Thu, 12 Aug 2021 21:15 UTC

On Fri, 13 Aug 2021 04:41:42 +1000, Chris Angelico <rosuav@gmail.com>
declaimed the following:

>Yeah. It was a strange choice by today's standards, but back then,
>most of my GUI programs were written in REXX.
>
>https://en.wikipedia.org/wiki/VX-REXX
>http://www.edm2.com/0206/vrexx.html
>
There was a library for the Amiga ARexx that supported basic GUI
implementation too...
>And of COURSE nobody would ever take an old serial mouse, take the
>ball out of it, and turn it into a foot-controlled signal... although

Of course not -- you'd want an old joyboard for that <G>
https://en.wikipedia.org/wiki/Joyboard

>
>SysRq should theoretically be that. (That's Alt+PrtSc on a lot of
>keyboards.) I'm not sure how it could best be handled though. It might

While so marked, Windows, at least, interprets <alt><prt sc> as "grab
image of current Window", whereas <prt sc> is "grab image of entire
display".

>be that today's GUI systems (X11, Wayland, Cocoa, Win32, etc) just
>wouldn't work with a single input queue. Would be curious to see if
>any modern OS/GUI pair has a synchronous input queue like that.
>

Not "modern" in this era, but I'm fairly certain the Amiga used a
single stream queue. But that stream was fed to every application running,
leaving it up to the application to determine if the event was something it
had to handle, or pass on further. It was also fairly easy to inject events
into the stream (which could help finding some of the easter eggs in the OS
-- rather difficult to hold down <lshift>, <lamiga>, <ramiga>, <rshift>,
<f10> AND, while holding them down, eject and insert a floppy disk.
[without the floppy, <f1> to <f9> put up a credits display for the people
who had worked on parts of the OS... The <f10> floppy mess then brought up
a display with approximately "we created Amiga, CBM messed it up"])

--
Wulfraed Dennis Lee Bieber AF6VN
wlfraed@ix.netcom.com http://wlfraed.microdiversity.freeddns.org/

Re: some problems for an introductory python test

<mailman.376.1628812449.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14584&group=comp.lang.python#14584

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: cs...@cskk.id.au (Cameron Simpson)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Fri, 13 Aug 2021 09:42:20 +1000
Lines: 50
Message-ID: <mailman.376.1628812449.4164.python-list@python.org>
References: <86mtpob2q2.fsf@jevedi.com>
<YRWx3Om6uRBxH2qh@cskk.homeip.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Trace: news.uni-berlin.de Kx1yECtZv3Y4a4DdIhEh2g3QMrepLEc24yai67LtanlA==
Return-Path: <cameron@cskk.id.au>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.003
X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'this:': 0.03; 'string':
0.05; 'variable': 0.05; 'subject:python': 0.06; 'lets': 0.07;
'expression': 0.09; 'line:': 0.09; 'subject:test': 0.09; 'types.':
0.09; 'writes:': 0.09; 'cheers,': 0.10; '>>>>': 0.16; '>>>>>':
0.16; 'cameron': 0.16; 'from:addr:cs': 0.16;
'from:addr:cskk.id.au': 0.16; 'from:name:cameron simpson': 0.16;
'message-id:@cskk.homeip.net': 0.16; 'received:10.10': 0.16;
'received:l': 0.16; 'runtime': 0.16; 'simpson': 0.16; 'static':
0.16; 'wrote:': 0.16; 'says': 0.16; 'python': 0.16; 'returns':
0.23; 'to:addr:python-list': 0.23; 'run': 0.24; 'code': 0.24;
'header:User-Agent:1': 0.31; 'think': 0.31; 'but': 0.31; 'expect':
0.31; 'objects': 0.32; 'header:In-Reply-To:1': 0.33;
'subject:for': 0.33; 'hold': 0.34; '"if': 0.35; 'invalid': 0.35;
'yes,': 0.35; 'also,': 0.36; "that's": 0.37; 'mean': 0.37; "it's":
0.38; 'going': 0.38; 'does': 0.38; 'means': 0.40; 'valid': 0.40;
'reference': 0.61; 'hope': 0.61; 'remember': 0.61; "you'd": 0.63;
'header:Received:6': 0.63; 'received:userid': 0.64;
'subject:some': 0.69; 'took': 0.70; 'exposed': 0.77; 'see,': 0.77;
'catch': 0.84; 'programmes': 0.84; 'reflecting': 0.84; 'type.':
0.84; 'unused': 0.84; 'doing.': 0.91; 'mistakes': 0.91
X-RG-Spam: Unknown
X-RazorGate-Vade: gggruggvucftvghtrhhoucdtuddrgedvtddrkeeggddvhecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfupfevtfgpvffgnffuvffttedpqfgfvfenuceurghilhhouhhtmecugedttdenucenucfjughrpeffhffvuffkgggtuggjfghfsehttdertddtredvnecuhfhrohhmpeevrghmvghrohhnucfuihhmphhsohhnuceotghssegtshhkkhdrihgurdgruheqnecuggftrfgrthhtvghrnhepleevfeeghfeggfehuddvgfehhfffjeegvdeuiefhgeelgeekfeffiefguddtveehnecukfhppedurddugeehrdduvddtrdduuddvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehhvghlohepsghorhhgrdgtshhkkhdrhhhomhgvihhprdhnvghtpdhinhgvthepuddrudeghedruddvtddrudduvddpmhgrihhlfhhrohhmpeeotggrmhgvrhhonhestghskhhkrdhiugdrrghuqedprhgtphhtthhopeeotghssegtshhkkhdrihgurdgruheqpdhrtghpthhtohepoehphihthhhonhdqlhhishhtsehphihthhhonhdrohhrgheq
X-RazorGate-Vade-Verdict: clean 0
X-RazorGate-Vade-Classification: clean
X-RG-VS-CLASS: clean
Mail-Followup-To: python-list@python.org
Content-Disposition: inline
In-Reply-To: <86mtpob2q2.fsf@jevedi.com>
User-Agent: Mutt/2.0.3 (2020-12-04)
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <YRWx3Om6uRBxH2qh@cskk.homeip.net>
X-Mailman-Original-References: <86mtpob2q2.fsf@jevedi.com>
 by: Cameron Simpson - Thu, 12 Aug 2021 23:42 UTC

On 11Aug2021 09:11, Hope Rouselle <hrouselle@jevedi.com> wrote:
>Greg Ewing <greg.ewing@canterbury.ac.nz> writes:
>> That may not be doing what you think it's doing. Consider also
>>
>>>>> if0: print('yes!')
>> yes!
>
>So, yes, that's puzzling.
>
>>>> 0 == False
>True
>>>> if0: print("yes")
>yes
>>>> if(0): print("yes")
>
>>>>
>
>What's going on there?

1: "if0" does not mean "if 0"; "if0" is a valid identifier. Like "x0", "x1".

2: It took me a while to see, but this is a type annotiation.

This line:

if0: print('yes!')

says that the name "if0" should contain a value described by the return
value of the expression "print('yes!')". Like this:

label : str

says that we expect a string in the variable "label".

Remember that Python is strongly typed, but variables may reference
objects of any type. Type annotations are optional things reflecting
that in practice most variables are expected to reference specific
types. This lets is run static linters against programmes to catch
mistakes exposed by the type descriptions.

Also, type annotations have _no_ runtime effect. So if that expression
returns an invalid type description, nobody cares!

However, if you hand this code to a type aware linter such as mypy you
might get bitter complaints about nonsense. (Or, since print() returns
None, no complaint - it just means you expect this variable to hold the
value None. You'd get complaints about unused variables etc.)

Cheers,
Cameron Simpson <cs@cskk.id.au>

Re: some problems for an introductory python test

<mailman.377.1628814160.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14585&group=comp.lang.python#14585

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: cs...@cskk.id.au (Cameron Simpson)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Fri, 13 Aug 2021 10:12:12 +1000
Lines: 35
Message-ID: <mailman.377.1628814160.4164.python-list@python.org>
References: <868s16zol5.fsf@jevedi.com>
<YRW43GD5h3ObQPPH@cskk.homeip.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Trace: news.uni-berlin.de C6f1dnlbKB6cIj5zQPGEfQd8nmAL/O01GPgd+Qu1SGEg==
Return-Path: <cameron@cskk.id.au>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.000
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'gui': 0.05;
'subject:python': 0.06; 'else.': 0.07; 'linux': 0.07; 'linux,':
0.07; 'thing.': 0.07; 'angelico': 0.09; 'backend': 0.09;
'describe': 0.09; 'design?': 0.09; 'macos': 0.09; 'subject:test':
0.09; 'writes:': 0.09; 'cheers,': 0.10; 'arbitrary': 0.16;
'attributes': 0.16; 'cameron': 0.16; 'cpython': 0.16;
'filesystem': 0.16; 'from:addr:cs': 0.16; 'from:addr:cskk.id.au':
0.16; 'from:name:cameron simpson': 0.16; 'iirc': 0.16; 'message-
id:@cskk.homeip.net': 0.16; 'received:10.10': 0.16; 'received:l':
0.16; 'simpson': 0.16; 'them?': 0.16; 'url:os': 0.16; 'wrote:':
0.16; 'python': 0.16; 'instead': 0.17; 'api': 0.18; "i've": 0.22;
'to:addr:python-list': 0.23; 'run': 0.24; 'concept': 0.27;
"isn't": 0.29; 'this.': 0.29; 'header:User-Agent:1': 0.31; 'but':
0.31; "i'm": 0.32; 'attach': 0.32; 'header:In-Reply-To:1': 0.33;
'subject:for': 0.33; 'files': 0.33; 'track': 0.35; 'yes,': 0.35;
'also,': 0.36; 'etc': 0.37; 'way': 0.37; "that's": 0.37; 'users':
0.37; 'file': 0.38; 'word': 0.38; 'url-ip:151.101.36.223/32':
0.38; 'url-ip:151.101.36/24': 0.38; 'put': 0.39; 'example': 0.40;
'could': 0.40; 'branch': 0.40; 'common': 0.60; 'hope': 0.61;
'skip:o 10': 0.62; 'outside': 0.63; 'header:Received:6': 0.63;
'received:userid': 0.64; 'accessing': 0.65; 'type:': 0.65;
'subject:some': 0.69; 'deal': 0.74; 'little': 0.75; 'click': 0.82;
'(like': 0.84; 'hidden': 0.95
X-RG-Spam: Unknown
X-RazorGate-Vade: gggruggvucftvghtrhhoucdtuddrgedvtddrkeeggdefudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfupfevtfgpvffgnffuvffttedpqfgfvfenuceurghilhhouhhtmecugedttdenucenucfjughrpeffhffvuffkgggtuggjfghfsehttdertddtredvnecuhfhrohhmpeevrghmvghrohhnucfuihhmphhsohhnuceotghssegtshhkkhdrihgurdgruheqnecuggftrfgrthhtvghrnhepkeekjeeuudfhfeevieekfedtkeeugeegudfhvedtffelhfehtefhueejheeugfdvnecuffhomhgrihhnpehphihthhhonhdrohhrghenucfkphepuddrudeghedruddvtddrudduvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhephhgvlhhopegsohhrghdrtghskhhkrdhhohhmvghiphdrnhgvthdpihhnvghtpedurddugeehrdduvddtrdduuddvpdhmrghilhhfrhhomhepoegtrghmvghrohhnsegtshhkkhdrihgurdgruheqpdhrtghpthhtohepoegtshestghskhhkrdhiugdrrghuqedprhgtphhtthhopeeophihthhhohhnqdhlihhsthesphihthhhohhnrdhorhhgqe
X-RazorGate-Vade-Verdict: clean 0
X-RazorGate-Vade-Classification: clean
X-RG-VS-CLASS: clean
Mail-Followup-To: python-list@python.org
Content-Disposition: inline
In-Reply-To: <868s16zol5.fsf@jevedi.com>
User-Agent: Mutt/2.0.3 (2020-12-04)
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <YRW43GD5h3ObQPPH@cskk.homeip.net>
X-Mailman-Original-References: <868s16zol5.fsf@jevedi.com>
 by: Cameron Simpson - Fri, 13 Aug 2021 00:12 UTC

On 12Aug2021 12:09, Hope Rouselle <hrouselle@jevedi.com> wrote:
>Chris Angelico <rosuav@gmail.com> writes:
>> [...] Plus, it had this fancy
>> concept of "extended attributes"; on older systems (like MS-DOS's
>> "FAT" family), a file might be Read-Only, Hidden, a System file, or
>> needing to be Archived, and that was it - but on HPFS, you could
>> attach arbitrary data like "File type: DeScribe Word Processor" or
>> "Double click action: Run CASMake.cmd". This allowed the GUI to store
>> all kinds of information *on the file itself* instead of needing
>> hidden files (or, in Windows' case, the registry) to track that kind
>> of thing.
>
>Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
>sequence of bytes? Users decide what to put in them?

Yes, but extended attributes are outside the file data. They're very
common on UNIX platforms these days. You can label arbitrary files with
a file type or whatever else. (There are platform specific limitations,
and even the OS API to deal with them is platform specific - Linux is
different to FreeBSD is different to MacOS.)

Also, Python has support for accessing these off-to-the-side data:

https://docs.python.org/3/library/os.html#linux-extended-attributes

Labelled "Linux" but also available for FreeBSD and IIRC OpenBSD. You do
of course need filesystem support - FAT32 for example would not work
with this - the filesystem needs a way to store these things. But ext4
and XFS on Linux, HFS+ on MacOS etc all support this.

I've even got a CPython branch where I'm implementing the MacOS backend
for these calls, a little stalled.

Cheers,
Cameron Simpson <cs@cskk.id.au>

Re: some problems for an introductory python test

<inlvujFg3imU1@mid.individual.net>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14586&group=comp.lang.python#14586

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: greg.ew...@canterbury.ac.nz (Greg Ewing)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Fri, 13 Aug 2021 13:24:34 +1200
Lines: 17
Message-ID: <inlvujFg3imU1@mid.individual.net>
References: <86mtpob2q2.fsf@jevedi.com> <YRWx3Om6uRBxH2qh@cskk.homeip.net>
<mailman.376.1628812449.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net KMpiK8KH5eOA6NMLzd7Q9gr9JCzZNGJ43kLU5JZVotaiyDc4HD
Cancel-Lock: sha1:vuUY1sPTQ0UaRz9DyCy2oFPvPPI=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:78.0)
Gecko/20100101 Thunderbird/78.4.0
In-Reply-To: <mailman.376.1628812449.4164.python-list@python.org>
Content-Language: en-US
 by: Greg Ewing - Fri, 13 Aug 2021 01:24 UTC

On 13/08/21 11:42 am, Cameron Simpson wrote:
> 2: It took me a while to see, but this is a type annotiation.

Interestingly, it seems to be parsed as a form of assignment with
a missing RHS.

>>> from ast import parse, dump
>>> dump(parse("if0: print('yes!')"))
"Module(body=[AnnAssign(target=Name(id='if0', ctx=Store()),
annotation=Call(func=Name(id='print', ctx=Load()),
args=[Constant(value='yes!', kind=None)], keywords=[]), value=None,
simple=1)], type_ignores=[])"

"An annotated assignment without the assignment? Eeuurgh!"

--
Greg

Re: some problems for an introductory python test

<inm05kFg4rtU1@mid.individual.net>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14587&group=comp.lang.python#14587

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: greg.ew...@canterbury.ac.nz (Greg Ewing)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Fri, 13 Aug 2021 13:28:18 +1200
Lines: 11
Message-ID: <inm05kFg4rtU1@mid.individual.net>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
<mailman.370.1628794928.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net eaiD8sH9CRY/nC5ExIe2WwLC+jVX+nDLAbN3HNc1ynd/dkIEBP
Cancel-Lock: sha1:VUnvH4u/Wj5O5gR4wgFHB7tnWB0=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:78.0)
Gecko/20100101 Thunderbird/78.4.0
In-Reply-To: <mailman.370.1628794928.4164.python-list@python.org>
Content-Language: en-US
 by: Greg Ewing - Fri, 13 Aug 2021 01:28 UTC

On 13/08/21 5:52 am, Grant Edwards wrote:
> I think what he's talking about is allowing the user to attach
> arbitrary _metadata_ to the file ... IOW, something similar to the > "resource fork" that MacOS used to have.

The resource fork was used for more than just metadata, it was
often the entire contents of the file. Applications had all the
code in there, for example -- the data fork of an application
was usually empty.

--
Greg

Re: some problems for an introductory python test

<86o89zz9ch.fsf@jevedi.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14608&group=comp.lang.python#14608

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!aioe.org!6pxKGP6NrOMpONel/EKaCA.user.46.165.242.75.POSTED!not-for-mail
From: hrouse...@jevedi.com (Hope Rouselle)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Sun, 15 Aug 2021 00:15:58 -0300
Organization: Aioe.org NNTP Server
Message-ID: <86o89zz9ch.fsf@jevedi.com>
References: <c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<k5k8hgt6apk88p4pat8m25t67rgbaqhkkc@4ax.com>
<mailman.356.1628724134.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: gioia.aioe.org; logging-data="8375"; posting-host="6pxKGP6NrOMpONel/EKaCA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:wMON1qVFI+tCF0XgCKZjjkiRluQ=
 by: Hope Rouselle - Sun, 15 Aug 2021 03:15 UTC

Dennis Lee Bieber <wlfraed@ix.netcom.com> writes:

> On Thu, 12 Aug 2021 06:15:28 +1000, Chris Angelico <rosuav@gmail.com>
> declaimed the following:
>
>>The default command interpreter and shell on OS/2 was fairly primitive
>>by today's standards, and was highly compatible with the MS-DOS one,
>>but it also had the ability to run REXX scripts. REXX was *way* ahead
>>of its time. It's a shell language but remarkably well suited to
>>building GUIs and other tools (seriously, can you imagine designing a
>>GUI entirely in a bash script??). It had features that we'd consider
>>fairly normal or even primitive by Python's standards, but back then,
>>Python was extremely new and didn't really have very much mindshare.
>>REXX offered arbitrary-precision arithmetic, good databasing support,
>>a solid C API that made it easy to extend, integrations with a variety
>>of other systems... this was good stuff for its day. (REXX is still
>>around, but these days, I'd rather use Python.)
>>
> I was spoiled by the Amiga variant of REXX. Most current
> implementations (well, Regina is the only one I've looked at) can just pass
> command to the default shell. The Amiga version took advantage of Intuition
> Message Ports (OS supported IPC). That allowed it to "address
> <application>" any application that defined an ARexx port, allowing ARexx
> to be used as a scripting language for that application (and with multiple
> applications, one could easily fetch data from app1 and feed it to app2).
> ARexx did not, to my memory, implement arbitrary precision math.
>
> Any statement in a REXX script that was not parsable as REXX would be
> passed on the currently "addressed" command host.
>
> Granted, the fact that the Amiga used a shared common address space for
> all running applications made IPC quite easy -- one looked up the
> application message port, then added a small packet to the linked list
> associated with the port. That small packet basically held the address of
> the message port for returning data, and the address of the data being
> passed. The closet thing I've seen to that capability on systems with
> process-isolated virtual memory is (Open)VMS "mailbox" structures. The
> difference being that the entire data had to be written (QIO) to the
> mailbox, and the receiver had to read (another QIO call) the message --
> this allowed the address space to change.
>
> I've not seen anything equivalent in my light perusal of the Win32 API
> (the various guide books aren't layed out in any way to be a reference),
> and Linux seems to use UNIX sockets for IPC... No way to search for a
> connection point by name...

I don't know anything about Amiga, REXX et cetera, so I might be totall
off here. But since you spoke of your perusal of the Win32 API, let me
add a tiny bit. I gave myself a quick tour through the Win32 API using
Pavel Yosifovich's book ``Windows 10 System Programming''. It's a two
volume work. The thing that impressed me the most was the many ways to
do the IPC. The purpose the work is clearly to show what is available
and it it probably does the job well. (I ignored Windows for most of my
life and now I decided to take a look at it. I don't feel it has much
of the elegance of UNIX. It's what it is.)

Re: some problems for an introductory python test

<865yw7z8f8.fsf@jevedi.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14609&group=comp.lang.python#14609

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!aioe.org!6pxKGP6NrOMpONel/EKaCA.user.46.165.242.75.POSTED!not-for-mail
From: hrouse...@jevedi.com (Hope Rouselle)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Sun, 15 Aug 2021 00:35:55 -0300
Organization: Aioe.org NNTP Server
Message-ID: <865yw7z8f8.fsf@jevedi.com>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo>
<CAPTjJmqA1=LR94juniaMRC=Vi=u0h_Sbneqf0qn1wqgELMRwgw@mail.gmail.com>
<mailman.343.1628622186.4164.python-list@python.org>
<86czqkb1z9.fsf@jevedi.com>
<oal8hg5jn9j196d6tttpieq09nmvgad9sj@4ax.com>
<mailman.357.1628724135.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: gioia.aioe.org; logging-data="18480"; posting-host="6pxKGP6NrOMpONel/EKaCA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:DxTbwzcJIMECPa34xZ728Zll0eU=
 by: Hope Rouselle - Sun, 15 Aug 2021 03:35 UTC

Dennis Lee Bieber <wlfraed@ix.netcom.com> writes:

> On Wed, 11 Aug 2021 09:27:38 -0300, Hope Rouselle <hrouselle@jevedi.com>
> declaimed the following:
>>
>>I wouldn't. This is all Python-stuff. The course chooses a language
>>like Python, but it is not trying to teach Python --- it is trying to
>>teach computer programming, that is, strategies in high-precision.
>
> Then I would posit you are teaching the wrong level... What you
> describe is what would be found a "data structures" and/or "algorithms"
> course -- which is a second year, if not third year course in my (ancient)
> history. [...] Slicing with a stride isn't really useful to most
> algorithm development -- it's more of trick in normal Python.

I didn't express myself very well. And it's hard to make sense of the
course. I say it's interested in teaching computer programming because
it is not allowing the students to dive into the Python language. It's
very restrictive. Students will finish the course after learning to use
the loop contructs while and for. The course calls them ``structures
for repetition''. I think it's safe to say that the course is designed
by people concerned with education, but not well-versed in programming
languages, so not even the terminology seems quite correct.

So if they're not letting students embrace the whole of the language,
they must be concerned with other things? They sloppily emphasize
documentation and put in some concerns for procedure signatures. I have
some trouble defending it. I see the good intentions, though, and the
job is not easy.

But this course is definitely not teaching any data structures or any
algorithms. Zero. Students are using tuples, lists and dictionaries,
strings and numbers, but they're not studying any strategies whatsoever.
The exercises make students use a few basic facts of mathematics, but
there is pretty much no investigation into the strategies behind some of
these facts. It's not very intelligible.

I *kinda* like that it's restrictive because it allows us to show
students at least a few idioms: otherwise there's so much syntax to
digest that there is no time to show a few useful applications of them.
But then I read your next paragraph and it brings me to a very important
point, which I think it's at the back of your mind too. Let's see.

> So... The first thing I would drop is the RESTRICTION to only use what
> you've covered in prior sessions... Let the students read the language
> reference manual, peruse the library reference manual, and allow them to
> use whatever "advanced" techniques they are able to understand on their
> own.

Precisely. We kill the spirit of investigation by saying --- don't do
anything I don't allow you to. This is pretty dangerous. I have a much
better idea, I think.

You have to give people a tool and say --- use however you want. If we
don't want them to use things not introduced in previous lessons, we
should give them a precisely-limited tool. But that's not done.

The much better idea is to use such a limited language. There are such
languages, made precisely for teaching. It comes with very little
syntax and lesson after lesson it gets immensely powerful with very
little syntax.

> Granted you may have to restrict some features if [...]

To let students use the entire language feels a bit weird in the sense
that the group goes in so many different directions. It definitely put
teachers in a position they have to be --- I don't know the answer. It
is not my case. But I do think that holding a class with wildly
different backgrounds, each going about in their own weird ways is kinda
odd. It doesn't seem to bring people together --- on average.

The better-idea brings people together by leveling everyone out.
Unpopular languages give us this feature. Students hardly ever master
them. It's a game nobody played. The rules are very simple. The
implications are far-fetching. Sometimes even the programmer-expert in
class realizes he is less skilled than the total-novice that never
handled a compiler: his tricks don't work in the new game. (It's not
that we don't allow him to use them. They're not there. They don't
compile.) (We take Ghess players, Backgammon and Checkers players [the
students], we teach them a new game, say, Go, and suddenly everyone is
learning together. Assume Go is unpopular. It's very simple. Everyone
learns the rules quickly and we spend the semester looking into
strategies. Much better idea.)

> For my Algorithm/Data Structure course (circa 1978), the instructor
> allowed us to use any language /he/ could understand (so no SNOBOL). At the
> time I'd gone through intro/advanced FORTRAN-4, intro/advanced COBOL, Sigma
> Assembly, UCSD Pascal (not on the campus main computer, just a pair of
> LSI-11s), and BASIC. The assignment was a "Hashed Head, Multiply-Linked
> List". I chose to do that assignment using BASIC! In nearly 45 years, I've
> only seen ONE real-world implementation of the HHMLL -- The file system
> used by the Commodore Amiga. (Hash the first component of the path/name,
> that maps to one of 64 entries in the root directory block; each entry
> points the start of a linked list, follow the list until you reach the
> block with the component name; if it is a directory block, hash the next
> component and repeat; if it is a file block, the "entries" point to data
> blocks instead of lists)

Repeating my criticism with one more illustration. When ``there's
always more than one way to do it'', students can't even count on their
classmates to help each other --- because each one is doing a different
thing. This is good in science, but what I like the most in schooling
is working together and too much freedom like seems not very helpful in
this direction.

But both worlds is possible. Use a limited tool (which is not
computationally limited, quite the contrary) and tell them --- you can
do anything you want with this. The effect is that everyone, although
everyone is more or less original, the different solutions are never too
far apart, so all the exchange is quite possible.

Re: some problems for an introductory python test

<86r1evxtnp.fsf@jevedi.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14610&group=comp.lang.python#14610

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!aioe.org!6pxKGP6NrOMpONel/EKaCA.user.46.165.242.75.POSTED!not-for-mail
From: hrouse...@jevedi.com (Hope Rouselle)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Sun, 15 Aug 2021 00:40:10 -0300
Organization: Aioe.org NNTP Server
Message-ID: <86r1evxtnp.fsf@jevedi.com>
References: <c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<k5k8hgt6apk88p4pat8m25t67rgbaqhkkc@4ax.com>
<CAPTjJmpAzJFCUrdDMtzR8SEC9e67cE8fpuP8JRP51bUGvn6b7Q@mail.gmail.com>
<mailman.358.1628724842.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: gioia.aioe.org; logging-data="20772"; posting-host="6pxKGP6NrOMpONel/EKaCA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:tAkq3/XxpoQ8VivP/n1DJQMvm0A=
 by: Hope Rouselle - Sun, 15 Aug 2021 03:40 UTC

Chris Angelico <rosuav@gmail.com> writes:

> On Thu, Aug 12, 2021 at 9:23 AM Dennis Lee Bieber <wlfraed@ix.netcom.com> wrote:

[...]

>> I was spoiled by the Amiga variant of REXX. Most current
>> implementations (well, Regina is the only one I've looked at) can just pass
>> command to the default shell. The Amiga version took advantage of Intuition
>> Message Ports (OS supported IPC). That allowed it to "address
>> <application>" any application that defined an ARexx port, allowing ARexx
>> to be used as a scripting language for that application (and with multiple
>> applications, one could easily fetch data from app1 and feed it to app2).
>> ARexx did not, to my memory, implement arbitrary precision math.
>
> The same functionality was available in OS/2, but not heavily used.
> You could 'address cmd commandname' to force something to be
> interpreted as a shell command, but that was about it. However, I
> built a MUD that used REXX as its scripting language, and the default
> destination was sending text back to the person who sent the command;
> and you could, of course, still 'address cmd' to run a shell command.
>
>> I've not seen anything equivalent in my light perusal of the Win32 API
>> (the various guide books aren't layed out in any way to be a reference),
>> and Linux seems to use UNIX sockets for IPC... No way to search for a
>> connection point by name...
>
> Win32 doesn't really have it. Unix sockets are kinda there but you
> identify something by a path to the socket, not the name of the
> application. But I think dbus is probably the closest to what you're
> thinking of.

Win32 offers some APIs that sound like it could be what you guys are
talking about here that I'm not too clear what it is. There are some
shared memory you can reference by name, so it's as easy to use: both
applications invoke a procedure with a string-argument and exchange
information that way. (And Win32 does support named pipes as well.) I
mean I'm sure you know it all better than I do. (Perhaps I'm too
clueless here.) I could look up the Win32 APIs I'm thinking of if that
would clarify things.

Re: some problems for an introductory python test

<86sfzbwdyl.fsf@jevedi.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14611&group=comp.lang.python#14611

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!aioe.org!6pxKGP6NrOMpONel/EKaCA.user.46.165.242.75.POSTED!not-for-mail
From: hrouse...@jevedi.com (Hope Rouselle)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Sun, 15 Aug 2021 01:04:34 -0300
Organization: Aioe.org NNTP Server
Message-ID: <86sfzbwdyl.fsf@jevedi.com>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<CAPTjJmrG=+3EHBr=18k5M4d+p2Evd3HW9mpb2CjnRu5C0KeG4Q@mail.gmail.com>
<mailman.369.1628793716.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: gioia.aioe.org; logging-data="32916"; posting-host="6pxKGP6NrOMpONel/EKaCA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
Cancel-Lock: sha1:Djavs6YRSaTHoI6aKwAMMBPlY0s=
X-Notice: Filtered by postfilter v. 0.9.2
 by: Hope Rouselle - Sun, 15 Aug 2021 04:04 UTC

Chris Angelico <rosuav@gmail.com> writes:

> On Fri, Aug 13, 2021 at 2:15 AM Hope Rouselle <hrouselle@jevedi.com> wrote:
>>
>> Chris Angelico <rosuav@gmail.com> writes:
>>
>> > History lesson!
>> >
>> > Once upon a time, IBM and Microsoft looked at what Intel was
>> > producing, and went, hey, we need to design an operating system that
>> > can take advantage of the fancy features of this 80286 thing. So they
>> > collaborate on this plan to make a 16-bit protected mode OS.
>> > Unfortunately, things didn't work out too well, partly because this
>> > was when Microsoft was at its most monopolistic, and they ended up
>> > parting company. IBM continued to make OS/2, but Microsoft took their
>> > part of the code and made Windows NT out of it.
>>
>> How is it possible that Microsoft would take part of the code of OS/2?
>> Did IBM just hand it to them?
>
> I presume both companies had all of the code. It was a matter of
> licensing, though. There were a few components that were saddled with
> awkward restrictions due to the dual ownership (for instance, HPFS386
> was Microsoft-controlled, but vanilla HPFS was fine - kinda like the
> difference between LZW and LZ77).
>
>> > (Aside: Windows NT's 16-bit applications and OS/2's 16-bit
>> > applications were actually identical and compatible. Unfortunately,
>> > Win32 introduced a very new API, so as soon as everyone moved to
>> > 32-bit everything, the schism became problematic. But it was actually
>> > possible to package up a single .EXE file with a 16-bit MS-DOS loader,
>> > a Win32 loader, and an OS/2 32-bit loader, all happily coexisting.
>>
>> Beautiful. :-) So if all libraries were around in each system, they had
>> perfect compatibility?
>
> The 16-bit loaders were fine, but the 32-bit loaders were different,
> so this trick basically meant having three different copies of the
> code wrapped up in a single executable.
>
>> > Plus, it had this fancy
>> > concept of "extended attributes"; on older systems (like MS-DOS's
>> > "FAT" family), a file might be Read-Only, Hidden, a System file, or
>> > needing to be Archived, and that was it - but on HPFS, you could
>> > attach arbitrary data like "File type: DeScribe Word Processor" or
>> > "Double click action: Run CASMake.cmd". This allowed the GUI to store
>> > all kinds of information *on the file itself* instead of needing
>> > hidden files (or, in Windows' case, the registry) to track that kind
>> > of thing.
>>
>> Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
>> sequence of bytes? Users decide what to put in them? So OS/2 was
>> taking advantage of that to integrate it well with the system. Windows
>> was doing the same, but integrating the system with files in odd ways
>> --- such as a registry record to inform the system which programs open
>> which files? (That does sound more messy.)
>
> Something like that, but with a lot more metadata. Modern OSes don't
> seem to work that way any more.
>
>> UNIX's execve() is able to read the first line of an executable and
>> invoke its interpreter. I guess OS/2 was doing precisely that in a
>> different way?
>
> Kinda, but instead of having the choice of interpreter be inside the
> file contents itself, the choice was in the file's metadata. Still
> part of the file, but if you open and read the file, it isn't any
> different.

Speaking of which, NTFS supports something called file streams. That's
essentially a way to have files inside files. Streams are not shown by
tools such as file explorer. Applications could definitely use that as
metadata. (End of tangent.)

I think UNIX people would say and I'd agree --- we have that already.
But instead of hiding the stream, which is obscurantism, we let the user
see. (Just create two files in a directory, one with the extension
..metadata. And, oh, if you don't like that extension, you can change it
to whatever you like. Lol.) I like that.

>> > The default command interpreter and shell on OS/2 was fairly primitive
>> > by today's standards, and was highly compatible with the MS-DOS one,
>> > but it also had the ability to run REXX scripts. REXX was *way* ahead
>> > of its time. It's a shell language but remarkably well suited to
>> > building GUIs and other tools (seriously, can you imagine designing a
>> > GUI entirely in a bash script??).
>>
>> I cannot imagine. I always wondered what REXX was about --- I saw
>> programs sometimes written in some website whose name is something like
>> Rosetta Code. REXX looked so weird. (``Who would program in that?'')
>> But I see now there is a context to it.
>
> Yeah. It was a strange choice by today's standards, but back then,
> most of my GUI programs were written in REXX.
>
> https://en.wikipedia.org/wiki/VX-REXX
> http://www.edm2.com/0206/vrexx.html
>
> (There were other tools too - VisPro REXX, VREXX, DrDialog, and
> various others - but VX-REXX was where most of my dev work happened.)

I like that kind of simpler GUI interface. Cleaner. Fast! You know,
the so-called ``modern world'' is totally overrated.

>> > Probably the most
>> > notable feature, by today's standards, was that it had a single input
>> > queue. ... This means that, if the response to a
>> > keystroke is to change focus, then *even in a slow and lagged out
>> > system*, subsequent keys WOULD be sent to the new target window. That
>> > was AWESOME, and I really miss it. Except that I also don't. Because
>> > if a single application is having issues, now your entire keyboard and
>> > mouse is locked up... which kinda slightly sucks. Good luck resolving
>> > that problem. (We had some neat tools like WatchCat that could get
>> > around the single input queue via interrupt signals, and regain
>> > control. But it was still problematic.)
>>
>> Wow, I kinda feel the same as you here. I think this justifies perhaps
>> using a hardware solution. (Crazy idea?! Lol.)
>
> uhhh........ Yes. Very crazy idea. Can't imagine why anyone would ever
> think about doing that.

Lol. Really? I mean a certain panic button. You know the GNU Emacs.
It has this queue with the implications you mentioned --- as much as it
can. (It must of course get the messages from the system, otherwise it
can't do anything about it.) And it has the panic button C-g. The
keyboard has one the highest precedences in hardware interrupts, doesn't
it not? A certain very important system could have a panic button that
invokes a certain debugger, say, for a crisis-moment.

But then this could be a lousy engineering strategy. I am not an expert
at all in any of this. But I'm surprised with your quick dismissal. :-)

> Certainly nobody in his right mind would have WatchCat listening on
> the serial port's Ring Indicator interrupt, and then grab a paperclip
> to bridge the DTR and RI pins on an otherwise-unoccupied serial port
> on the back of the PC. (The DTR pin was kept high by the PC, and could
> therefore be used as an open power pin to bring the RI high.)

Why not? Misuse of hardware? Too precious of a resource?

> If you're curious, it's pins 4 and 9 - diagonally up and in from the
> short
> corner. http://www.usconverters.com/index.php?main_page=page&id=61&chapter=0

You know your pins! That's impressive. I thought the OS itself could
use something like that. The fact that they never do... Says something,
doesn't it? But it's not too obvious to me.

> And of COURSE nobody would ever take an old serial mouse, take the
> ball out of it, and turn it into a foot-controlled signal... although
> that wasn't for WatchCat, that was for clipboard management between my
> app and a Windows accounting package that we used. But that's a
> separate story.

Lol. I feel you're saying you would. :-)

>> Maybe machine and OS
>> could have a desktop-version that would have a hardware that could
>> effectively be like a second keyboard --- a button. So our keywords
>> would have a button that we press it, we could interrupt the OS to
>> handle such lock-up more gracefully. I suppose this is expensive,
>> complex and so on. But at the same time, it could be worth it.
>
> SysRq should theoretically be that. (That's Alt+PrtSc on a lot of
> keyboards.) I'm not sure how it could best be handled though. It might
> be that today's GUI systems (X11, Wayland, Cocoa, Win32, etc) just
> wouldn't work with a single input queue. Would be curious to see if
> any modern OS/GUI pair has a synchronous input queue like that.


Click here to read the complete article
Re: some problems for an introductory python test

<868s13wdpa.fsf@jevedi.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14612&group=comp.lang.python#14612

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!aioe.org!6pxKGP6NrOMpONel/EKaCA.user.46.165.242.75.POSTED!not-for-mail
From: hrouse...@jevedi.com (Hope Rouselle)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Sun, 15 Aug 2021 01:10:09 -0300
Organization: Aioe.org NNTP Server
Message-ID: <868s13wdpa.fsf@jevedi.com>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com> <sf3n5a$10sk$1@ciao.gmane.io>
<mailman.370.1628794928.4164.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="36101"; posting-host="6pxKGP6NrOMpONel/EKaCA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:5DYNbH+Adu+erKRPMBA5wDWYtVc=
 by: Hope Rouselle - Sun, 15 Aug 2021 04:10 UTC

Grant Edwards <grant.b.edwards@gmail.com> writes:

> On 2021-08-12, Hope Rouselle <hrouselle@jevedi.com> wrote:
>
>>> OS/2 had all kinds of amazing features (for its time). [...] Plus,
>>> it had this fancy concept of "extended attributes"; on older
>>> systems (like MS-DOS's "FAT" family), a file might be Read-Only,
>>> Hidden, a System file, or needing to be Archived, and that was it -
>>> but on HPFS, you could attach arbitrary data like "File type:
>>> DeScribe Word Processor" or "Double click action: Run
>>> CASMake.cmd". This allowed the GUI to store all kinds of
>>> information *on the file itself* instead of needing hidden files
>>> (or, in Windows' case, the registry) to track that kind of thing.
>>
>> Yeah, that's kinda nice. Isn't that a UNIX design? A file is a
>> sequence of bytes? Users decide what to put in them?
>
> I think what he's talking about is allowing the user to attach
> arbitrary _metadata_ to the file -- metadata that exists separately
> and independently from the normal data that's just a "sequence of
> bytes". IOW, something similar to the "resource fork" that MacOS used
> to have. https://en.wikipedia.org/wiki/Resource_fork

Got ya.

>> So OS/2 was taking advantage of that to integrate it well with the
>> system. Windows was doing the same, but integrating the system with
>> files in odd ways --- such as a registry record to inform the system
>> which programs open which files? (That does sound more messy.)
>
> Windows never had filesystems that supported metadata like OS/2 and
> MacOS did. The registry was an ugly hack that attempted (very poorly)
> to make up for that lack of metadata.

Take a look at NTFS streams. Maybe you would consider that as a way to
store metadata in Windows. Pavel Yosifovich talks about them briefly in
chapter 11, page 555, part 1. Windows 10 System Programming. Here's
the first paragraph:

--8<---------------cut here---------------start------------->8---
The NTFS filesystem supports /file streams/, which are essentially files
within a file. Normally, we use the default data stream, but others can
be created and used. These are essentially hidden from normal view and
don’t show up in standard tools such as Windows Explorer.
--8<---------------cut here---------------end--------------->8---

Pavel Yosifovich wrote a tool to let us see these streams:

https://github.com/zodiacon/NtfsStreams

>> UNIX's execve() is able to read the first line of an executable and
>> invoke its interpreter. I guess OS/2 was doing precisely that in a
>> different way?
>
> No, that's not at all the same thing. The #! line is part of the
> normal file data. It's part of the 'sequence of bytes'. Metadata
> maintained by Unix filesystems comprises a very limited and
> pre-defined set of attributes present in the inode.

Well said.

Re: some problems for an introductory python test

<86v946voa3.fsf@jevedi.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14617&group=comp.lang.python#14617

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!aioe.org!KKf+BaHWz+foBl8GNq0BiQ.user.46.165.242.75.POSTED!not-for-mail
From: hrouse...@jevedi.com (Hope Rouselle)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Sun, 15 Aug 2021 10:19:16 -0300
Organization: Aioe.org NNTP Server
Message-ID: <86v946voa3.fsf@jevedi.com>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<mailman.338.1628547469.4164.python-list@python.org>
<86sfzha1ac.fsf@jevedi.xotimo>
<CAPTjJmqA1=LR94juniaMRC=Vi=u0h_Sbneqf0qn1wqgELMRwgw@mail.gmail.com>
<mailman.343.1628622186.4164.python-list@python.org>
<86czqkb1z9.fsf@jevedi.com>
<oal8hg5jn9j196d6tttpieq09nmvgad9sj@4ax.com>
<mailman.357.1628724135.4164.python-list@python.org>
<865yw7z8f8.fsf@jevedi.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: gioia.aioe.org; logging-data="28196"; posting-host="KKf+BaHWz+foBl8GNq0BiQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
Cancel-Lock: sha1:xo40E9emPqoDzci5FDESHzYA1XU=
X-Notice: Filtered by postfilter v. 0.9.2
 by: Hope Rouselle - Sun, 15 Aug 2021 13:19 UTC

Hope Rouselle <hrouselle@jevedi.com> writes:

[...]

>> Granted you may have to restrict some features if [...]
>
> To let students use the entire language feels a bit weird in the sense
> that the group goes in so many different directions. It definitely put
> teachers in a position they have to be --- I don't know the answer.
^^^^^^^^^^
Sorry. I meant ``they [hate] to be [in] --- I don't know the answer.''

And, alas, I also find many more typos, grammar and cosmetic
incoherences below, which I fix with brackets. (Not that they were
needed. Only this bit above seemed to lose the meaning of the author,
Your Truly.)

> It is not my case. But I do think that holding a class with wildly
> different backgrounds, each going about in their own weird ways[,] is
> kinda odd. It doesn't seem to bring people together --- on average.
>
> The better-idea brings people together by leveling everyone out.
> Unpopular languages give us this feature. Students hardly ever master
> them. It's a game nobody played. The rules are very simple. The
> implications are far-fetching. Sometimes even the programmer-expert in
> class realizes he is less skilled than the total-novice that never
> handled a compiler: his tricks don't work in the new game. (It's not
> that we don't allow him to use them. They're not there. They don't
> compile.) (We take [Chess] players, Backgammon and Checkers players [the
> students], we teach them a new game, say, Go, and suddenly everyone is
> learning together. Assume Go is unpopular. It's very simple. Everyone
> learns the rules quickly and we spend the semester looking into
> strategies. Much better idea.)
>
>> For my Algorithm/Data Structure course (circa 1978), the instructor
>> allowed us to use any language /he/ could understand (so no SNOBOL). At the
>> time I'd gone through intro/advanced FORTRAN-4, intro/advanced COBOL, Sigma
>> Assembly, UCSD Pascal (not on the campus main computer, just a pair of
>> LSI-11s), and BASIC. The assignment was a "Hashed Head, Multiply-Linked
>> List". I chose to do that assignment using BASIC! In nearly 45 years, I've
>> only seen ONE real-world implementation of the HHMLL -- The file system
>> used by the Commodore Amiga. (Hash the first component of the path/name,
>> that maps to one of 64 entries in the root directory block; each entry
>> points the start of a linked list, follow the list until you reach the
>> block with the component name; if it is a directory block, hash the next
>> component and repeat; if it is a file block, the "entries" point to data
>> blocks instead of lists)
>
> Repeating my criticism with one more illustration. When ``there's
> always more than one way to do it'', students can't even count on their
> classmates to help each other --- because each one is doing a different
> thing. This is good in science, but what I like the most in schooling
> is working together and too much freedom like seems not very helpful in
> this direction.
>
> But both worlds [are] possible. Use a limited tool (which is not
> computationally limited, quite the contrary) and tell them --- you can
> do anything you want with this. [...] [Although] everyone is more or
> less original, the different solutions are never too far apart, so all
> the exchange is quite possible.

Re: some problems for an introductory python test

<mailman.400.1629141677.4164.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14629&group=comp.lang.python#14629

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: ros...@gmail.com (Chris Angelico)
Newsgroups: comp.lang.python
Subject: Re: some problems for an introductory python test
Date: Tue, 17 Aug 2021 05:21:03 +1000
Lines: 70
Message-ID: <mailman.400.1629141677.4164.python-list@python.org>
References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<CAPTjJmrG=+3EHBr=18k5M4d+p2Evd3HW9mpb2CjnRu5C0KeG4Q@mail.gmail.com>
<mailman.369.1628793716.4164.python-list@python.org>
<86sfzbwdyl.fsf@jevedi.com>
<CAPTjJmoTgNrFAFCexmZ2eVq67gi2bdimhO+rth=K2DhrpimKDw@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
X-Trace: news.uni-berlin.de hj/nO18KaIEvYI1zqX0b3Qa5Wk4waRBSCJxar/8bkKJg==
Return-Path: <rosuav@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=IyeV9RoG;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.068
X-Spam-Evidence: '*H*': 0.86; '*S*': 0.00; '17,': 0.03;
'subject:python': 0.06; 'queue': 0.07; 'used.': 0.07; 'wrong.':
0.07; ':-)': 0.09; 'angelico': 0.09; 'aug': 0.09; 'funny': 0.09;
'meant': 0.09; 'odd': 0.09; 'something,': 0.09; 'subject:test':
0.09; 'writes:': 0.09; 'yes.': 0.09; "can't": 0.14; '(it': 0.16;
'chrisa': 0.16; 'enough,': 0.16; 'from:addr:rosuav': 0.16;
'from:name:chris angelico': 0.16; 'idea.': 0.16; 'times,': 0.16;
'visualize': 0.16; 'wrote:': 0.16; 'says': 0.16; 'that.': 0.16;
'python': 0.16; 'figure': 0.18; 'gnu': 0.18; 'it?': 0.18; 'tue,':
0.18; 'programming': 0.21; 'anyone': 0.23; 'to:addr:python-list':
0.23; 'anything': 0.24; 'chris': 0.26; 'port': 0.27; "wasn't":
0.27; 'old': 0.28; 'saying': 0.28; "didn't": 0.29; 'this.': 0.29;
'(and': 0.30; 'it,': 0.31; 'think': 0.31; 'but': 0.31; 'fact':
0.31; 'hardware': 0.31; "doesn't": 0.32; 'script': 0.32; "i'm":
0.32; 'crazy': 0.32; 'language.': 0.32; 'to:name:python': 0.32;
'message-id:@mail.gmail.com': 0.33; 'using': 0.33;
'received:209.85.166': 0.33; 'header:In-Reply-To:1': 0.33;
'subject:for': 0.33; 'same': 0.34; 'received:google.com': 0.34;
'url:page': 0.35; 'from:addr:gmail.com': 0.35; 'windows': 0.36;
'able': 0.36; 'system,': 0.37; "that's": 0.37; 'mean': 0.37;
'really': 0.37; 'received:209.85': 0.38; 'engineering': 0.38;
"it's": 0.38; 'something': 0.38; 'received:209': 0.38; 'going':
0.38; 'use': 0.38; 'url-ip:151.101.36.223/32': 0.38; 'url-
ip:151.101.36/24': 0.38; 'best,': 0.40; 'messages': 0.40;
'otherwise': 0.40; 'package': 0.40; 'could': 0.40; 'mentioned':
0.40; 'but,': 0.61; 'button': 0.61; 'feel': 0.61; 'hope': 0.61;
'accounting': 0.61; 'kept': 0.61; 'me.': 0.62; 'bring': 0.63;
'numbers': 0.63; 'worked': 0.63; 'ever': 0.63; 'url-ip:192/8':
0.64; 'expert': 0.64; 'url:index': 0.64; 'your': 0.64; 'his':
0.65; 'back': 0.65; 'look': 0.66; 'towards': 0.66; 'right': 0.66;
'during': 0.67; 'great': 0.67; 'management': 0.67; 'skip:o 20':
0.67; 'implications': 0.69; 'obvious': 0.69; 'strategy.': 0.69;
'subject:some': 0.69; 'url:php': 0.74; 'little': 0.75; 'reliable':
0.77; 'quick': 0.78; '2021': 0.84; 'guy': 0.84; 'bridge,': 0.84;
'haha,': 0.84; 'offense': 0.84; 'panic': 0.84; 'pin': 0.84;
'say,': 0.84; 'surprised': 0.84; 'was.': 0.84; 'weird': 0.84;
'ball': 0.91; 'trick': 0.91; 'highest': 0.97
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;
bh=b5U6rqgKasy/BMP0dBRFZEAHaqSs8MjDhdR232+jQdg=;
b=IyeV9RoGXmKZxg5ebaNLYfcG01S9XUMuoci7Zf1MgdzslPh+M9l2WfURrXS7nikLqz
VGO1xdDwKMnV3XN8eOazLY+JpFM9mvsa7zcTsDO0YeITujVla5PwhW8Fz6PWFrb/4pza
jrN+b+9+K7I6a11svZRqnBqxXL65WaJSZB/h3VKjGOyPI7YzH1I3mLNy/JlpQCD5sxhb
+LP9sW81lJJtvD0UgB5GwBe5zjqknOKf1HaUhCKJXrYsUsZaBvo7AGtMSHjx0n3i0EYT
waIpXNSp4MYFWT8oMPC0YdBdcRjdajB/sVfVi3EZYidFM2tT+4c8oxKTIiWaYh2ppqVM
2q6Q==
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;
bh=b5U6rqgKasy/BMP0dBRFZEAHaqSs8MjDhdR232+jQdg=;
b=Z7eMLL4T2kXabsnpw+90H9arqhdQQW7C23gGnitOdtRPVNsRcQbPJhJwxKBLqKzm71
Mdf4h3tJNBsQEzFwmRrKT/7OIEYM+ZWLPurLajx2IFBQzSFBTnCVKO7eWIgFdRbZCi+O
W43AzAtLn4f+ENjo6+TXfbSDw5kKyRwtZuxOQcg1bGZ8yR+3/zUW26w35VpN1nnxOSaK
hMad2cWv9KpzjrQgfnuwD1Q6GEBN3sUFNCjJIQKKxwcra+3JUqBtQYJXkj6yw3RGvrZO
Yp6gXr7u4eSlcyTv9r2+Ows2nE10yc4x4G4ZKhK5C9Gik1hQ3m3WeQ+BKUKdMd7AxUMF
580Q==
X-Gm-Message-State: AOAM530yd4mPo5EDkQ+7Prky07g1ntn8eyO59Lcipq1L9/FDjnHxkeU1
tV8lfigxvuA/RuneS2dY9XP5JUivzAsXWxnfv9vx4ylQgzQ=
X-Google-Smtp-Source: ABdhPJy/URjZc1CYds6gEKVlgkbSZGMN/yfvi/8W7xPcF52eoSxCnmcI9rItO9prkGIOyRY/p4FTlxbnOzMRHGVO984=
X-Received: by 2002:a5e:db06:: with SMTP id q6mr389614iop.24.1629141674560;
Mon, 16 Aug 2021 12:21:14 -0700 (PDT)
In-Reply-To: <86sfzbwdyl.fsf@jevedi.com>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <CAPTjJmoTgNrFAFCexmZ2eVq67gi2bdimhO+rth=K2DhrpimKDw@mail.gmail.com>
X-Mailman-Original-References: <868s1acoo1.fsf@jevedi.xotimo>
<9e930795-7664-4e75-48b6-afa03c666e48@wichmann.us>
<CAPTjJmoQqPErXw2WAN-FgjZq3k2AnZLEYvOruyRJ0r7nNcRCnA@mail.gmail.com>
<c495f0ee-cc76-709c-e2fb-7dde4567d853@wichmann.us>
<CAPTjJmo_zoqB1MbbmzsAMLUGVcevs1Nz-cJk0Y6-Q7typbP3Mw@mail.gmail.com>
<mailman.341.1628569106.4164.python-list@python.org>
<86lf599zse.fsf@jevedi.xotimo>
<CAPTjJmp9OvxGuMH9Mj66Ha19zf8xjaBsBGOy-gdaeVKu9v+9Ww@mail.gmail.com>
<mailman.344.1628623474.4164.python-list@python.org>
<868s18b1p7.fsf@jevedi.com>
<CAPTjJmoDofU-X3Q7+j1E5_G-d=evsgbsWdbeHNDBBiBprt3v2A@mail.gmail.com>
<mailman.351.1628712943.4164.python-list@python.org>
<868s16zol5.fsf@jevedi.com>
<CAPTjJmrG=+3EHBr=18k5M4d+p2Evd3HW9mpb2CjnRu5C0KeG4Q@mail.gmail.com>
<mailman.369.1628793716.4164.python-list@python.org>
<86sfzbwdyl.fsf@jevedi.com>
 by: Chris Angelico - Mon, 16 Aug 2021 19:21 UTC

On Tue, Aug 17, 2021 at 3:51 AM Hope Rouselle <hrouselle@jevedi.com> wrote:
>
> Chris Angelico <rosuav@gmail.com> writes:
> >> Wow, I kinda feel the same as you here. I think this justifies perhaps
> >> using a hardware solution. (Crazy idea?! Lol.)
> >
> > uhhh........ Yes. Very crazy idea. Can't imagine why anyone would ever
> > think about doing that.
>
> Lol. Really? I mean a certain panic button. You know the GNU Emacs.
> It has this queue with the implications you mentioned --- as much as it
> can. (It must of course get the messages from the system, otherwise it
> can't do anything about it.) And it has the panic button C-g. The
> keyboard has one the highest precedences in hardware interrupts, doesn't
> it not? A certain very important system could have a panic button that
> invokes a certain debugger, say, for a crisis-moment.
>
> But then this could be a lousy engineering strategy. I am not an expert
> at all in any of this. But I'm surprised with your quick dismissal. :-)
>
> > Certainly nobody in his right mind would have WatchCat listening on
> > the serial port's Ring Indicator interrupt, and then grab a paperclip
> > to bridge the DTR and RI pins on an otherwise-unoccupied serial port
> > on the back of the PC. (The DTR pin was kept high by the PC, and could
> > therefore be used as an open power pin to bring the RI high.)
>
> Why not? Misuse of hardware? Too precious of a resource?
>
> > If you're curious, it's pins 4 and 9 - diagonally up and in from the
> > short
> > corner. http://www.usconverters.com/index.php?main_page=page&id=61&chapter=0
>
> You know your pins! That's impressive. I thought the OS itself could
> use something like that. The fact that they never do... Says something,
> doesn't it? But it's not too obvious to me.
>
> > And of COURSE nobody would ever take an old serial mouse, take the
> > ball out of it, and turn it into a foot-controlled signal... although
> > that wasn't for WatchCat, that was for clipboard management between my
> > app and a Windows accounting package that we used. But that's a
> > separate story.
>
> Lol. I feel you're saying you would. :-)

This was all a figure of speech, and the denials were all tongue in
cheek. Not only am I saying we would, but we *did*. All of the above.
The Ring Indicator trick was one of the best, since we had very little
other use for serial ports, and it didn't significantly impact the
system during good times, but was always reliable when things went
wrong.

(And when I posted it, I could visualize the port and knew which pins
to bridge, but had to go look up a pinout to be able to say their pin
numbers and descriptions.)

> I heard of Python for the first time in the 90s. I worked at an ISP.
> Only one guy was really programming there, Allaire ColdFusion. But, odd
> enough, we used to say we would ``write a script in Python'' when we
> meant to say we were going out for a smoke. I think that was precisely
> because nobody knew that ``Python'' really was. I never expected it to
> be a great language. I imagined it was something like Tcl. (Lol, no
> offense at all towards Tcl.)

Haha, that's a weird idiom!

Funny you should mention Tcl.

https://docs.python.org/3/library/tkinter.html

ChrisA


devel / comp.lang.python / Re: some problems for an introductory python test

Pages:123
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor