Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Possibly better loop construct, also labels+goto important and on the fly compiler idea.

353 views
Skip to first unread message

Skybuck Flying

unread,
Oct 16, 2013, 7:36:36 PM10/16/13
to
version 0.01 created on 17 october 2013 by Skybuck Flying.
(after having some experience with python which lacks repeat
until/goto/labels and programming game bots)
(the exit conditions described below prevent having to use logic inversion:
while BeginCondition and not EndCondition <- ugly logic for while loops,
below construct should be cleaner: LoopBegin(True) LoopEnd(True) instead
of While (True and not True) therefore below construct is more consistent
all conditions evaluate to true to trigger it's affect, begin=true,
end=true)

Possibly a better looping construct for programming languages.

To understand why the proposed looping construct is better than existing
constructs we first have to analyze and describe the problems with current
existing looping constructs:

Programming languages: C, Pascal, Delphi, Java, Phython have the "while"
construct:

while Conditions do
begin


end

Logically this loop makes no sense assuming the following
theory/assumptions/concepts about loops:

Either a loop is something that always enters and continues forever until
otherwise specified (most basic form)

Or a more clean approach:

A loop has a starting condition, a ending/exiting condition and additional
exiting/continueing options.

Therefore a more basic construction could be:


LoopBegin( EnterConditions )

if Conditions then LoopBreak

if Conditions then LoopContinue

if Conditions then LoopsExit

LoopEnd( ExitConditions )


^ This integrates the while loop and the repeat until loop of C and Pascal
into one construct saving the programmer
from having to fiddle around with code... changing while to repeat until or
vice versa.

This hereby indicates problems with the while loop: it makes little sense to
put the exiting conditions at the top.

These belong at the bottom or in the intermediate code.

One drawback of this proposed new structure is that it introduces unnecesary
complexities but those could be optional.

A cleaner loop construct could be:

LoopBegin

if Conditions then LoopBreak

if Conditions then LoopContinue

if Conditions then LoopsExit

LoopEnd


This allows the programmer to place the beginning and exiting conditions
anywhere.

Ofcourse the entering conditions could simply be omitted and still lead to
valid code so they could be optional as mentioned above.


The LoopBreak would cause the loop to proceed to it's exit point.

The LoopsExit would cause all nested loops to proceed to the main exit
point.

The loopContinue would cause the loop to skip all code and proceed back to
the start of the loop.

After a while I think programmers would get more used to these kinds of
programming constructs and don't have to choose between while or repeat
until.

Another syntax form could be:

BeginLoop

if Conditions then BreakLoop

if Conditions then ExitLoops

if Conditions then ContinueLoop

EndLoop

To be more inline with the Pascal Syntax.


Computer languages should also support labels and the goto statement so that
code recovery from failures is more easy:

Example:

while True:
Step1:
...Code...

Step2:
...Code..

if ...Failure.. then
GoTo Step1


Step3:

...Code...

if ...Failure... then
Goto Step 2

Step 4:
... Code...

if ... Failure... then
GotTo Step 0

Step 5:
... Code...

if ...Special... then
GoTo step 10

Unfortunately python does not have labels and goto statements as far as I
know which makes the writing the following code a bit more complex and
slower:


while True:

if Step = 1:
... Code ...
Step = Step + 1

if Step = 2:
... Code ...

if ...Failure... then
GotoStep1

Step = Step + 1

etc

^ unnecessary step variable introduced to mimic goto+labels, unnecessary if
statements introduced to support it.

Current problem with intel instruction set is instructions have variable
size, this prevents using the instruction pointer to simply jump to certain
instruction addresses.
(It's possible but it's hard to know where the addresses are, the idea below
could solve this):

One possible solution could be to introduce a "on the fly compiler".

It compiles the code "on the fly" and indicates to the programmer where
certain instruction addresses are.

Then perhaps the programmer can write code as follows:

... Code1 ...

... Code2 ...

if Failure then
GoTo CodeAddress1

... Code3 ...

if Failure then
GoTo CodeAddress2

The code addresses could be shown on the left side just as line numbers.


Possible problems introduced: when instruction code addresses would be off.
Either the programmer has to correct this, or the IDE/Tool could auto
correct it.

Leading to slightly more clean code and might make programming in
machine-like languages more popular, these languages would offer more
flexible and more power, especially
for writing high performing and robust code.

Perhaps even self modifying code programming languages in the future for
artifical intelligence/evolving computer programs/warfare bots/etc,
a fixed size instruction set would be preferred for such a beast.

Bye,
Skybuck.

Skybuck Flying

unread,
Oct 16, 2013, 7:44:43 PM10/16/13
to
One final example plus further analysis to be perfectly clear what fine code
would look like and why it's adventage:

At the bottom I come to the conclusion that the proposed loop construct with
begin and ending conditions has merit after all ! ;) =D

LoopBegin

if not BeginningCondition then LoopBreak

...Code...

if EndingCondition then LoopBreak

LoopEnd


This gives programmer full control over if the loop should be a while loop
or a repeat until loop.

Should it have a beginning condition ?

Should it have a ending condition ?

Both can be writting without having to change the main loop statement block:

Begin

End

Also both kind of while/repeat until functionalities can be integrated.

It also allows to seperate logics, from begin/enter and end/exit.

There is one little problem with the above code:

the not, this is still logic inversion.

It could have been written as follows

if LoopSkipCondition then LoopBreak

However that's not convenient.

Therefore this posting must conclude that a special loop construct is
usefull:

LoopBegin( EnterCondition )

LoopEnd( ExitCondition )

This would have allowed the code above to be written as:

LoopBegin( BeginningCondition )

LoopEnd( EndingCondition )

^ No logic inversion needed.

So this construct has merit after all.

Bye,
Skybuck.

Ben Finney

unread,
Oct 16, 2013, 7:47:46 PM10/16/13
to pytho...@python.org
"Skybuck Flying" <Window...@DreamPC2006.com> writes:

> version 0.01 created on 17 october 2013 by Skybuck Flying.

Thanks for writing your essay, but it's rather too long and context-free
to make a good post here.

Could you please post it on your weblog instead?

--
\ “Beware of and eschew pompous prolixity.” —Charles A. Beardsley |
`\ |
_o__) |
Ben Finney

Steven D'Aprano

unread,
Oct 17, 2013, 5:06:30 AM10/17/13
to
On Thu, 17 Oct 2013 01:36:36 +0200, Skybuck Flying wrote:

> Computer languages should also support labels and the goto statement so
> that code recovery from failures is more easy:

O_o

That's a very ... interesting ... statement.

Oh look, your post was cross-posted to no fewer than four newsgroups.
What a surprise!



--
Steven

Peter Cacioppi

unread,
Oct 17, 2013, 7:53:02 PM10/17/13
to
You know, I'd heard somewhere that Goto was considered harmful.... trying to remember exactly where....


Skip Montanaro

unread,
Oct 17, 2013, 8:39:20 PM10/17/13
to Peter Cacioppi, Python


On Oct 17, 2013 6:59 PM, "Peter Cacioppi" <peter.c...@gmail.com> wrote:
>
> You know, I'd heard somewhere that Goto was considered harmful.... trying to remember exactly where....

I can't tell if you were kidding or not... Just in case:

http://en.m.wikipedia.org/wiki/Considered_harmful

(can't grab the [2] & [3] links on my phone)

Skip

Peter Cacioppi

unread,
Oct 17, 2013, 8:43:34 PM10/17/13
to
Cmon, Skip, assuming everyone gets the "considered harmful" reference falls under the "we're all adults here" rubric.

Peter Cacioppi

unread,
Oct 17, 2013, 8:41:55 PM10/17/13
to Skip Montanaro, Python
yes it was a joke, apparently not a good one



On Thu, Oct 17, 2013 at 5:39 PM, Skip Montanaro <skip.mo...@gmail.com> wrote:


On Oct 17, 2013 6:59 PM, "Peter Cacioppi" <peter.c...@gmail.com> wrote:
>

> You know, I'd heard somewhere that Goto was considered harmful.... trying to remember exactly where....

I can't tell if you were kidding or not... Just in case:

Mark Lawrence

unread,
Oct 18, 2013, 3:40:47 AM10/18/13
to pytho...@python.org
On 18/10/2013 00:53, Peter Cacioppi wrote:
> You know, I'd heard somewhere that Goto was considered harmful.... trying to remember exactly where....
>

Yep, but it's used throughout the CPython code for error handling,
nothing wrong with that as it's crystal clear that you're going to one
place for one purpose. Contrast that with its use in spaghetti code
where you're leaping around like a naked person on an ant hill.

--
Roses are red,
Violets are blue,
Most poems rhyme,
But this one doesn't.

Mark Lawrence

Chris Angelico

unread,
Oct 18, 2013, 3:44:28 AM10/18/13
to pytho...@python.org
On Fri, Oct 18, 2013 at 6:40 PM, Mark Lawrence <bream...@yahoo.co.uk> wrote:
> On 18/10/2013 00:53, Peter Cacioppi wrote:
>>
>> You know, I'd heard somewhere that Goto was considered harmful.... trying
>> to remember exactly where....
>>
>
> Yep, but it's used throughout the CPython code for error handling, nothing
> wrong with that as it's crystal clear that you're going to one place for one
> purpose. Contrast that with its use in spaghetti code where you're leaping
> around like a naked person on an ant hill.

How bad can it be?

http://xkcd.com/292/

ChrisA

Mark Lawrence

unread,
Oct 18, 2013, 3:42:55 AM10/18/13
to pytho...@python.org
On 18/10/2013 01:43, Peter Cacioppi wrote:
> Cmon, Skip, assuming everyone gets the "considered harmful" reference falls under the "we're all adults here" rubric.
>

Context, context everywhere.... trying to remember exactly where....

Mark Lawrence

unread,
Oct 18, 2013, 4:11:52 AM10/18/13
to pytho...@python.org
On 18/10/2013 08:44, Chris Angelico wrote:
> On Fri, Oct 18, 2013 at 6:40 PM, Mark Lawrence <bream...@yahoo.co.uk> wrote:
>> On 18/10/2013 00:53, Peter Cacioppi wrote:
>>>
>>> You know, I'd heard somewhere that Goto was considered harmful.... trying
>>> to remember exactly where....
>>>
>>
>> Yep, but it's used throughout the CPython code for error handling, nothing
>> wrong with that as it's crystal clear that you're going to one place for one
>> purpose. Contrast that with its use in spaghetti code where you're leaping
>> around like a naked person on an ant hill.
>
> How bad can it be?
>
> http://xkcd.com/292/
>
> ChrisA
>

Love it :)

See also http://matplotlib.org/xkcd/index.html ???

Peter Cacioppi

unread,
Oct 21, 2013, 5:19:40 PM10/21/13
to
Just because the CPython implementation does something doesn't mean that thing is something other than risky/tricky/to-be-avoided-if-possible. Python (and it's implementations) exist so that ordinary people can avoid doing risky stuff.

I'm not critiquing the CPython implementation here, I'm pointing out that some languages are just better than others for most projects. Working in a higher level where gotos aren't needed is the right call most of the time.

Mark Lawrence

unread,
Oct 21, 2013, 5:35:07 PM10/21/13
to pytho...@python.org
On 17/10/2013 00:36, Skybuck Flying wrote:
>
> Unfortunately python does not have labels and goto statements as far as
> I know
>

http://entrian.com/goto/

--
Python is the second best programming language in the world.
But the best has yet to be invented. Christian Tismer

Mark Lawrence

Dave Angel

unread,
Oct 21, 2013, 11:34:50 PM10/21/13
to pytho...@python.org
On 21/10/2013 17:19, Peter Cacioppi wrote:

> Just because the CPython implementation does something doesn't mean

If you're going to drop messages in here with no context, you'd be
better off just putting it in a bottle and tossing it into the sea.

Include a quote from whomever you're responding to, and we might
actually take you seriously. And of course, make sure you don't delete
the attribution.

--
DaveA


Bernhard Schornak

unread,
Oct 23, 2013, 9:13:29 AM10/23/13
to
Skybuck Flying schrieb:


> This hereby indicates problems with the while loop: it makes little sense to put the exiting
> conditions at the top.


Why?

...
dec rcx
jbe 1f
0:some
code
to
perform
...
jmp 0b

p2align 5,,31
1:continue
with
something
else
...

This code triggers one penalty if RCX was zero or negative (it jumps directly
to label 1 after the penalty for the wrong assumption "not taken" passed by),
or two penalties if RCX was positive - one for the 2nd assumption is "taken",
one for the finally taken conditional jump.

The same applies if you moved the condition check to the end of the loop, but
you could not catch negative numbers / zero without executing the code in the
loop at least once.

There is no general rule which construct should be preferred. In the end, the
one suiting your needs might be the best choice. On the other hand, no one is
able to predict which code might be generated by a specific HLL-compiler.


Greetings from Augsburg

Bernhard Schornak

Skybuck Flying

unread,
Oct 24, 2013, 4:02:56 PM10/24/13
to
Because it's logical.

If the exit condition was placed on the top, the loop would exit immediatly.

Instead the desired behaviour might be to execute the code inside the loop
first and then exit.

Thus seperating logic into enter and exit conditions makes sense.

Bye,
Skybuck.

Mark Lawrence

unread,
Oct 25, 2013, 10:13:02 AM10/25/13
to pytho...@python.org
Are you replying to Her Majesty the Queen, President Obama or whom?
What context is this in?

Peter Cacioppi

unread,
Oct 25, 2013, 2:57:37 PM10/25/13
to
Dave said :

"Include a quote from whomever you're responding to, and we might
actually take you seriously. And of course, make sure you don't delete
the attribution. "

This forum is working for me. One of the more frequent and sophisticated posters emailed me saying he appreciates my contributions.

I'm sorry I'm putting in a bustle in your hedgerow (just a little bit sorry) but I've got 20 balls in the air right now and I haven't got around to configuring a proper client for this feed. The default Google Group client is notoriously cruddy with quotes attribution.

Some readers can discern context from the previous posts. That's sort of what the word context means. But I understand this skill isn't universal.

If it makes you feel better, I'm mostly lurking/learning and just posting on areas where I have expertise.

Thanks for letting me off with a warning officer, I'll do better next time.

Terry Reedy

unread,
Oct 25, 2013, 4:05:34 PM10/25/13
to pytho...@python.org
On 10/25/2013 2:57 PM, Peter Cacioppi wrote:

> The default
> Google Group client is notoriously cruddy with quotes attribution.

So don't use it. Get any decent newsreader, such as Thunderbird, and
access the list at news.gmane.org as gmane.comp.python.general.

--
Terry Jan Reedy

Rhodri James

unread,
Oct 25, 2013, 5:09:14 PM10/25/13
to
On Fri, 25 Oct 2013 19:57:37 +0100, Peter Cacioppi
<peter.c...@gmail.com> wrote:

> Some readers can discern context from the previous posts. That's sort of
> what the word context means. But I understand this skill isn't universal.

Some readers are reading this "forum" as a mailing list or Usenet
newsgroup. Google groups seems to delight in making the "previous" post a
poorly defined concept (by gratuitously breaking reference chains and the
like). It's not that the skill isn't universal, it's that the opportunity
isn't.

--
Rhodri James *-* Wildebeest Herder to the Masses

ru...@yahoo.com

unread,
Oct 25, 2013, 7:44:45 PM10/25/13
to
Peter, you can ignore Terry's "advice" if Google Groups works for you.
There are a small number of Google haters here who seem larger due to
their obnoxious noisiness.

I've been using Google Groups to post here for many years and with a
little care it is usable without annoying anyone except a few drooling
fanatics. All access methods have pros and cons (and I've posted here
about many of TB numerous cons) so if the usability tradeoff favors
GG for you (or anyone else) I recommend you not be intimidated by
the anti-GG goon squad.

Mark Lawrence

unread,
Oct 25, 2013, 8:19:14 PM10/25/13
to pytho...@python.org
Thunderbird cons - I've never known any. Google groups cons - continual
streams of messages on a daily basis that are double spaced despite
umpteen requests to follow instructions so the crap doesn't get
repeated. Just how difficult is it? Are you prepared to pay for my new
glasses, as the eye strain caused by google crap really does get to me.
Goon squad indeed!!!

Chris Angelico

unread,
Oct 25, 2013, 8:25:01 PM10/25/13
to pytho...@python.org
On Sat, Oct 26, 2013 at 10:44 AM, <ru...@yahoo.com> wrote:
> Peter, you can ignore Terry's "advice" if Google Groups works for you.
> There are a small number of Google haters here who seem larger due to
> their obnoxious noisiness.
>
> I've been using Google Groups to post here for many years and with a
> little care it is usable without annoying anyone except a few drooling
> fanatics. All access methods have pros and cons (and I've posted here
> about many of TB numerous cons) so if the usability tradeoff favors
> GG for you (or anyone else) I recommend you not be intimidated by
> the anti-GG goon squad.

As soon as we hear of people automatically blacklisting any posts that
come from Thunderbird, I'll believe you that they're on par. Until
then, no matter how courteous you might be in your use of GG (which
still makes you part of an extremely small minority), you still have a
fundamental downside in that your message simply won't get to
everyone.

As to "without annoying anyone except a few drooling fanatics" - I
wouldn't count myself among those fanatics (do you count me there?),
but the GG issus (mainly with regard to quoted text) DO annoy me, and
very much. Just because I don't flame people or throw tantrums doesn't
mean I don't mind.

ChrisA

Terry Reedy

unread,
Oct 25, 2013, 8:35:51 PM10/25/13
to pytho...@python.org
On 10/25/2013 7:44 PM, ru...@yahoo.com wrote:
> On 10/25/2013 02:05 PM, Terry Reedy wrote:
>> On 10/25/2013 2:57 PM, Peter Cacioppi wrote:
>>> The default
>>> Google Group client is notoriously cruddy with quotes attribution.
>>
>> So don't use it. Get any decent newsreader, such as Thunderbird, and
>> access the list at news.gmane.org as gmane.comp.python.general.
>
> Peter, you can ignore Terry's "advice" if Google Groups works for you.

Rurpy: My advice was real advice (what I do) given in response to
Cacioppi's complaint 'notoriously cruddy'.

--
Terry Jan Reedy

Steven D'Aprano

unread,
Oct 25, 2013, 10:40:16 PM10/25/13
to
On Fri, 25 Oct 2013 16:44:45 -0700, rurpy wrote:

> On 10/25/2013 02:05 PM, Terry Reedy wrote:
>> On 10/25/2013 2:57 PM, Peter Cacioppi wrote:
>>> The default
>>> Google Group client is notoriously cruddy with quotes attribution.
>>
>> So don't use it. Get any decent newsreader, such as Thunderbird, and
>> access the list at news.gmane.org as gmane.comp.python.general.
>
> Peter, you can ignore Terry's "advice" if Google Groups works for you.
> There are a small number of Google haters here who seem larger due to
> their obnoxious noisiness.

There are people here who hate Google Groups but simply don't chime in.
I'm one of them. Perhaps I should.

There are also many people who have a blanket "ignore" switch on anything
coming from GG, not out of any personal vendetta against you, but simply
out of self-defence. They don't say anything simply because they don't
see the posts.


> I've been using Google Groups to post here for many years and with a
> little care it is usable without annoying anyone

This is true, and thank you for taking that care, that is really
appreciated.

But perhaps you should consider that although GG works for you, it
doesn't work for many people who don't take that care. So far Peter
Cacioppi is one of those people. He has shown no inclination that he is
willing to take the care to communicate well according to the community
standards here, and he has shown a distressing tendency towards snarky,
arrogant responses to polite requests to fix his posts.


> except a few drooling
> fanatics. All access methods have pros and cons (and I've posted here
> about many of TB numerous cons) so if the usability tradeoff favors GG
> for you (or anyone else) I recommend you not be intimidated by the
> anti-GG goon squad.

Your personal attacks are not appreciated. Why can you not accept that
people who post using GG's defaults cause pain and difficulty to many --
probably the great majority -- of readers who use either the mailing list
or the news group to read this list? Don't you think that they are
entitled to complain when people repeatedly post double-spaced, hard to
read messages, or set the reply address wrongly, or include no context or
attributes, or all of the above at once?

Do you really intend to say that we have no right to complain about how
difficult Google Groups makes it for us?



--
Steven

rusi

unread,
Oct 26, 2013, 8:15:37 AM10/26/13
to
On Saturday, October 26, 2013 8:10:16 AM UTC+5:30, Steven D'Aprano wrote:
> Your personal attacks are not appreciated. Why can you not accept that
> people who post using GG's defaults cause pain and difficulty to many --
> probably the great majority -- of readers who use either the mailing list
> or the news group to read this list? Don't you think that they are
> entitled to complain when people repeatedly post double-spaced, hard to
> read messages, or set the reply address wrongly, or include no context or
> attributes, or all of the above at once?
>
>
> Do you really intend to say that we have no right to complain about how
> difficult Google Groups makes it for us?

I think you are mixing up cause and effect, symptom and disease, Steven.

The symptoms are
1. Double spaced responses
2. Non/improper attribution
3. Generally idiotic behavior

The 'disease' is:

Google-groups is current technology whereas newsgroups/feeds etc is pre-www technology.

By fairly straightforward statistics -- you should know given the newest module in python 3.4 <wink> -- the probability of idiotic behavior in a bunch of children is going to be significantly higher than the same in a bunch of adults.

Google-groups consist of the 'children-population' (so to speak); newsgroups etc consist of the adult population with some exceptions.

The appropriate way of dealing with children is not to say "Dont be children!" but to say "This kind of behavior is unacceptable out here"

I feel the biggest negative consequence of the anti-GG rhetoric is that the bigger issue -- idiotic behavior -- is left unaddressed in favor of very minor local issues like double-spaced mails.




> So far Peter
> Cacioppi is one of those people. He has shown no inclination that he is
> willing to take the care to communicate well according to the community
> standards here, and he has shown a distressing tendency towards snarky,
> arrogant responses to polite requests to fix his posts.

I think its fairly straightforward to fix these issues:
First (for complete newbies) one ignores the problem and engages/answers discusses
Then one mildly mentions that this -- double-spacing/non-attribution whatever -- is causing a problem; eg the footnote that Mark (used to) keep
Then more strongly
Then finally give no response to the question under discussion except to point out and underscore the idiotic behavior -- just make sure that the claim of Peter -- "this group is working for me" -- is not kept true.

tl;dr I think Mark's scoldings in this regard will work if they come not just from him but from any and every one. They are likely to have a larger subscription if you would agree to change: "Dont use GG!!"
to
"Users of GG are requested to read and follow these instructions
https://wiki.python.org/moin/GoogleGroupsPython "

Ben Finney

unread,
Oct 26, 2013, 9:02:19 AM10/26/13
to pytho...@python.org
rusi <rusto...@gmail.com> writes:

> On Saturday, October 26, 2013 8:10:16 AM UTC+5:30, Steven D'Aprano wrote:
> > Do you really intend to say that we have no right to complain about
> > how difficult Google Groups makes it for us?
>
> I think you are mixing up cause and effect, symptom and disease, Steven.
>
> The symptoms are
> 1. Double spaced responses
> 2. Non/improper attribution

Both of which are Google Groups failing to implement established
standard interfaces.

> The 'disease' is:
>
> Google-groups is current technology

Google Groups attempts to interface with standard protocols of
communication, and gets it wrong. Google are well-informed of the ways
in which Google Groups is misbehaving, and they are disinclined to fix
the misbehaviour.

> whereas newsgroups/feeds etc is pre-www technology.

So what? Much of the internet is pre-WWW, too. That doesn't excuse the
misbehaviour of software which purports to interface with standard
protocols but gets them wrong.

To the extent that the mis-implementation of Google Groups makes
messages from there more difficult to read, its users should be
agitating for Google to fix the service, and/or switching to software
which conforms to standards better.

--
\ “Visitors are expected to complain at the office between the |
`\ hours of 9 and 11 a.m. daily.” —hotel, Athens |
_o__) |
Ben Finney

ru...@yahoo.com

unread,
Oct 26, 2013, 10:55:59 AM10/26/13
to
On 10/25/2013 06:25 PM, Chris Angelico wrote:
> On Sat, Oct 26, 2013 at 10:44 AM, <ru...@yahoo.com> wrote:
>> Peter, you can ignore Terry's "advice" if Google Groups works for you.
>> There are a small number of Google haters here who seem larger due to
>> their obnoxious noisiness.
>>
>> I've been using Google Groups to post here for many years and with a
>> little care it is usable without annoying anyone except a few drooling
>> fanatics. All access methods have pros and cons (and I've posted here
>> about many of TB numerous cons) so if the usability tradeoff favors
>> GG for you (or anyone else) I recommend you not be intimidated by
>> the anti-GG goon squad.
>
> As soon as we hear of people automatically blacklisting any posts that
> come from Thunderbird, I'll believe you that they're on par. Until
> then, no matter how courteous you might be in your use of GG (which
> still makes you part of an extremely small minority), you still have a
> fundamental downside in that your message simply won't get to
> everyone.

I am aware of that. As I said the last time the subject came up,

* So what? Anyone too lazy or with too much need to control, to
not skip over posts they find annoying probably is someone unlikely
to offer anything constructive in any thread I'm participating
in.

* It is not at all clear that the number who actually completely
ignore GG is more than a very small number.

* Life's full of tradeoffs. The convenience of GG to some people
is worth the downside.

ru...@yahoo.com

unread,
Oct 26, 2013, 10:58:58 AM10/26/13
to
On 10/25/2013 06:19 PM, Mark Lawrence wrote:
> On 26/10/2013 00:44, ru...@yahoo.com wrote:
>> On 10/25/2013 02:05 PM, Terry Reedy wrote:
>>> On 10/25/2013 2:57 PM, Peter Cacioppi wrote:
>>>> The default
>>>> Google Group client is notoriously cruddy with quotes attribution.
>>>
>>> So don't use it. Get any decent newsreader, such as Thunderbird, and
>>> access the list at news.gmane.org as gmane.comp.python.general.
>>
>> Peter, you can ignore Terry's "advice" if Google Groups works for you.
>> There are a small number of Google haters here who seem larger due to
>> their obnoxious noisiness.
>>
>> I've been using Google Groups to post here for many years and with a
>> little care it is usable without annoying anyone except a few drooling
>> fanatics. All access methods have pros and cons (and I've posted here
>> about many of TB numerous cons) so if the usability tradeoff favors
>> GG for you (or anyone else) I recommend you not be intimidated by
>> the anti-GG goon squad.
>
> Thunderbird cons - I've never known any.

That's odd, because in
https://groups.google.com/d/msg/comp.lang.python/FFAe5sJ7kQ4/GmDtHitY50QJ
I responded to a direct question from you about problems
with Thunderbird. If you mean instead that because *you've*
experienced no problems, then none exist, that's your business
but I hope you don't carry that attitude into your programming

Further, that post was only with technical issues related to
TB; in another thread in which you participated, I explained
some of the other usability tradeoffs, issues of personal
choice and preference which clearly vary between users, for
example in:
https://groups.google.com/d/msg/comp.lang.python/Rxw7H4yNGh4/WRZDOzZd76oJ
https://groups.google.com/d/msg/comp.lang.python/Rxw7H4yNGh4/41hZ3Si5G0cJ
https://groups.google.com/d/msg/comp.lang.python/Rxw7H4yNGh4/jKu57BLvqIUJ
I question your judgement if you see you own preferences for
TB as being absolute and applicable to everyone. The idea
that there exists any access method for reading this list
that has *no* cons is ludicrous.

> Google groups cons - continual
> streams of messages on a daily basis that are double spaced despite
> umpteen requests to follow instructions so the crap doesn't get
> repeated. Just how difficult is it? Are you prepared to pay for my new
> glasses, as the eye strain caused by google crap really does get to me.

You are being absurd. If you are seriously willing to damage
your eyesight because you feel compelled to read every post
here then you should seek psychological help right away.

ru...@yahoo.com

unread,
Oct 26, 2013, 11:00:35 AM10/26/13
to
As was mine.

ru...@yahoo.com

unread,
Oct 26, 2013, 11:05:27 AM10/26/13
to
On 10/25/2013 08:40 PM, Steven D'Aprano wrote:
> On Fri, 25 Oct 2013 16:44:45 -0700, rurpy wrote:
>> On 10/25/2013 02:05 PM, Terry Reedy wrote:
>>> On 10/25/2013 2:57 PM, Peter Cacioppi wrote:
>>>> The default
>>>> Google Group client is notoriously cruddy with quotes attribution.
>>>
>>> So don't use it. Get any decent newsreader, such as Thunderbird, and
>>> access the list at news.gmane.org as gmane.comp.python.general.
>>
>> Peter, you can ignore Terry's "advice" if Google Groups works for you.
>> There are a small number of Google haters here who seem larger due to
>> their obnoxious noisiness.
>
> There are people here who hate Google Groups but simply don't chime in.
> I'm one of them. Perhaps I should.
>
> There are also many people who have a blanket "ignore" switch on anything
> coming from GG, not out of any personal vendetta against you, but simply
> out of self-defence. They don't say anything simply because they don't
> see the posts.

They see the replies so they have every opportunity to reply.
I would hope the reason they don't is because they don't want
to contribute to the already way too voluminous insults, flames,
nit-picking, troll-baiting and other non-python related garbage
here.

>> I've been using Google Groups to post here for many years and with a
>> little care it is usable without annoying anyone
>
> This is true, and thank you for taking that care, that is really
> appreciated.
>
> But perhaps you should consider that although GG works for you, it
> doesn't work for many people who don't take that care. So far Peter
> Cacioppi is one of those people. He has shown no inclination that he is
> willing to take the care to communicate well according to the community
> standards here, and he has shown a distressing tendency towards snarky,
> arrogant responses to polite requests to fix his posts.

I hadn't read this whole thread, I just wanted to provide an
alternative point of view to that expressed by Terry Reedy
re Google Groups (since I use it myself).

However, looking now, I see you pointed out that Peter originally
cross-posted his two messages to four groups:

alt.comp.lang.c: 4 posts total
one (serious, on-topic [*1], non-snarky) reply and a reply from OP.

alt.comp.lang.borland-delphi: 4 posts total
same as above

alt.lang.asm: 6 posts total
three (serious, on-topic, non-snarky) replies and a reply from the OP

comp.lang.python: 26 posts and counting
Two immediate not-on-topic responses, one polite but a little haughty
(what made the author assume that everyone has a weblog to post to?)
and one, from *you*, clearly snarky:
> Oh look, your post was cross-posted to no fewer than four
> newsgroups. What a surprise!
Ironic that you are complaining about snarkiness from the OP.
Those were followed (unsurprisingly) by a snarky response from the
OP and then (currently and counting) 26 replies, many snarky, none
addressing the OP's topic and none directly Python related.

Perhaps the snarkiness you complain about came from other earlier
threads, but I did see anything that struck me as horrible in a brief
sampling.

Why didn't you and the other respondents just ignore the above post,
likely leading to the same results as in the other three groups?
Instead we are all treated to yet another endless thread (with forked
subject lines making it even harder to avoid) of non-Python related
verbal pissing.

>> except a few drooling
>> fanatics. All access methods have pros and cons (and I've posted here
>> about many of TB numerous cons) so if the usability tradeoff favors GG
>> for you (or anyone else) I recommend you not be intimidated by the
>> anti-GG goon squad.
>
> Your personal attacks are not appreciated.

What I wrote was a non-personal attack.

> Why can you not accept that
> people who post using GG's defaults cause pain and difficulty to many --

"Pain"? If you really suffer pain from reading badly formatted
posts you should consider the advice I gave to Mark Lawrence.
But ignoring the exaggerations, I can and do accept it causes
some degree of annoyance -- it annoys me as well, and I've no
clue where you got the idea that it didn't. But it is also
annoying for many infrequent posters to go though the effort
to set up a news group reader or deal with a lot of email from
a high-volume mailing list. And it is annoying for readers to
wade though the constant torrent of bitching by GG bashers.
Of course I understand that you consider your annoyances more
important that other people's but then don't we all.

I am irritated by things here too: people who haven't
learned to tell the difference between "fact" and "my opinion",
people who feel free to be blunt to the point of offensiveness
in their posts but who take offense at the mildest slight
directed at them, people who can tell on the basis of a post
or two if a question is homework or a poster is drunk or lying
about a college degree, people who respond to every troll that
drives by, people who regularly post messages intended for a
totally unrelated group, people who speak for "the community"
when I never voted for them as spokesperson, etc. But I try
not to pollute this group by publicly venting my frustration
every time I see an irritating post.

> probably the great majority -- of readers who use either the mailing list
> or the news group to read this list?

You have no basis other than wishful thinking to claim that.
Google groups has a very large following and my guess is that
the vast majority of c.l.p readers are silent and seldom if
ever post. The large number of posts here from GG would suggest
that the readership there is substantial, and the decline in
"web-1.0" tools (usenet, mailing lists, etc) is additional
evidence that the number of GG users (who are used to and
prefer flashier web-based interfaces) may be much greater
than you would like to think.

> Don't you think that they are
> entitled to complain when people repeatedly post double-spaced, hard to
> read messages, or set the reply address wrongly, or include no context or
> attributes, or all of the above at once?

"entitled" is too subjective a word for me but I do think
the such complaints have a major negative effect on the value
of this group to those of us who come here looking for Python-
related discussions.

> Do you really intend to say that we have no right to complain about how
> difficult Google Groups makes it for us?

Poor baby! Life is sooo hard, isn't it? :-)

----
[*1] By "on-topic" I mean on topic for the thread, not on-topic
for the group.

ru...@yahoo.com

unread,
Oct 26, 2013, 11:07:09 AM10/26/13
to
On 10/26/2013 06:15 AM, rusi wrote:
>[...]
> Google-groups consist of the 'children-population' (so to speak);
> newsgroups etc consist of the adult population with some exceptions.
> The appropriate way of dealing with children is not to say "Dont be
> children!" but to say "This kind of behavior is unacceptable out
> here"
>[...]

This is exactly the kind of trash-talk that provokes so much discord
here.

Mark Lawrence

unread,
Oct 26, 2013, 11:38:21 AM10/26/13
to pytho...@python.org
On 26/10/2013 15:58, ru...@yahoo.com wrote:

>
> That's odd, because in
> https://groups.google.com/d/msg/comp.lang.python/FFAe5sJ7kQ4/GmDtHitY50QJ
> I responded to a direct question from you about problems
> with Thunderbird. If you mean instead that because *you've*
> experienced no problems, then none exist, that's your business
> but I hope you don't carry that attitude into your programming
>

Would you please be kind enough to quote the question that I asked.
You'll find it extremely difficult as I actually made a stement. I quote

"
> Please provide evidence that Thunderbird is buggy. I use it quite
> happily, don't have problems, and have never seen anybody complaining
> about it.
"

I still stand by the above statement, whereas as a constant stream of
crap arrives here every day from the bug ridden google product(s). How
can you ignore it until you've actually looked at it? Do you have
Superman's eyesight?

Steven D'Aprano

unread,
Oct 26, 2013, 1:24:55 PM10/26/13
to
On Sat, 26 Oct 2013 08:05:27 -0700, rurpy wrote:

> On 10/25/2013 08:40 PM, Steven D'Aprano wrote:
[...]
> However, looking now, I see you pointed out that Peter originally
> cross-posted his two messages to four groups:

I think you are confused. I haven't said anything about Peter Cacioppi
cross-posting. To the best of my knowledge, he hasn't cross-posted
anything here.



--
Steven

Chris Angelico

unread,
Oct 26, 2013, 9:25:26 AM10/26/13
to pytho...@python.org
On Sat, Oct 26, 2013 at 11:15 PM, rusi <rusto...@gmail.com> wrote:
> tl;dr I think Mark's scoldings in this regard will work if they come not just from him but from any and every one. They are likely to have a larger subscription if you would agree to change: "Dont use GG!!"
> to
> "Users of GG are requested to read and follow these instructions
> https://wiki.python.org/moin/GoogleGroupsPython "

I would say that "Don't use Google Groups" is absolutely the right
advice, because it penalizes the ultimate cause of the problem. If a
bus company sets timetables that demand the drivers work the
accelerator and brake in binary (one or the other is always flat
down), the advice is not "Don't buy eggs" but "Don't ride that bus
line". Considering how easy it is to use some other way of posting and
reading, there's no reason for the makers of a fundamentally flawed
piece of software to be rewarded with usage.

Anyway, no matter how carefully you fix your own posts, you'll still
run into the one problem you can't fix: that, because of the extremely
poor signal-to-noise ratio from GG, a number of people just won't see
your post.

And trust me. No matter how many times you ask people to read that
wiki page, you'll still get far FAR better results by recommending
Thunderbird or email. I've seen a good number of people go "Oh, my
posts are annoying because of the software I'm using? No probs, I'll
change software to not be annoying", which solves the problem without
the fiddlinesses that the wiki page advocates.

ChrisA

Peter Cacioppi

unread,
Oct 26, 2013, 4:37:53 PM10/26/13
to
Rusi said:


"Users of GG are requested to read and follow these instructions
https://wiki.python.org/moin/GoogleGroupsPython "

Yes, I read those instructions and found them fairly opaque. If you want to instruct "children" (odd that I find myself categorized that way on a CS forum, but whatever) then you use pictures.

Seriously, it's not exactly clear what protocol GG users are expected follow to make posts hygenic. The standards I've used when creating this sort of content is to use screen shots with arrows and circles drawn in. If you're going to make an instruction page for some nuanced client feature, spend an extra 10 minutes and make it fully idiot proof.

With re: the snark ... I am shocked, shocked to find snarky comments on the internet. (eyeroll) There was plenty of snark in this joint before I posted, good luck policing that.

Chris Angelico

unread,
Oct 26, 2013, 6:15:39 PM10/26/13
to pytho...@python.org
On Sun, Oct 27, 2013 at 2:05 AM, <ru...@yahoo.com> wrote:
> The large number of posts here from GG would suggest
> that the readership there is substantial, and the decline in
> "web-1.0" tools (usenet, mailing lists, etc) is additional
> evidence that the number of GG users (who are used to and
> prefer flashier web-based interfaces) may be much greater
> than you would like to think.

That's not a problem. The people who think that Web 2.0 has to
completely supplant everything else are most welcome to spend all day
on Facebook, and try to get their homework help from there. I don't
mind. Meanwhile, the rest of us will continue to use - and to
understand - the lower-level internet protocols that actually work. We
will then go on to develop communication protocols that don't involve
JavaScript in web browsers, that don't have ten-round-trip latency,
and that actually work. SMTP-like or MUD-like protocols seem to be
quite effective, in my experience.

ChrisA

rusi

unread,
Oct 26, 2013, 9:45:39 PM10/26/13
to
On Sunday, October 27, 2013 2:07:53 AM UTC+5:30, Peter Cacioppi wrote:
> Rusi said:
>
> "Users of GG are requested to read and follow these instructions
> https://wiki.python.org/moin/GoogleGroupsPython "
>
>
> Seriously, it's not exactly clear what protocol GG users are expected follow
> to make posts hygenic.

Yes... that page is longer and more confusing than necessary.
1. The double-posting bit is unnecessary -- not been happening after the 'new' GG.
2. The missing attributions problem is new and needs to be added
3. The main message of that page that needs to be noted is
- to remove extra spurious lines
- to NOT top-post

> The standards I've used when creating this sort of
> content is to use screen shots with arrows and circles drawn in. If you're
> going to make an instruction page for some nuanced client feature, spend an
> extra 10 minutes and make it fully idiot proof.

Please do!
If I were in charge I would say "Patches welcome!"
Who is the 'you' you think you are addressing?

>
> With re: the snark ... I am shocked, shocked to find snarky comments on the internet. (eyeroll) There was plenty of snark in this joint before I posted, good luck policing that.

Not my complaint: idiocy was my complaint

Chris Angelico

unread,
Oct 26, 2013, 9:56:30 PM10/26/13
to pytho...@python.org
On Sun, Oct 27, 2013 at 12:45 PM, rusi <rusto...@gmail.com> wrote:
> Yes... that page is longer and more confusing than necessary.
> 1. The double-posting bit is unnecessary -- not been happening after the 'new' GG.
> 2. The missing attributions problem is new and needs to be added
> 3. The main message of that page that needs to be noted is
> - to remove extra spurious lines
> - to NOT top-post

If someone's editing that page, it'd be nice to also ask people to
chop their lines short - most newsgroup and mail clients hard-wrap to
80 characters, but GG posts invariably come through with one-line
paragraphs. It's annoying when you try to quote the text, and several
online archives look ugly when the lines are too long.

ChrisA

Peter Cacioppi

unread,
Oct 26, 2013, 10:02:23 PM10/26/13
to
Rusi said :
"Please do! If I were in charge I would say "Patches welcome!"

Well, I don't really know what the GG best practice ought to be here.

What I am doing now (manually copying whatever I need to quote to give some context) seems to be tolerable to law enforcement (I guess). But I'm minimizing the PIA not with some clever GG usage but by exploiting two monitors and the way I have "open in new browser" configured. It isn't something I'd care to document and it doesn't really scale to general usage.

And, for all I know, the goons are still grinding their teeth, they're just more quiet now.

ru...@yahoo.com

unread,
Oct 27, 2013, 12:33:10 AM10/27/13
to
Yes, it seems I somehow concluded that Skybuck Flying who originated
the thread (in which you immediately complained about cross-posting)
and Peter were the same person, without any good reason. Apologies
to you and Peter. However, I don't think that invalidates the other
points I made.

ru...@yahoo.com

unread,
Oct 27, 2013, 12:36:54 AM10/27/13
to
On 10/26/2013 09:38 AM, Mark Lawrence wrote:
> On 26/10/2013 15:58, ru...@yahoo.com wrote:
>> That's odd, because in
>> https://groups.google.com/d/msg/comp.lang.python/FFAe5sJ7kQ4/GmDtHitY50QJ
>> I responded to a direct question from you about problems
>> with Thunderbird. If you mean instead that because *you've*
>> experienced no problems, then none exist, that's your business
>> but I hope you don't carry that attitude into your programming
>
> Would you please be kind enough to quote the question that I asked.
> You'll find it extremely difficult as I actually made a stement. I quote

Ah, right it was a stement rather than a quesion. And that
changes my points exactly how?

> [...]
> How
> can you ignore it until you've actually looked at it? Do you have
> Superman's eyesight?

So your eyes are so sensitive that just glancing at a double
spaced message damages them? OK....

ru...@yahoo.com

unread,
Oct 27, 2013, 12:43:26 AM10/27/13
to
On 10/26/2013 07:25 AM, Chris Angelico wrote:
> On Sat, Oct 26, 2013 at 11:15 PM, rusi <rusto...@gmail.com> wrote:
>> tl;dr I think Mark's scoldings in this regard will work if they come not just from him but from any and every one. They are likely to have a larger subscription if you would agree to change: "Dont use GG!!"
>> to
>> "Users of GG are requested to read and follow these instructions
>> https://wiki.python.org/moin/GoogleGroupsPython "
>
> [...]
> Anyway, no matter how carefully you fix your own posts, you'll still
> run into the one problem you can't fix: that, because of the extremely
> poor signal-to-noise ratio from GG, a number of people just won't see
> your post.

I just addressed that in another post. Perhaps your TB reader
somehow missed it?

> And trust me. No matter how many times you ask people to read that
> wiki page, you'll still get far FAR better results by recommending
> Thunderbird or email.

By "results" I gather you mean the production of posts that
are non-annoying to you. Your "results" do not seem to include
any consideration for what is preferable for the poster -- ie
a pretty selfish definition of "results".

By all means, mention the option of using TB. But there is
a difference between a recommendation and coercion. And please
be accepting if the poster decides that GG is a better solution
for them.

For many people, including those that post here infrequently,
who work from different platforms, who want remote access, who
don't have time, skills or interest in doing setup more involved
that a few mouse clicks, GG is better answer.

> I've seen a good number of people go "Oh, my
> posts are annoying because of the software I'm using? No probs, I'll
> change software to not be annoying",

That's fine. If someone finds TB (or whatever) suits them
better, then all's good for them. But you are extrapolating
from a few cases to universality.

> which solves the problem without
> the fiddlinesses that the wiki page advocates.

The wiki page advocates nothing. It offer some options for
both using GG *and* minimizing annoyance to other users.

ru...@yahoo.com

unread,
Oct 27, 2013, 12:45:14 AM10/27/13
to
That's a pretty bigoted view of a large class of people.
I understand your desire to stay with the technology you
have learned and are familiar with. However, your apparent
desire to exclude people who don't share your view is a
shame and seems contrary to the PSFs policy of being
welcoming and encouraging diversity.

ru...@yahoo.com

unread,
Oct 27, 2013, 1:04:11 AM10/27/13
to
On 10/26/2013 07:45 PM, rusi wrote:
> On Sunday, October 27, 2013 2:07:53 AM UTC+5:30, Peter Cacioppi wrote:
>> Rusi said:
>>
>> "Users of GG are requested to read and follow these instructions
>> https://wiki.python.org/moin/GoogleGroupsPython "
>>
>> Seriously, it's not exactly clear what protocol GG users are expected follow
>> to make posts hygenic.

First, thanks (both of you) very much for the feedback. I originally
wrote that page.

> Yes... that page is longer and more confusing than necessary.
> 1. The double-posting bit is unnecessary -- not been happening after the 'new' GG.

OK, I have not seen the the cc option in a long time either.

> 2. The missing attributions problem is new and needs to be added

I don't understand this. When I use GG I have not noticed missing
attributions. Do you have any idea under what circumstances it happens?

> 3. The main message of that page that needs to be noted is
> - to remove extra spurious lines

That is point #2 on the page, right after the point about double posting
and will be #1 when the double posting point is removed. Are you saying
that is it not prominent enough, or not clear enough?

> - to NOT top-post

Good point, I'll add that.

>> The standards I've used when creating this sort of
>> content is to use screen shots with arrows and circles drawn in. If you're
>> going to make an instruction page for some nuanced client feature, spend an
>> extra 10 minutes and make it fully idiot proof.
>
> Please do!
> If I were in charge I would say "Patches welcome!"
> Who is the 'you' you think you are addressing?

If me, I'll think about it but given that the page is instructions
about how to modify text, pictures would not come to my mind immediately
as being most appropriate.

Thanks again though for the suggestions.

rusi

unread,
Oct 27, 2013, 3:59:05 AM10/27/13
to
On Sunday, October 27, 2013 10:34:11 AM UTC+5:30, ru...@yahoo.com wrote:
> On 10/26/2013 07:45 PM, rusi wrote:
>
> > On Sunday, October 27, 2013 2:07:53 AM UTC+5:30, Peter Cacioppi wrote:
> >> Rusi said:
> >>
> >> "Users of GG are requested to read and follow these instructions
> >> https://wiki.python.org/moin/GoogleGroupsPython "
> >>
> >> Seriously, it's not exactly clear what protocol GG users are expected follow
> >> to make posts hygenic.
>
>
> First, thanks (both of you) very much for the feedback. I originally
> wrote that page.

One more 'to-be-removed' from that page is the bit about new and old GG at the end. It used to work for a while. Now google has completely removed the 'old interface' (at least to the best of my knowledge).

rusi

unread,
Oct 27, 2013, 6:53:53 AM10/27/13
to
On Sunday, October 27, 2013 2:07:53 AM UTC+5:30, Peter Cacioppi wrote:
> Rusi said:
>
> > Users of GG are requested to read and follow these instructions
> > https://wiki.python.org/moin/GoogleGroupsPython
>
> Yes, I read those instructions and found them fairly opaque. If you want to
> instruct "children" (odd that I find myself categorized that way on a CS
> forum, but whatever) then you use pictures.

The children is intended almost literally:
GG claims that the python list (or its version thereof) has 21447 'members'.
I am willing to bet that the average age of the 21447 humans whose records are in google's dbms is between half and one-third of those that use usenet channels.

I am speaking a bit legalistically because just as statisticians will argue about what 'average' (or mean) means, likewise we could argue about what a 'member' means:
- someone who joins but does not post
- someone who joins and does not even read
- someone who posts frequently. [What's the frequency threshold?]

And which is why I quoted the passage from mathsemantics in the other thread (repeated below). So all we can really infer is that the table in some GG database contains 21447 records


------------
I 1980 I was one passenger, ten passengers, eighteen passengers, thirty-six passengers, forty-two passengers, fifty-five passengers, seventy-two passengers and ninety-four passengers. Each of these statements is true.
-----------
... explanation...
-----------
I was one passenger in the sense that I was a person who traveled by air in that year.
I was eighteen passengers in the sense that I made eighteen round trips.
I was forty-two passengers in the sense that on forty-two different occasions I entered and exited the system of a different carrier.
I was seventy-two passengers in the sense that on seventy-two occasions I was on board an aircraft when it took off from one place and landed at another.
I was ninety-four passengers in the sense that I made ninety-four separate entrances and exits from airport terminal buildings.
Message has been deleted

ru...@yahoo.com

unread,
Oct 28, 2013, 1:29:31 AM10/28/13
to
That describes my personal preferences too but...

I know people who complain about manually wrapped lines. When you
widen the window they don't expand to fill the width, and when you
narrow the window they wrap and create this awful ragged effect.

Long lines wrapped by the client reader seem to be pretty common
these days, not just from GG but from many sources although they
remain a minority of messages in c.l.p.

Further, although I've commonly seen complaints about top-posting
or occasionally excessive untrimmed context or html, I don't recall
seeing any complaints about long lines. Rusi posts here frequently
with long lines and I've not seen any complaints related to that.

I seems to me unfair to demand different standards from GG users
than others even if such posts are more common from GG.

Maybe there should be a c.l.p etiquette page somewhere applicable
to all posters.

ru...@yahoo.com

unread,
Oct 28, 2013, 1:40:21 AM10/28/13
to
I updated the page, hopefully it's an improvement?

rusi

unread,
Oct 28, 2013, 1:56:21 AM10/28/13
to
On Monday, October 28, 2013 11:10:21 AM UTC+5:30, ru...@yahoo.com wrote:
> I updated the page, hopefully it's an improvement?


Most people who top-post have no idea that they are top-posting and that there
are alternatives and they are preferred (out here)
http://en.wikipedia.org/wiki/Posting_style#Placement_of_replies should help

Otherwise ok I think

rusi

unread,
Oct 28, 2013, 2:51:28 AM10/28/13
to
On Monday, October 28, 2013 11:26:21 AM UTC+5:30, rusi wrote:
> On Monday, October 28, 2013 11:10:21 AM UTC+5:30, ru...@yahoo.com wrote:
> > I updated the page, hopefully it's an improvement?
>
>
> Otherwise ok I think

Just looked at the general netiquette link -- its long and not much use for a technical oriented forum.

Some items missed (irrespective of GG usage)
1. Good subject line
2. Good code examples http://sscce.org/
3. http://www.catb.org/esr/faqs/smart-questions.html

Bernhard Schornak

unread,
Oct 28, 2013, 5:58:15 AM10/28/13
to
Skybuck Flying wrote:


> Because it's logical.


What is logical?


> If the exit condition was placed on the top, the loop would exit immediatly.


This might be the programmer's intention?


> Instead the desired behaviour might be to execute the code inside the loop first and then exit.


It might ... but it might be something very different, too.

Let us assume a function with variable iteration count for its loop, where the
count is passed as parameter. If the loop body always was executed completely
before the final conditional test, we had to check at least the iteration count to avoid crashes if the
iteration count is used as an array index, someone passed a negative number or
zero. Moreover, we had to restore all data manipulated by instructions inside
the loop body if we only wanted to alter data whenever the final condition was
met.


> Thus seperating logic into enter and exit conditions makes sense.


No. It introduces tons of -avoidable- extra cycles, but nothing of true value.
If exit code always was placed at the bottom, and we have a loop with variable
iterations passed as one of the function's input parameters, we had to reverse
all manipulations applied within the loop, if the exit conditions were not met
at the end of the first iteration. Moreover, every erroneously passed negative
iteration count caused a crash if the passed count was used as an array index.
Hence, we had to insert input parameter tests prior to the first execution of
the loop, adding more misprediction penalties.

To get a picture: Each misprediction penalty costs an absolute minimum of ~ 20
clock cycles on recent machines. It surely is not zher best idea to add a lot
of mispredictions with the (questionable) intention to force other programmers
to obey your universal "Condition checks belong to the bottom!" law.

As assembler programmers, we can write the fastest possible code without being
bound to counter-productive rules. Compiler developers who declare conventions
just to force programmer to use delay mechanisms like "condition checks belong
to the bottom!" are a dangerous species. With compilers like that, it is quite
obvious why software became slower and slower while processor power is growing
from one hardware generation to the next.


BTW: I placed label 0 at the wrong place. The proper loop should look like this:

func:...
...
0:dec rcx
jbe 1f
...
some
code
to
perform
...
jmp 0b

p2align 5,,31
1:continue
with
something
else
...


Greetings from Augsburg

Bernhard Schornak

Bernhard Schornak

unread,
Oct 28, 2013, 6:49:26 AM10/28/13
to
Due to unknown "improvements", SeaMonkey's built-in news editor meanwhile ignores
saved changes and sends long deleted text parts rather than thwe last seen text -
"What you See Is _Not_ What You Get"...

This is the real reply to Skybuck's posting. Please ignore the mixture of deleted
text parts, older and newer text posted at 10:58 h. Unfortunately, the option to
remove messages from the server became the victim of another "improvement", so it
is impossible for me to delete the other post.

Bernhard Schornak



Skybuck Flying wrote:


> Because it's logical.


What is logical?


> If the exit condition was placed on the top, the loop would exit immediatly.


This might be the programmer's intention?


> Instead the desired behaviour might be to execute the code inside the loop first and then exit.


With a 50 percent chance it might not. Are we fortune tellers who guess which one
might be true?


> Thus seperating logic into enter and exit conditions makes sense.


Let us assume a loop with variable iterations where the iteration count is passed
as function parameter. The code inside the loop body uses this iteration count as
index into an array and alters data in other arrays depending on computations and
set flags.

If we probed the loop's repeat condition at the end of the loop body per default,
we had to verify the passed iteration count before we enter the loop - otherwise,
the program crashed with erroneously passed negative numbers. We also had to sort
out zero. Otherwise, we started a count down through the full 32 or 64 bit range.
The last problem pops up, if the loop's repeat condition isn't met. In this case,
we had to restore all altered data before we could continue with the instructions
following the loop body.

Programming on machine language level grants us the freedom to create the fastest
possible code. It is no good idea to slow down our code just to obey questionable
"Universal Laws".

Grant Edwards

unread,
Oct 28, 2013, 10:23:24 AM10/28/13
to
On 2013-10-26, Steven D'Aprano <steve+comp....@pearwood.info> wrote:
> On Fri, 25 Oct 2013 16:44:45 -0700, rurpy wrote:
>
>> On 10/25/2013 02:05 PM, Terry Reedy wrote:
>>> On 10/25/2013 2:57 PM, Peter Cacioppi wrote:
>>>> The default Google Group client is notoriously cruddy with quotes
>>>> attribution.
>>>
>>> So don't use it. Get any decent newsreader, such as Thunderbird, and
>>> access the list at news.gmane.org as gmane.comp.python.general.
>>
>> Peter, you can ignore Terry's "advice" if Google Groups works for you.
>> There are a small number of Google haters here who seem larger due to
>> their obnoxious noisiness.
>
> There are people here who hate Google Groups but simply don't chime in.
> I'm one of them. Perhaps I should.

More that a few of us just filter out all posts made from Google
Groups.

--
Grant Edwards grant.b.edwards Yow! I'm having a MID-WEEK
at CRISIS!
gmail.com

ru...@yahoo.com

unread,
Oct 29, 2013, 12:03:50 AM10/29/13
to
On 10/28/2013 12:51 AM, rusi wrote:
> > On Monday, October 28, 2013 11:26:21 AM UTC+5:30, rusi wrote:
>> >> On Monday, October 28, 2013 11:10:21 AM UTC+5:30, ru...@yahoo.com
>> >> wrote:
>>> >>> I updated the page, hopefully it's an improvement?
>> >>
>> >> Otherwise ok I think
> >
> > Just looked at the general netiquette link -- its long and not much
> > use for a technical oriented forum.

I agree. Wikipedia is convenient but almost never suitable
as a learning resource. I'll see if I can find a friendlier
general netiquette link. Recommendations welcome.

> > Some items missed (irrespective of GG usage) 1. Good subject line 2.
> > Good code examples http://sscce.org/ 3.
> > http://www.catb.org/esr/faqs/smart-questions.html

I am hesitant to put too many general netiquette rules
there. Such rules aren't applicable to only GG users.
The alternate recommendations made to GG users here
(to use usenet and email) are always made without a
list of netiquette rules even though the recipients
are the same people using GG. Why should GG users be
told about those rules when they get advice about using
GG but not when they get advice to use email or usenet?

What would be best I think is a separate page with general
guidelines for posting that any user could be pointed to.

Regarding esr's "smart-questions", although I acknowledge
it has useful advice, I have always found it elitist and
abrasive. I wish someone would rewrite it without the
"we are gods" attitude.

Thanks again for your feedback.

Chris Angelico

unread,
Oct 29, 2013, 2:22:03 AM10/29/13
to pytho...@python.org
On Tue, Oct 29, 2013 at 3:03 PM, <ru...@yahoo.com> wrote:
> Regarding esr's "smart-questions", although I acknowledge
> it has useful advice, I have always found it elitist and
> abrasive. I wish someone would rewrite it without the
> "we are gods" attitude.

I find it actually pretty appropriate. The attitude comes from a
hierarchy in which we are not at the top - but neither is esr. On the
roleplaying game Threshold, there's a help file about that, which
succinctly sums up what I'm trying to say, but it doesn't seem to be
on the web, so unless you want to telnet to thresholdrpg.com, create
an account, and type "help hierarchy" at the prompt, you can't see the
text of it. Oh well. :| Anyway, point is: We're in a hierarchy (or
actually several independent and unrelated ones), and being at the top
means (in the open source world) being everyone's servant; and the
people at the top simply don't have time to be _everyone's_ servant
personally, so they need some sous-servants to help them to help
people. (Obvious example of that in the Python community is Guido at
the top, other core committers and PEP writers and so on helping him,
and then the large crew of core question-answerers, bug triagers,
patch writers, etc, etc, etc.) You offer courtesy to those who are
above you; they're giving of their time freely, making themselves your
servants, and all they ask is that you make it easy for them to do so.
That's a pretty good deal for all of us at the bottom of the hierarchy
:)

ChrisA

Skybuck Flying

unread,
Oct 29, 2013, 7:37:36 AM10/29/13
to
> Because it's logical.

"
What is logical?
"

To put the exit condition at the bottom is logical.

The exit condition glues the loop to the code that will be executed next
which is also at the bottom.

Example:

Loop

NextCode

^


Placing the exit ondition near next code makes more sense at least in
situation where I was programming.

I will give you an example:



LoopBegin( Step = 10 )

if ButtonExists then
begin
ClickButton()
end;

LoopEnd( ButtonClicked )

Execute next code...

This loop waits for the button to appear, once it's found it is clicked and
then the loop exits to continue the next code.

Putting this exit condition on the top makes no sense.

Bye,
Skybuck.

Message has been deleted

Steven D'Aprano

unread,
Oct 29, 2013, 10:08:16 AM10/29/13
to
On Tue, 29 Oct 2013 12:37:36 +0100, Skybuck Flying wrote:

> To put the exit condition at the bottom is logical.
>
> The exit condition glues the loop to the code that will be executed next
> which is also at the bottom.

Skybuck, please excuse my question, but have you ever done any
programming at all? You don't seem to have any experience with actual
programming languages.

In a while loop, such as in Python, the test is at the top of the loop
because the test is performed at the start of the loop, not the end:

while x > 0:
do_this()
do_that()


It would be inappropriate (as well as ugly!) to put the test at the end
of the loop, like this:

x = 0
while:
do_this()
do_that()
many more lines go here
possibly even pages of code
until finally, at long last
you get to the end where you find the test...
x > 0

... and discover whether or not the while loop was actually entered or
not. Similarly with for-loops, the loop condition is at the beginning
because it runs at the beginning. This would be silly:

for i:
body of loop goes here
could be many many lines of code
even pages of code
but eventually, at long last
we get to the end, and find out
what the first value for i will be
in range(100, 110)


There is one sort of loop where it makes sense to have the loop condition
at the end. Python doesn't have such a loop, but Pascal does: the repeat
until loop. Unlike while, repeat until is always executed at least once,
so the loop condition isn't tested until the end of the loop:

repeat
do this
do that
do something else
until x > 0



[...]
> LoopBegin( Step = 10 )
>
> if ButtonExists then
> begin
> ClickButton()
> end;
>
> LoopEnd( ButtonClicked )
>
> Execute next code...
>
> This loop waits for the button to appear, once it's found it is clicked
> and then the loop exits to continue the next code.

What if the button has already appeared before the loop starts?

I think that is better written as:


# Check the loop condition at the start
while the button does not exist:
wait a bit
# Outside the loop
click the button

(Although such a loop is called a "busy wait" loop, since it keeps the
computer being busy without doing anything useful. There are better ways
to do this than a loop.)

Even in Pascal, I would use a while loop rather than repeat, but if you
insist on using repeat, clicking the button still should go on the
outside of the loop:

# this is wasteful, since even if the button exists, the loop still
# waits a bit, for no good reason
repeat
wait a bit
until the button exists
click the button



> Putting this exit condition on the top makes no sense.

Wait until you actually start programming before deciding what makes
sense or doesn't.



--
Steven

wolfgang kern

unread,
Oct 29, 2013, 2:08:18 PM10/29/13
to

Bernhard Schornak replied to a "Flying-Bucket-post":

Methink we all know about the often not-so-logical ideas from
Buck, they merely come from an abstracted view and are far away
from todays hardware given opportunities.

OTOH, I sometimes got to think about his weird ideas, but mainly
figured that his demands are already covered by hardware but may
not have entered his Delphi/Python-HLL-world yet.
Most of the asked features may be found implemented in the C/C+-
area even just as intrisincs since a while anyway now.

__
wolfgang
(for those who dont know:
I'm a purist machine code programmer since more than 35 years)








ru...@yahoo.com

unread,
Oct 29, 2013, 4:00:07 PM10/29/13
to
On Tuesday, October 29, 2013 8:08:16 AM UTC-6, Steven D'Aprano wrote:
> On Tue, 29 Oct 2013 12:37:36 +0100, Skybuck Flying wrote:
>[...]
> Skybuck, please excuse my question, but have you ever done any
> programming at all? You don't seem to have any experience with actual
> programming languages.
>[...]
> Wait until you actually start programming before deciding what makes
> sense or doesn't.

Couldn't you have simply made your points without the above comments?
Those points stand perfectly fine on their own without the ad hominem
attack.

Steven D'Aprano

unread,
Oct 30, 2013, 6:22:14 AM10/30/13
to
Not every observation about a person is "ad hominem", let alone an
attack, even if they are uncomplimentary. You are mistaken to identify
such observations as both.

"Ad hominem" is the standard term for a logical fallacy, whereby a claim
is rejected solely because of *irrelevant personal characteristics* of
the person making the claim, rather than allowing it to stand on its own
merits. It is not an ad hominem to call somebody a pillock. It is,
however, an ad hominem to imply that *merely because they are a pillock*
their arguments must therefore be wrong.

Ad hominems:

"Henry's argument cannot be believed, as he is known to hang
around loose women, thieves and tax collectors."

"Of course George would oppose the war, he's a homosexual."

"Clearly Julie is mistaken, she's just a girl, what would
she know about programming?"


Not ad hominems:

"Susan's argument in favour of the proposal is influenced by
the fact that she will make a lot of money if it goes ahead."

"David has no experience with Oracle databases, and his advice
about Oracle technology should be taken with caution."

"Barry is a plonker. His post is good evidence of this, and
here are the reasons why..."


Skybuck's experience at programming *is relevant* to the question of
whether or not he understands what he is talking about.

If you consider that merely suggesting that somebody is not experienced
at programming counts as an attack, well, words fail me.

If you want to accuse me of anything underhanded, "poisoning the well"
would be more appropriate. At least that is in the ball-park. A cynical,
nasty-minded person [this is an example of poisoning the well] might
consider that by merely pointing out that Skybuck appears to have no
actual experience in programming, I'm trying to influence others to
reject his claims out of hand. If that's how you want to see it, I can't
stop you. On the other hand, an alternative interpretation is that by
gently reminding Skybuck that he doesn't have any real experience in the
topic he's discussing (or so it seems), he'll be encouraged to actually
learn something.

I think it is quite unfair of you to misrepresent my post as an attack,
particularly since my reply gave an example of a type of loop that
supports Skybuck's position.



--
Steven

ru...@yahoo.com

unread,
Oct 30, 2013, 10:48:55 PM10/30/13
to
On 10/30/2013 04:22 AM, Steven D'Aprano wrote:
> On Tue, 29 Oct 2013 13:00:07 -0700, rurpy wrote:
>> On Tuesday, October 29, 2013 8:08:16 AM UTC-6, Steven D'Aprano wrote:
>>> On Tue, 29 Oct 2013 12:37:36 +0100, Skybuck Flying wrote:
>>>[...]
>>> Skybuck, please excuse my question, but have you ever done any
>>> programming at all? You don't seem to have any experience with actual
>>> programming languages.
>>>[...]
>>> Wait until you actually start programming before deciding what makes
>>> sense or doesn't.
>>
>> Couldn't you have simply made your points without the above comments?
>> Those points stand perfectly fine on their own without the ad hominem
>> attack.
>
> Not every observation about a person is "ad hominem", let alone an
> attack, even if they are uncomplimentary. You are mistaken to identify
> such observations as both.
>
> "Ad hominem" is the standard term for a logical fallacy, whereby a claim
> is rejected solely because of *irrelevant personal characteristics* of
> the person making the claim [...]
>
> Skybuck's experience at programming *is relevant* to the question of
> whether or not he understands what he is talking about.

No. You claimed his proposition "made no sense" based on your
analysis of it. You then used your conclusion to claim he has
no programming experience. You can not then use that latter
claim to support the argument that his proposition makes no
sense. (That is circular.) His programming experience is a
personal characteristic, and (limiting ourself to your arguments),
can conclude inexperience only if we've already accepted your
conclusion that his proposal is nutty, so his experience seems
irrelevant to me. Hence it meets your definition of an
ad hominem argument.

Secondly, the example ad hominem argument you gave, "Clearly
Julie is mistaken, she's just a girl, what would she know about
programming?" depends on the non-validity of the logical
implication. Yet I'm sure you are aware that are some people
who would find that a valid implication and if you could not
defend it, then you would not be able to claim ad hominem.
Of course it *is* easily defendable which is why you used it
as an example. But in your reply to Skybuck, the implication
is "nutty proposal" -> inexperience. Yet we frequently see
highly educated and experienced people who support nutty ideas
all the time, things like homeopathic medicine or psychic
abilities. So I think your claim that you were not using an
ad hominem argument is weak on that ground too.

(Even if none of the above were true, I would still ask, why
shouldn't someone's opinion on a programming topic stand on
their arguments alone without regard to whether they've written
code on a physical machine?)

> If you consider that merely suggesting that somebody is not experienced
> at programming counts as an attack, well, words fail me.

You didn't "merely suggest", you claimed it to be true:

"Wait until you actually start programming before deciding
what makes sense or doesn't."

>[...]
> I think it is quite unfair of you to misrepresent my post as an attack,
> particularly since my reply gave an example of a type of loop that
> supports Skybuck's position.

It wasn't unfair because it wasn't a misrepresentation. Your
irrelevant speculation about programming experience when the
issue he brought up was constructs for loops would raise most
people's hackles who offered their opinion in good faith.

Further, quoting from his original post,

"(after having some experience with python which lacks repeat
until/goto/labels and programming game bots)"

you are also implying he is a liar. So yes, it certainly is
fair to describe your response as an attack.

Given that your speculation added nothing to the reasonable
part of your response (which as I said was perfectly fine on
it's own) and likely served only to antagonize, why add it?
(Unless of course you enjoy a good flame-fest like so many
of the resident trolls here.)

ru...@yahoo.com

unread,
Oct 30, 2013, 10:53:15 PM10/30/13
to
This is a matter of philosophy and opinion so it is way
off-topic and not something I want to continue discussing
but...

One doesn't offer courtesy in return for free software,
one offers courtesy because the other person is a human
being and with courtesy is how you'd like him to treat
you. But in the open software world we're often not
talking about demands for courtesy so much as for
deference.

The reasonable quid-pro-quo in open software is that
developers get enjoyment of producing good stuff, voluntary
respect and thanks, free feedback, bug reporting, patches.
Users get good free software. There is no need for more
than that.

Your hierarchy is particularly unappealing to me. We all
know that such hierarchies exist in the real world, but
there is a question: should they be promoted as a natural
and desirable state of society to be encouraged?

There are people like Ayn Rand who have argued they are
natural and should be encouraged. But I, having grown
up with the concepts of democracy, egalitarianism, and
individualism in which treatment I ask for I should also
extend to you, don't accept those views. In fact I
think they have a somewhat fascist odor. I don't wish
to participate in a culture or sub-culture in which such
"worth" hierarchies are promoted.

Finally, your choice of a game based on feudal medieval
standards of behavior and morality to explain your view
does not help your argument IMO.

Steven D'Aprano

unread,
Oct 31, 2013, 4:41:08 AM10/31/13
to
On Wed, 30 Oct 2013 19:48:55 -0700, rurpy wrote:

> On 10/30/2013 04:22 AM, Steven D'Aprano wrote:

>> Skybuck's experience at programming *is relevant* to the question of
>> whether or not he understands what he is talking about.
>
> No. You claimed his proposition "made no sense" based on your analysis
> of it.

I said absolutely nothing of the sort. You're making that quote up -- not
just misinterpreting what I said, or taking my words in the worst
possible way, but completely inventing things I never said. Not only did
I never say that Skybuck's proposition "made no sense", but I gave an
example of a language with a loop that does exactly what he wants, and
explicitly described as making sense:

"There is one sort of loop where it makes sense to have the loop condition
at the end. Python doesn't have such a loop, but Pascal does: the repeat
until loop."

I don't know whether to be more offended for myself, that you would
invent such a bare-faced falsehood about what I said, or for anyone else
reading this thread, that you should assume they would fail to notice
that not only did I not say what you quote me as saying, but that it is
the *opposite* of what I actually said.

I don't know whether you are deliberately lying, or whether you're just
such a careless reader that you have attributed words actually written by
Skybuck to me, but either way I expect an apology from you for putting
false words into my mouth.

As for the rest of your argument, I am not of the opinion that he is an
inexperienced programmer because his proposal is "nutty" (YOUR word, not
mine) since I don't think his proposal is completely nutty. There are use-
cases for putting the loop condition at the end. I think he is an
inexperienced programmer because of the lack of any sign in his emails
that he has any meaningful experience in programming.

As for your defence[1] of the ad hominem "Clearly Julie is mistaken,
she's just a girl, what would she know about programming?", I am not one
of those cultural relativists who thinks that any belief, no matter how
stupid, should be judged on how sincere the person expressing it is.
Regardless of how sincere they might be, they are simply *wrong*, their
argument is irrational, and it is an ad hominem fallacy. Women, even
"girls", are capable of having detailed knowledge about programming, and
there is no logical or factual reason for debating this point, any more
than we should be debating whether or not people with brown hair or flat
feet can program.


> (Even if none of the above were true, I would still ask, why shouldn't
> someone's opinion on a programming topic stand on their arguments alone
> without regard to whether they've written code on a physical machine?)

Of course their arguments stand on their merits. But those merits are
likely to be pretty slim, if their arguments are not grounded in reality.
We know what happens when "great thinkers" start philosophising without
any grounding in reality, we get Pliny the Elder who concluded that elks
have no knees, and Aristotle, who was married twice but apparently never
thought to look inside either of his wives' mouth, who maintained that
women have fewer teeth than men. And so we come back to Skybuck, who
apparently believes that the use of GOTO instead of loops makes code more
reliable and easier to maintain.




[1] To head off false accusations that I'm misrepresenting you, here for
the record are your exact words:

[quote]
Secondly, the example ad hominem argument you gave, "Clearly
Julie is mistaken, she's just a girl, what would she know about
programming?" depends on the non-validity of the logical
implication. Yet I'm sure you are aware that are some people who
would find that a valid implication and if you could not defend it,
then you would not be able to claim ad hominem. Of course it *is*
easily defendable which is why you used it as an example.
[end quote]

On the contrary, the implication that women cannot program is utterly
counterfactual and hence is indefensible. It simply isn't and cannot be
true. Even if there was not a single female programmer in the world --
and in reality there are thousands or tens of thousands -- there is
nothing in biology, chemistry, physics or abstract logic to suggest that
female Homo sapiens in this world could be inherently incapable of
programming.



--
Steven

Bernhard Schornak

unread,
Oct 31, 2013, 7:44:51 PM10/31/13
to
wolfgang kern wrote:


> Bernhard Schornak replied to a "Flying-Bucket-post":
>
> Methink we all know about the often not-so-logical ideas from
> Buck, they merely come from an abstracted view and are far away
> from todays hardware given opportunities.
>
> OTOH, I sometimes got to think about his weird ideas, but mainly
> figured that his demands are already covered by hardware but may
> not have entered his Delphi/Python-HLL-world yet.
> Most of the asked features may be found implemented in the C/C+-
> area even just as intrisincs since a while anyway now.


Oops. I am a free human, so I am a natural enemy of declarations of
quite pointless "Universal Laws" - in simple words: Plights are the
opposite of rights.


> wolfgang
> (for those who dont know:
> I'm a purist machine code programmer since more than 35 years)


Bis zum selba z'sammg'schtrickt'n ZX80 (1980) ko I grod no midhoid'n...


Pfüat'Di

Bernhard

Bernhard Schornak

unread,
Oct 31, 2013, 7:53:59 PM10/31/13
to
Skybuck Flying wrote:


>> Because it's logical.
>
> "
> What is logical?
> "
>
> To put the exit condition at the bottom is logical.


As "logical" as to put it anywhere else inside the loop body. As long as we write code
on machine language level, we are asked to choose the most efficient instruction chain
we can find. The decision where to place which instructions is up to the programmers -
not to a counter-productive "Universal Law".


> The exit condition glues the loop to the code that will be executed next which is also at the bottom.
>
> Example:
>
> Loop
>
> NextCode


Yes. As you should know, jump targets should be aligned to 32 byte boundaries to avoid
prefetch stalls. Hence, it is absolutely illogical to let a loop run into a set of NOP
instructions at the bottom of the loop's body. Therefore, we had to end each loop with
a jump to the next label to avoid the execution of a couple of extra NOP instructions.
This is as illogical as the attempt to declare some artificial restrictions as the new
Non-Plus-Ultra of programming.


> Placing the exit ondition near next code makes more sense at least in situation where I was
> programming.
>
> I will give you an example:
>
>
>
> LoopBegin( Step = 10 )
>
> if ButtonExists then
> begin
> ClickButton()
> end;
>
> LoopEnd( ButtonClicked )
>
> Execute next code...
>
> This loop waits for the button to appear, once it's found it is clicked and then the loop exits to
> continue the next code.
>
> Putting this exit condition on the top makes no sense.


Ever thought about how a compiler might translate this construct? Here are 2 partially
optimised results:

ButtonExists = bit 0 in RCX
ButtonClicked = bit 1 in RCX

...
movl $0x0A, %ebp
testl $0x01, %ecx # does button exist?
je 1f
jmp 0f

.p2align 5,,31
0:decl %ebp
je 1f
call _ClickButton
jmp 0b

.p2align 5,,31
1:orl $0x02, %ecx # button was clicked ten times...
...


Alternative:

...
movl $0x0A, %ebp
testl $0x01, %ecx # does button exist?
je 1f
jmp 0f

.p2align 5,,31
0:call _ClickButton
decl %ebp
jne 0b
jmp 1f

.p2align 5,,31
1:orl $0x02, %ecx # button was clicked ten times...
...


The code with the conditional branch at top is faster than the alternative code,
because putting calls at places used as branch target, even if properly aligned,
is punished with some penalty cycles. As the loop ends at the bottom, we have to
insert a second jump to bypass the second set of NOPs.

Placing an exit condition at the top possibly looks odd for HLL programmers, but
it's faster in many cases. Placing all exit conditions at the bottom of the loop
body can never be faster, but often will be the slower solution.

You should translate your HLL constructs into simple machine language before you
start to declare "Universal Laws" which are none.

I am still wondering why you post to alt.lang.asm if you do not accept that your
proposals are analysed and their flaws are revealed. ;)


BTW: If this button ever existed, it'll exist throughout the runtime of the loop
without disappearing. Hence, it is not necessary to query its existence in each
iteration, because it costs a lot of precious time. The best solution is the one
above - check if the button exists, then start the loop.

ru...@yahoo.com

unread,
Nov 1, 2013, 12:41:32 AM11/1/13
to
On 10/31/2013 02:41 AM, Steven D'Aprano wrote:
> On Wed, 30 Oct 2013 19:48:55 -0700, rurpy wrote:
>> On 10/30/2013 04:22 AM, Steven D'Aprano wrote:
>>> Skybuck's experience at programming *is relevant* to the question of
>>> whether or not he understands what he is talking about.
>> No. You claimed his proposition "made no sense" based on your analysis
>> of it.
>
> I said absolutely nothing of the sort. You're making that quote up -- not
> just misinterpreting what I said, or taking my words in the worst
> possible way, but completely inventing things I never said.

Yes, on rereading you are correct, you did not say his
proposition made no sense, you disagreed with him that
"putting this exit condition on the top makes no sense"
and claimed he had no business making such a statement
since he had no programming experience.
I misattributed the "no sense" quote. Please note that
that is not the same as "making something up".

> Not only did
> I never say that Skybuck's proposition "made no sense", but I gave an
> example of a language with a loop that does exactly what he wants, and
> explicitly described as making sense:
>
> "There is one sort of loop where it makes sense to have the loop condition
> at the end. Python doesn't have such a loop, but Pascal does: the repeat
> until loop."

As I said above, I read your response as disagreeing with
Skybuck's idea: that the loop test should *always* go at
the bottom.

That you agree with *sometimes* putting the test at the
bottom does not contradict that you disagreed with his
general proposition.

> I don't know whether to be more offended for myself, that you would
> invent such a bare-faced falsehood about what I said, or for anyone else
> reading this thread, that you should assume they would fail to notice
> that not only did I not say what you quote me as saying, but that it is
> the *opposite* of what I actually said.

No, it was *not* the opposite. It was an overstatement
of your position: "I think the proposition is nutty" versus
"I disagree with the proposition". Presumably if you think
a proposition is nutty or non-nonsensical you also disagree
with it and the former is a stronger version of the latter.

> I don't know whether you are deliberately lying, or whether you're just
> such a careless reader that you have attributed words actually written by
> Skybuck to me, but either way I expect an apology from you for putting
> false words into my mouth.

An apology is due when someone does some damage to things
or people (including reputation or feelings) that should
have been avoided.

My overstating your disagreement with Skybuck was inadvertent,
does not change the points I was making (it does not matter
whether you thought he was wrong or nutty) and did no
significant damage to you or your reputation.

You damage your own reputation far more by your use of
erroneous protestations, hyperpole and faux indignation [*1]
to distract from the actual issue, your implications that I
may be lying, deliberately misrepresenting and inventing
bare-faced falsehoods, and your propensity to attack others
based on unsubstantiated speculation which was the origin
of this discussion.

So I acknowledge I overstated your position, but sorry,
no apology beyond that.

Now hopefully having addressed the indignation bit we can
get back to the actual points under discussion?

> As for the rest of your argument, I am not of the opinion that he is an
> inexperienced programmer because his proposal is "nutty" (YOUR word, not
> mine) since I don't think his proposal is completely nutty. There are use-
> cases for putting the loop condition at the end. I think he is an
> inexperienced programmer because of the lack of any sign in his emails
> that he has any meaningful experience in programming.

Replacing "his proposal is nutty" with "his proposal is wrong",
what "signs" did you expect to be present beyond the fact he
advocated looping in a way you don't agree with? A CV?
As I pointed out (again missing from your quotes) he *did*
claim programing experience in his original post.

I also note your change from your original "no programming
experience" to "no meaningful programming experience".

> As for your defence[1] of the ad hominem "Clearly Julie is mistaken,
> she's just a girl, what would she know about programming?", [...]

That part was poorly written and was not intended to be a
defense of the Julie ad hominen. My intent was to acknowledge
that it was an ad hominem, show a reason why it was an ad
hominem and show that that same reason also applied to your
ad hominem attack against Skybuck. Unfortunately in a late-
night last-minute edit I screwed it up pretty badly. I
started off,

>> Secondly, the example ad hominem argument you gave, "Clearly
>> Julie is mistaken, she's just a girl, what would she know about
>> programming?" depends on the non-validity of the logical
>> implication.

When what I meant was more like,

>> Secondly, the example ad hominem argument you gave, "Clearly
>> Julie is mistaken, she's just a girl, what would she know about
>> programming?", that it is an ad hominen depends on the non-validity
>> of the logical implication.

I then tried to show you that whether someone accepts an
argument as an ad hominem or not depends on whether one accepts
the validity of the implication or not by using, as an example,
people that I thought you would know exist, if not know personally.

>> Yet I'm sure you are aware that are some people who
>> would find that a valid implication and if you could not defend it,
>> then you would not be able to claim ad hominem.

That of course makes no sense, since for you to claim it is
an ad hominem, you (being the one who presented it as an
ad hominem) need to show the implication is *invalid*, not
defend it. You would defend the claim that the whole statement
is an ad hominem. Which is what I intended to say.

Finally
>> Of course it *is*
>> easily defendable which is why you used it as an example.

Again I was thinking of the entire statement as defendable
as an ad hominem, not the logical implication within, but
that is sadly not how it came out and I can see how the
whole thing reads the the opposite of what I intended.
I will note though that had you read with a more open mind
you might have noticed something was amiss since I would
hardly be saying you would have used that as an example
if it obviously wasn't an ad hominem.

While I screwed up that explanation, the conclusion remains
the same: that an argument is an ad hominem depends on the
invalidity of the embedded implication. Your accusation of
no "programming experience" toward Skybuck is an ad hominem
despite your denial because (in addition to the personal
aspect) the implicit implication is

"his claim, 'putting the loop condition at the top is
wrong' is wrong" -> "he has no programming experience."

and that is an invalid implication, especially given the
existence of his explicit statement that he *did* have
programming experience.

I hope that explanation is a little clearer.

>[...snip uninteresting discourse on Aristotle and elk knees...]
> And so we come back to Skybuck, who
> apparently believes that the use of GOTO instead of loops makes
> code more reliable and easier to maintain.

First he never said anything about reliability or maintenance.
He said explicitly wanted goto's for error handling and to
the extent I understood him, I gather he wanted access to
low-level asm-like features from HLLs, which would be consistent
with his cross-posting to alt.lang.asm.

Also, advocating availability of goto's does not imply no
programming experience. Someone who's used goto's in Visual
Basic for error exits might want them elsewhere (not saying
it's a good idea, just that it doesn't show "no programming
experience"). Further, I have seen credible posts in this
very group that pointed out that goto might be useful in
Python in some circumstances. I myself wouldn't mind its
availability for one use: the implementation of efficient
FSMs.

So even if you add his advocacy for goto to the basis for
your conclusion he has no programming experience, it's still
not a valid conclusion and just your opinion.

To be clear: I am not defending his arguments, I am saying
that your claim that he has no programming experience is
not supported by what he wrote and added nothing to your
perfectly fine criticism of his proposition; you could
(and should) have left out those spurious claims.

----
[*1] Obviously I can't read your mind and can only speculate
whether or not you are truly as offended as you say or why.
I thought that accusing you of faux indignation for rhetorical
effect is more complementary (at least you do so skillfully)
then leaving the implication that you unjustifiably go off
the emotional wagon so easily.

Steven D'Aprano

unread,
Nov 1, 2013, 1:41:02 AM11/1/13
to
On Thu, 31 Oct 2013 21:41:32 -0700, rurpy wrote:

> On 10/31/2013 02:41 AM, Steven D'Aprano wrote:
>> On Wed, 30 Oct 2013 19:48:55 -0700, rurpy wrote:
>>> On 10/30/2013 04:22 AM, Steven D'Aprano wrote:
>>>> Skybuck's experience at programming *is relevant* to the question of
>>>> whether or not he understands what he is talking about.
>>> No. You claimed his proposition "made no sense" based on your
>>> analysis of it.
>>
>> I said absolutely nothing of the sort. You're making that quote up --
>> not just misinterpreting what I said, or taking my words in the worst
>> possible way, but completely inventing things I never said.
>
> Yes, on rereading you are correct, you did not say his proposition made
> no sense, you disagreed with him that "putting this exit condition on
> the top makes no sense" and claimed he had no business making such a
> statement

I said nothing of the sort.

Good lord Rurpy, I've already called you out once for misrepresenting
what I've said, and here you are doing it again. You didn't have the good
graces to even say sorry, instead trying to weasel out of an apology with
a feeble "acknowledge[ment] that I overstated your position", and here
you are again digging yourself deeper into the hole. That's three posts
in a row -- your original post where you characterised me as making an
"attack" on Skybuck, the second post where you escalated by attributing
words I never wrote to me, and now this one where yet again you continue
to misrepresent my post despite being called out on it.


[...]
> I am saying that your claim
> that he has no programming experience is not supported by what he wrote

I did not claim Skybuck had "no business" (your words) making such a
statement about loop conditions. Far from it, I treated his opinion as a
serious one worthy of discussion, discussing situations that both support
and contradict his idea.

I *asked him* if he had programming experience, with an explicit
question, and even began the question with the sort of social lubricant
that acknowledges that the question is a touchy one ("please excuse my
question"). I suggested that *it seems* that he doesn't have such
experience. The normal, good-faith implication of this is that I am
stating an opinion of how it seems to me, not an absolute fact. The whole
exercise was to engage Skybuck in conversation, give him a chance to
demonstrate (or at least assert) that I was mistaken about his lack of
experience, and defend or amend his claim that putting the loop condition
at the beginning of the loop makes no sense.

Unless you are prepared to discuss this in good faith, instead of
continuing to misrepresent what I say, I am done discussing this with you.



--
Steven

Steven D'Aprano

unread,
Nov 1, 2013, 3:00:29 AM11/1/13
to
On Tue, 29 Oct 2013 17:22:03 +1100, Chris Angelico wrote:

> On Tue, Oct 29, 2013 at 3:03 PM, <ru...@yahoo.com> wrote:
>> Regarding esr's "smart-questions", although I acknowledge it has useful
>> advice, I have always found it elitist and abrasive. I wish someone
>> would rewrite it without the "we are gods" attitude.
>
> I find it actually pretty appropriate. The attitude comes from a
> hierarchy in which we are not at the top - but neither is esr.

Hmmm, well it's not clear to me that ESR doesn't consider himself at the
top of any hacker hierarchy. I'm sure that he considers that there are
those who know more than him with respect to some specific technology or
other, and I'm sure he doesn't think geeks fall into organisation charts
with nice neat lines between those who report to whom. But I also think
he doesn't have the false modesty to put himself anywhere but in the top
"elite geek hacker" category.

[...]
> We're in a hierarchy (or actually
> several independent and unrelated ones), and being at the top means (in
> the open source world) being everyone's servant; and the people at the
> top simply don't have time to be _everyone's_ servant personally, so
> they need some sous-servants to help them to help people.

An interesting thought, but I wouldn't put it that way. It seems to me
that a better description would be that geeks tend to be big believers in
"giving back", or perhaps something akin to "Whiteman's Burden" that
Kipling believed in, the idea that those who have have a duty to those
who don't. Of course, the whole colonialism thing is out of favour these
days, and truth be told the idea of bringing "civilization to the
savages" was more honoured in the breach than in the observance even in
Kipling's day. But the idea that those who have more than others (be that
skills, knowledge or possessions) have a duty towards those who don't is
not a bad philosophy to live be.

If we must have hierarchies -- and alas, Homo sapiens being as it is, we
do -- it is better for those at the top to have a duty to serve as well
as privileges. That's what Heinlein was getting at with the (often
misunderstood) "Starship Troopers". Did it glorify military service? Yes
it did, but it also emphasised the *service* part. If you want the
privilege of citizenship, they you have to earn it by first serving.

But I think that *servant* is not the right description for the
relationship you are talking about. That implies that (say) I could
demand ESR's service at any time, or at least at any time within pre-
defined boundaries (even servants get days off), and that he would have
no right to refuse service. But that's not the case. He is a volunteer
who is free to say No at any time, and the quickest way to get him to say
No would be to treat him as a servant.


--
Steven

Chris Angelico

unread,
Nov 1, 2013, 4:19:24 AM11/1/13
to pytho...@python.org
On Fri, Nov 1, 2013 at 6:00 PM, Steven D'Aprano
<steve+comp....@pearwood.info> wrote:
> On Tue, 29 Oct 2013 17:22:03 +1100, Chris Angelico wrote:
>
>> On Tue, Oct 29, 2013 at 3:03 PM, <ru...@yahoo.com> wrote:
>>> Regarding esr's "smart-questions", although I acknowledge it has useful
>>> advice, I have always found it elitist and abrasive. I wish someone
>>> would rewrite it without the "we are gods" attitude.
>>
>> I find it actually pretty appropriate. The attitude comes from a
>> hierarchy in which we are not at the top - but neither is esr.
>
> Hmmm, well it's not clear to me that ESR doesn't consider himself at the
> top of any hacker hierarchy. I'm sure that he considers that there are
> those who know more than him with respect to some specific technology or
> other, and I'm sure he doesn't think geeks fall into organisation charts
> with nice neat lines between those who report to whom. But I also think
> he doesn't have the false modesty to put himself anywhere but in the top
> "elite geek hacker" category.

There are multiple independent hierarchies, and in some of them, he
may well be at (or close to) the top - but not all of them. Proper
acceptance of a hierarchical world includes knowing that there's
always someone above you.

> But I think that *servant* is not the right description for the
> relationship you are talking about. That implies that (say) I could
> demand ESR's service at any time, or at least at any time within pre-
> defined boundaries (even servants get days off), and that he would have
> no right to refuse service. But that's not the case. He is a volunteer
> who is free to say No at any time, and the quickest way to get him to say
> No would be to treat him as a servant.

It's a tricky concept to describe, and I agree that "servant" isn't an
ideal term for it. I'm the head of a (tiny) community called Minstrel
Hall, and what that means is that whenever anyone needs something
done, it's my job to do it. That's not the classic understanding of
the servant's role (the bonded man who has to do whatever he's told
immediately), but is somewhat closer to a somewhat obscure term:
servitor [1] or sizar [2]. I first met that word via Princess Ida, who
stated that her university had no such students, though Wikipedia
gives a better actual definition. The head of a community has certain
duties to perform [3] and may or may not receive respect in return.
Ultimately, if the head doesn't do his (or her, but the "his/her"
"he/she" gets tedious) duties, he'll have no community following him,
so he's responsible to his members in a very direct way.

ChrisA

[1] https://en.wikipedia.org/wiki/Servitor
[2] https://en.wikipedia.org/wiki/Sizar
[3] The quirky part of my brain is thinking now of this, sung by one
of the kings in a newly-formed republican monarchy (it makes sense in
context): http://math.boisestate.edu/gas/gondoliers/web_opera/gond12.html

Antoon Pardon

unread,
Nov 1, 2013, 8:50:30 AM11/1/13
to pytho...@python.org
Op 01-11-13 05:41, ru...@yahoo.com schreef:
> On 10/31/2013 02:41 AM, Steven D'Aprano wrote:
>
>> I don't know whether you are deliberately lying, or whether you're just
>> such a careless reader that you have attributed words actually written by
>> Skybuck to me, but either way I expect an apology from you for putting
>> false words into my mouth.
>
> An apology is due when someone does some damage to things
> or people (including reputation or feelings) that should
> have been avoided.
>
> My overstating your disagreement with Skybuck was inadvertent,
> does not change the points I was making (it does not matter
> whether you thought he was wrong or nutty) and did no
> significant damage to you or your reputation.

It seems rather obvious from Steven's reaction, your overstatement
hurt (damaged) his feelings. Since you ackowleged that damaged
feelings are cause for an apology, it seems by your own words
an apology is due.

--
Antoon Pardon

ru...@yahoo.com

unread,
Nov 1, 2013, 9:50:02 PM11/1/13
to
On 10/31/2013 11:41 PM, Steven D'Aprano wrote:
> On Thu, 31 Oct 2013 21:41:32 -0700, rurpy wrote:
>[...]
>> Yes, on rereading you are correct, you did not say his proposition made
>> no sense, you disagreed with him that "putting this exit condition on
>> the top makes no sense" and claimed he had no business making such a
>> statement
>
> I said nothing of the sort.

Steven, please stop. Trying to treat you as as an intelligent
and intellectually honest person and consistently getting crap
like this back is getting annoying.

Here is a synopsis of the post in question (quotes are direct
quotes, not paraphrase) [*1]:
Skybuck: "To put the exit condition at the bottom is logical."
You: Ask if Skybuck has "ever done any programming at all?".
You: Give example of python While loop with test at top
You: Give example of loop with test at bottom: "inappropriate" and "ugly")
You: Example of For loop with test at bottom: "silly"
You: Example of Until loop with test at bottom: "makes sense"
Skybuck: Example of loop with test at bottom.
You: Similar While loop with test at top: "better"
You: Similar Until loop with test at bottom: "I would use a while loop"
Skybuck: "Putting this exit condition on the top makes no sense."
You: "Wait until you actually start programming before deciding
what makes sense or doesn't."

I paraphrased that dialog as "you disagreed with him that
'putting this exit condition on the top makes no sense' and
claimed he had no business making such a statement".

Instead of endlessly repeating your misrepresentation charges
along with exaggerations like "nothing of the sort", why don't
you for once actually say how my paraphrase differs materially
in meaning from what was said? How would you paraphrase it?

And, how does what you said disprove my primary point: that you
stated as fact he had no programming experience when such a
statement was your speculation, not fact, and thus likely to
raise someone's hackles?

> Good lord Rurpy, I've already called you out once for misrepresenting
> what I've said, and here you are doing it again. You didn't have the good
> graces to even say sorry, instead trying to weasel out of an apology with
> a feeble "acknowledge[ment] that I overstated your position", and here
> you are again digging yourself deeper into the hole. That's three posts
> in a row -- your original post where you characterised me as making an
> "attack" on Skybuck, the second post where you escalated by attributing
> words I never wrote to me, and now this one where yet again you continue
> to misrepresent my post despite being called out on it.

Steven, in every one of those posts I explained and justified
my statements. You don't even have the decency to address
those points -- instead you simply snip them out and repeat
your same accusations over and over as though by repeating
them enough times they will magically become true.

You may think you are being clever (or perhaps it is out of
desperation to avoid admitting that your response to Skybuck
was, as I demonstrated, an unjustified ad hominem attack) but
your twisting and squirming to avoid acknowledging my points
is painfully transparent.

> [...]
>> I am saying that your claim
>> that he has no programming experience is not supported by what he wrote
>
> I did not claim Skybuck had "no business" (your words) making such a
> statement about loop conditions. Far from it, I treated his opinion as a
> serious one worthy of discussion, discussing situations that both support
> and contradict his idea.

His idea was that loop tests should always or usually be
done at the end of the loop. You discussed *nothing* that
supported that idea. You contradicted it by showing a
number of examples where you claimed testing at the top
was better.

> I *asked him* if he had programming experience, with an explicit
> question, and even began the question with the sort of social lubricant
> that acknowledges that the question is a touchy one ("please excuse my
> question"). I suggested that *it seems* that he doesn't have such
> experience. The normal, good-faith implication of this is that I am
> stating an opinion of how it seems to me, not an absolute fact.

You seem to have a very selective memory. I quoted your
concluding sentence, which you conveniently leave out
above, previously in this message. You did not "suggest"
when you said "Wait until you start programming...". Nor
is that an expression of opinion.

If you can't even tell when you're misrespresenting your
own words, how do you expect to be able to tell when someone
else does?

Why don't you just own up to what you wrote?

> The whole
> exercise was to engage Skybuck in conversation, give him a chance to
> demonstrate (or at least assert) that I was mistaken about his lack of
> experience, and defend or amend his claim that putting the loop condition
> at the beginning of the loop makes no sense.

Then perhaps you should not have ended your exercise by
telling him he had no programming experience (directly
contradicting his earlier statement that he did.)

> Unless you are prepared to discuss this in good faith, instead of
> continuing to misrepresent what I say, I am done discussing this with you.

Good faith? Is that is supposed to be a joke?

Yes, please. I have wasted enough time trying to respond
calmly, logically and honestly to your sleazy, and amusing
to no one but your fans, rhetorical gymnastics. If you can't
write with any kind of honesty or integrity, please do stop.

One last serious comment, take it or leave it:
On the off chance you actually do believe you said nothing
to Skybuck that he should be offended by, you might want
to consider that perhaps your perceptions of how you think
others should react to your words are not the same way as
others actually do.

----
[*1] https://groups.google.com/d/msg/comp.lang.python/p1E0d1UGeY8/-yNyjkagJ-MJ

ru...@yahoo.com

unread,
Nov 1, 2013, 9:51:40 PM11/1/13
to
On 11/01/2013 06:50 AM, Antoon Pardon wrote:
> Op 01-11-13 05:41, ru...@yahoo.com schreef:
>> On 10/31/2013 02:41 AM, Steven D'Aprano wrote:
>>
>>> I don't know whether you are deliberately lying, or whether you're just
>>> such a careless reader that you have attributed words actually written by
>>> Skybuck to me, but either way I expect an apology from you for putting
>>> false words into my mouth.
>>
>> An apology is due when someone does some damage to things
>> or people (including reputation or feelings) that should
>> have been avoided.
>>
>> My overstating your disagreement with Skybuck was inadvertent,
>> does not change the points I was making (it does not matter
>> whether you thought he was wrong or nutty) and did no
>> significant damage to you or your reputation.
>
> It seems rather obvious from Steven's reaction, your overstatement
> hurt (damaged) his feelings.

It it not obvious to me at all.

> Since you ackowleged that damaged
> feelings are cause for an apology, it seems by your own words
> an apology is due.

I explained why an apology was not appropriate previously.

Steven D'Aprano

unread,
Nov 1, 2013, 11:52:23 PM11/1/13
to
On Fri, 01 Nov 2013 18:50:02 -0700, rurpy wrote:

> Instead of endlessly repeating your misrepresentation charges along with
> exaggerations like "nothing of the sort", why don't you for once
> actually say how my paraphrase differs materially in meaning from what
> was said?

I have directly addressed your points three times. I did not "attack" the
OP by any reasonable definition of the word. My post was not an ad
hominem. Skybuck's experience as a programmer is relevant to the
credibility of his opinions about programming. I did not declare as a
fact that he had no experience, as you claim, but posed it as a question
and expressed it explicitly as a subjective observation.

Each time I have responded to you, I have given direct quotes and
directly addressed the substance of your posts, which is all to do with
the supposed tone of my response to the OP. Each time you have continued
to misrepresent me, misquote me, and interpret my words assuming bad
faith rather than good, in order to justify your idea that my post was an
ad hominem attack.

Including this post, where you make the false statement that:

[quote]
His idea was that loop tests should always or usually be done
at the end of the loop. You discussed *nothing* that supported
that idea.

Emphasis yours. But in fact I gave the concrete example of Pascal
repeat...until loops, which have the test at the end of the loop. So yet
again your claims are simply wrong.

This is four posts in a row now that you have wrongly represented me. I
can only conclude that you think that by repeating a lie often enough,
you'll convince others that it must be true and "win". I will no longer
play this game with you. Goodbye.

*plonk*


--
Steven

Antoon Pardon

unread,
Nov 2, 2013, 7:15:38 AM11/2/13
to pytho...@python.org
Op 02-11-13 02:51, ru...@yahoo.com schreef:
> On 11/01/2013 06:50 AM, Antoon Pardon wrote:
>> Op 01-11-13 05:41, ru...@yahoo.com schreef:
>>> On 10/31/2013 02:41 AM, Steven D'Aprano wrote:
>>>
>>>> I don't know whether you are deliberately lying, or whether you're just
>>>> such a careless reader that you have attributed words actually written by
>>>> Skybuck to me, but either way I expect an apology from you for putting
>>>> false words into my mouth.
>>>
>>> An apology is due when someone does some damage to things
>>> or people (including reputation or feelings) that should
>>> have been avoided.
>>>
>>> My overstating your disagreement with Skybuck was inadvertent,
>>> does not change the points I was making (it does not matter
>>> whether you thought he was wrong or nutty) and did no
>>> significant damage to you or your reputation.
>>
>> It seems rather obvious from Steven's reaction, your overstatement
>> hurt (damaged) his feelings.
>
> It it not obvious to me at all.

Shouldn't you be erring on the safe side? Rather issue an appology
when it may not be really needed than refuse to give one when it
may be appropiate?

>> Since you ackowleged that damaged
>> feelings are cause for an apology, it seems by your own words
>> an apology is due.
>
> I explained why an apology was not appropriate previously.

No you didn't. What you did was trying to minimize your contribution.

--
Antoon Pardon

Joshua Landau

unread,
Nov 2, 2013, 2:22:38 PM11/2/13
to Steven D'Aprano, python-list
On 1 November 2013 05:41, Steven D'Aprano
<steve+comp....@pearwood.info> wrote:
> On Thu, 31 Oct 2013 21:41:32 -0700, rurpy wrote:
>
>> On 10/31/2013 02:41 AM, Steven D'Aprano wrote:
>>> On Wed, 30 Oct 2013 19:48:55 -0700, rurpy wrote:
>>>> On 10/30/2013 04:22 AM, Steven D'Aprano wrote:
>>>>> Skybuck's experience at programming *is relevant* to the question of
>>>>> whether or not he understands what he is talking about.
>>>> No. You claimed his proposition "made no sense" based on your
>>>> analysis of it.
>>>
>>> I said absolutely nothing of the sort. You're making that quote up --
>>> not just misinterpreting what I said, or taking my words in the worst
>>> possible way, but completely inventing things I never said.
>>
>> Yes, on rereading you are correct, you did not say his proposition made
>> no sense, you disagreed with him that "putting this exit condition on
>> the top makes no sense" and claimed he had no business making such a
>> statement
>
> I said nothing of the sort.

Personally, rurpy's reading seems like a reasonable one to me. Maybe
not correct in a technical sense, but at least reasonable.

Particularly, the phrase

"Wait until you actually start programming before deciding what makes
sense or doesn't."

seems especially harsh, and would be furthermore so should Skybuck be
a professional programmer. That's a phrase easy to take badly,
especially over this medium.

Sure, you in all probability didn't mean it like that but rurpy isn't
uncalled for in raising the concern. Really I just want to remind you
that you're both on the same side here.

Mark Lawrence

unread,
Nov 2, 2013, 2:36:54 PM11/2/13
to pytho...@python.org
On 02/11/2013 18:22, Joshua Landau wrote:
> On 1 November 2013 05:41, Steven D'Aprano
> <steve+comp....@pearwood.info> wrote:
>> On Thu, 31 Oct 2013 21:41:32 -0700, rurpy wrote:
>>
>>> On 10/31/2013 02:41 AM, Steven D'Aprano wrote:
>>>> On Wed, 30 Oct 2013 19:48:55 -0700, rurpy wrote:
>>>>> On 10/30/2013 04:22 AM, Steven D'Aprano wrote:
>>>>>> Skybuck's experience at programming *is relevant* to the question of
>>>>>> whether or not he understands what he is talking about.
>>>>> No. You claimed his proposition "made no sense" based on your
>>>>> analysis of it.
>>>>
>>>> I said absolutely nothing of the sort. You're making that quote up --
>>>> not just misinterpreting what I said, or taking my words in the worst
>>>> possible way, but completely inventing things I never said.
>>>
>>> Yes, on rereading you are correct, you did not say his proposition made
>>> no sense, you disagreed with him that "putting this exit condition on
>>> the top makes no sense" and claimed he had no business making such a
>>> statement
>>
>> I said nothing of the sort.
>
> Personally, rurpy's reading seems like a reasonable one to me. Maybe
> not correct in a technical sense, but at least reasonable.
>
> Particularly, the phrase
>
> "Wait until you actually start programming before deciding what makes
> sense or doesn't."
>
> seems especially harsh, and would be furthermore so should Skybuck be
> a professional programmer. That's a phrase easy to take badly,
> especially over this medium.
>
> Sure, you in all probability didn't mean it like that but rurpy isn't
> uncalled for in raising the concern. Really I just want to remind you
> that you're both on the same side here.
>

Coming from me this is probably a classic case of pot calling the kettle
black, but how about reading the Spike Milligan story The White Flag
before this also escalates out of control.

--
Python is the second best programming language in the world.
But the best has yet to be invented. Christian Tismer

Mark Lawrence

Peter Cacioppi

unread,
Nov 2, 2013, 3:40:36 PM11/2/13
to
Mark said :

"The White Flag before this also escalates out of control. "

This word "before" ... I don't think it means what you think it means.

This thread has been off the rails for days.

Skybuck Flying

unread,
Nov 2, 2013, 3:49:27 PM11/2/13
to
For those programmers that want to write clear/understandable/less buggy
code instead of the fastest it could be interesting.

Also ultimately compilers are free to implement it they way they want it ;)
Thus freeing the programmer from strange assembler instruction orders as
usual ;)

If you ever would like to write your own compiler you are free to implement
it the way you want it and thus hopefully your assembler analysis makes
sense ;)

Bye,
Skybuck.


Chris Angelico

unread,
Nov 3, 2013, 12:17:36 AM11/3/13
to pytho...@python.org
On Sun, Nov 3, 2013 at 6:49 AM, Skybuck Flying
<Window...@dreampc2006.com> wrote:
> For those programmers that want to write clear/understandable/less buggy
> code instead of the fastest it could be interesting.

"it", without context? What could be interesting? You're not quoting
any text, so I have no idea what you're referring to. Correspondingly
in your other paragraphs.

ChrisA

Steven D'Aprano

unread,
Nov 3, 2013, 1:17:27 AM11/3/13
to
On Sat, 02 Nov 2013 18:22:38 +0000, Joshua Landau wrote:
[...]
> Sure, you in all probability didn't mean it like that but rurpy isn't
> uncalled for in raising the concern. Really I just want to remind you
> that you're both on the same side here.

Thanks for the comments Joshua, but I'm afraid I cannot agree. I gave it
a lot of thought and I cannot continue to give Rurpy the presumption of
good faith any longer. This saddens me, but that's the way it is.

I'm trying hard to give up threads like this, where people debate the
subjective tone of an email and ever more pedantic arguments about the
precise wording. Even when all participants are arguing in good faith,
they risk becoming quagmires which go nowhere in dozens of posts.


--
Steven

Antoon Pardon

unread,
Nov 3, 2013, 4:45:43 AM11/3/13
to pytho...@python.org
Op 03-11-13 06:17, Steven D'Aprano schreef:
I'm not so sure it is all in good faith. I see a lot of persons digging
in their heels and not much effort in trying to understand someone else's
point of view.

--
Antoon Pardon

ru...@yahoo.com

unread,
Nov 3, 2013, 12:46:35 PM11/3/13
to
On 11/01/2013 09:52 PM, Steven D'Aprano wrote:
>[...]
> I did not declare as a
> fact that he had no experience, as you claim, but posed it as a question
> and expressed it explicitly as a subjective observation.

This is a key point. Several of your other denials are
true only if you are right about this.

You concluded your reply to Skybuck with:

"Wait *until* you *start* programming..." [my emphasis]

The implication, that the OP does not have any programming
experience, will be clear to anyone with with even mediocre
English speaking ability. The semantic information conveyed
to the OP is the same as the statement of fact, "you have no
programming experience" and it is perfectly valid to claim
that you told the OP that he had no programming experience.

I pointed this out in nearly every email but in every one
of your responses to it, you ignore that concluding sentence
and mention *only* your initial questioning sentence to
justify your assertion that you "posed it as a question".

As an aside, you shouldn't rely on that initial question
sentence so much either -- just because something is framed
as a question does not mean its intent is not to attack:
"excuse me for asking, but are you an asshole?"
You asked, "have you *ever* done *any* programming *at all*?"
[my emphasis] which could be as easily taken as rhetorically
laying the ground for discrediting his idea as an honest
neutral question and the former interpretation is strengthened
by your concluding "wait until..." statement.

My claims of "ad hominem" and "attack" follow from the fact
that you *did* tell the OP he had no programming experience,
in direct contradiction to what he had stated, and with no
evidence to support your claim beyond the OP's opinions on
loops and goto's.

> Each time I have responded to you, I have given direct quotes and
> directly addressed the substance of your posts, which is all to do with
> the supposed tone of my response to the OP. Each time you have continued
> to misrepresent me, misquote me, and interpret my words assuming bad
> faith rather than good, in order to justify your idea that my post was an
> ad hominem attack.
>
> Including this post, where you make the false statement that:
>
> [quote]
> His idea was that loop tests should always or usually be done
> at the end of the loop. You discussed *nothing* that supported
> that idea.
>
> Emphasis yours. But in fact I gave the concrete example of Pascal
> repeat...until loops, which have the test at the end of the loop. So yet
> again your claims are simply wrong.

That was an unfortunate example for you to chose since it
directly contradicts your claims.

Read that quote again. You are a programmer. You should
understand logic. Please explain how acknowledging *one*
useful end-of-loop construct supports the idea that
/quote/
loop tests should *always or usually* be done at the end of the loop
/endquote/,
especially when you present it with long string of cases where
testing at the bottom is *not* desirable. You did not agree
with the OPs idea that the test should *always* go at the end
of the loop and I represented your opinion as such.

This was pointed out to you before yet you continue to claim
I am misrepresenting you.

> This is four posts in a row now that you have wrongly represented me. I
> can only conclude that you think that by repeating a lie often enough,
> you'll convince others that it must be true and "win".

In my preceding post, I pointed out your practice of repeating
the same discredited accusations in the the hope that repeating
them enough would somehow make them true... It is amusing to
see you lift my own words to use against me (although I used
the word "accusation" and you choose to use the word "lie" --
a difference in our standards I guess.)

I misrepresented you once, immediately acknowledged and corrected
it when you pointed it out. You have continued to accuse me of
misrepresenting you in *every* post you've made, while refusing
to respond to my request to tell me how you think you *should* be
paraphrased.

Indeed you have followed a consistent policy of falsely accusing
me of underhanded and disreputable practices, while at the same
time, often in the same sentence, engaging copiously in exactly
those same practices yourself.

> I will no longer
> play this game with you. Goodbye.
>
> *plonk*

Bye.

ru...@yahoo.com

unread,
Nov 3, 2013, 12:50:10 PM11/3/13
to
On 11/02/2013 11:17 PM, Steven D'Aprano wrote:
> On Sat, 02 Nov 2013 18:22:38 +0000, Joshua Landau wrote:
> [...]
>> Sure, you in all probability didn't mean it like that but rurpy isn't
>> uncalled for in raising the concern. Really I just want to remind you
>> that you're both on the same side here.
>
> Thanks for the comments Joshua, but I'm afraid I cannot agree. I gave it
> a lot of thought and I cannot continue to give Rurpy the presumption of
> good faith any longer. This saddens me, but that's the way it is.

Steven, "presumption of good faith" is typical of the
disingenuous remarks that have permeated your posts
in this thread.

Early on, I misrepresented you by claiming you thought
Skybuck's proposal was "nutty" rather than that you
simply and reasonably disagreed with it [*1]. I also
used the phrase "makes no sense" implying it came from
you rather than from Skybuck as it had [*2].

However in pointing my mistake out [*3], you did so
with remarks like:

"You're making that quote up"
"that you would invent such a bare-faced falsehood
"that it is the *opposite* of what I actually said
"I don't know whether you are deliberately lying"
"you're just such a careless reader"

As soon as you pointed out my mistake, I immediately
acknowledged and corrected it [*4]. You continued
with the outrage and attacks on my character.

Bad faith in my part indeed. The nice thing about
email is that there exists a record that anyone can
refer to if they want to discern the truth.

----
[*1] https://groups.google.com/d/msg/comp.lang.python/p1E0d1UGeY8/e6Xs56paZSoJ
[*2] https://groups.google.com/d/msg/comp.lang.python/p1E0d1UGeY8/yDJJER6EJiIJ
[*3] https://groups.google.com/d/msg/comp.lang.python/p1E0d1UGeY8/SwMcqPLMwjgJ
[*4] https://groups.google.com/d/msg/comp.lang.python/p1E0d1UGeY8/7fLfIxBG4UUJ

Antoon Pardon

unread,
Nov 3, 2013, 1:49:19 PM11/3/13
to pytho...@python.org
Op 03-11-13 06:17, Steven D'Aprano schreef:
> On Sat, 02 Nov 2013 18:22:38 +0000, Joshua Landau wrote:
> [...]
>> Sure, you in all probability didn't mean it like that but rurpy isn't
>> uncalled for in raising the concern. Really I just want to remind you
>> that you're both on the same side here.
>
> Thanks for the comments Joshua, but I'm afraid I cannot agree. I gave it
> a lot of thought and I cannot continue to give Rurpy the presumption of
> good faith any longer. This saddens me, but that's the way it is.

Why can't you? I think you should give Rurpy more credit. If you want
this to make a welcoming community, then you should take such remarks
seriously. You should realise that you are not in a good position to
evaluate how your words come accross because you rely on the knowledge
of your intentions. Others who don't know your intentions can reasonably
get a very different understanding of what you intended.

> I'm trying hard to give up threads like this, where people debate the
> subjective tone of an email and ever more pedantic arguments about the
> precise wording. Even when all participants are arguing in good faith,
> they risk becoming quagmires which go nowhere in dozens of posts.

So it seems you want this to be a welcoming community, as long as we don't
propose you to change your own behaviour. As soon as it is suggested you may
have to adapt your own behaviour in order to make this a welcoming community,
threads where this sort of things are discusseed in, no longer appeal to
you?

Ben Finney

unread,
Nov 3, 2013, 5:11:28 PM11/3/13
to pytho...@python.org
Antoon Pardon <antoon...@rece.vub.ac.be> writes:

> Op 03-11-13 06:17, Steven D'Aprano schreef:
> > I'm trying hard to give up threads like this, where people debate
> > the subjective tone of an email and ever more pedantic arguments
> > about the precise wording. Even when all participants are arguing in
> > good faith, they risk becoming quagmires which go nowhere in dozens
> > of posts.
>
> So it seems you want this to be a welcoming community, as long as we
> don't propose you to change your own behaviour.

We aim to be a community that always welcomes diversity of people. This
does not entail always welcoming bad behaviour.

Steven is aiming to change his behaviour to make the community more
welcoming of people: he is aiming to cease contributing to threads where
the bad behaviour is an interminable discussion of tone and pedantry.
This is, as I see it, wholly compatible with making the community more
welcoming to people, by reducing the volume of such threads.

--
\ Eccles: “I just saw the Earth through the clouds!” Lew: “Did |
`\ it look round?” Eccles: “Yes, but I don't think it saw me.” |
_o__) —The Goon Show, _Wings Over Dagenham_ |
Ben Finney

Antoon Pardon

unread,
Nov 4, 2013, 3:38:52 AM11/4/13
to pytho...@python.org
Op 03-11-13 23:11, Ben Finney schreef:
> Antoon Pardon <antoon...@rece.vub.ac.be> writes:
>
>> Op 03-11-13 06:17, Steven D'Aprano schreef:
>>> I'm trying hard to give up threads like this, where people debate
>>> the subjective tone of an email and ever more pedantic arguments
>>> about the precise wording. Even when all participants are arguing in
>>> good faith, they risk becoming quagmires which go nowhere in dozens
>>> of posts.
>>
>> So it seems you want this to be a welcoming community, as long as we
>> don't propose you to change your own behaviour.
>
> We aim to be a community that always welcomes diversity of people. This
> does not entail always welcoming bad behaviour.

But the question was whether some behaviour of steve himself was
contributing or in conflict with his aim.

> Steven is aiming to change his behaviour to make the community more
> welcoming of people: he is aiming to cease contributing to threads where
> the bad behaviour is an interminable discussion of tone and pedantry.
> This is, as I see it, wholly compatible with making the community more
> welcoming to people, by reducing the volume of such threads.

Sorry but from my side that sounds awefully convenient. When the
behaviour of others is questionable, they undermine the welcoming
atmosphere of the community. When Steves behaviour is questionable the
others are behaving badly by discussing tone and pedantry.

This is a typical: "Heads, I win, Tail, you lose" situation that is
being set up.

--
Antoon Pardon

Ben Finney

unread,
Nov 4, 2013, 4:07:00 AM11/4/13
to pytho...@python.org
Antoon Pardon <antoon...@rece.vub.ac.be> writes:

> This is a typical: "Heads, I win, Tail, you lose" situation that is
> being set up.

If you see a discussion as a zero-sum game – like a coin toss, where one
person's win can only be at the expense of someone else's loss – then I
fear this isn't going to be productive.

Suffice it to say that any number of parties can be behaving badly in a
discussion. If one person declares their choice not to continue an
unhelpful discussion, that does does not mean that they declare victory,
nor that they declare defeat. Discussions that are about “winning” or
“losing” the discussion are pretty futile in this forum anyway.

--
\ “The only tyrant I accept in this world is the still voice |
`\ within.” —Mohandas Gandhi |
_o__) |
Ben Finney

Antoon Pardon

unread,
Nov 4, 2013, 4:38:17 AM11/4/13
to pytho...@python.org
Op 04-11-13 10:07, Ben Finney schreef:
> Antoon Pardon <antoon...@rece.vub.ac.be> writes:
>
>> This is a typical: "Heads, I win, Tail, you lose" situation that is
>> being set up.
>
> If you see a discussion as a zero-sum game – like a coin toss, where one
> person's win can only be at the expense of someone else's loss – then I
> fear this isn't going to be productive.

I don't see it that way. My point is that Steve seems to work hard
creating the impression that he does see it that way. My impression
is that Steve is not that much interrested in a welcoming group as
he is interrested in a group where he himself feels at ease. Where
the two coincide, he argues for a welcoming group. Where the two
may be in conflict, he is more interested in defending his behaviour
or brushing it of than he is in contributing to a welcoming group.

> Suffice it to say that any number of parties can be behaving badly in a
> discussion. If one person declares their choice not to continue an
> unhelpful discussion, that does does not mean that they declare victory,
> nor that they declare defeat. Discussions that are about “winning” or
> “losing” the discussion are pretty futile in this forum anyway.

Unhelpful for whom? My thought is that a welcoming group is able to
resolve or a least discuss conflicts. If you declare the discussion
not helpful and see that as a reason not to continue with it, you
are IMO not contributing to such a group. With the numerous times
Steve told the rest about how he wants a welcoming group, he doesn't
seem that much interrested in actually doing an effort himself.

--
Antoon Pardon
0 new messages