how to write a tutorial

A

alex23

Daniel said:
You guys are just begging for a YHBT ;-)

Point taken :) I've noticed very few people even acknowledge his posts
at all; I'll follow the group lead and do the same.

Cheers!

- alex23
 
C

Christos TZOTZIOY Georgiou

So I can just take a copy of the tutorial to the bathroom next time.
Thanks for the tip, man!

The first day I (got) laid my eyes on the Python tutorial, I knew the
days of "Pyboy", "Pythouse" and "Python 10" were over. I'm glad that
finally others, too, really grok the "joy of Python programming".

PS I just *love* the Classes chapter centerfold. All-time classic.
 
X

Xah Lee

in my previous two messages, i've criticized the inanity of vast
majority of language documentations and tutorials in the industry. I've
used the Python tutorial's chapter on class as an example. I've
indicated that proper tutorial should be simple, covering just common
cases, be self-contained, and be example based. Documenting or covering
the language's functionalities manifest as it is. An exemplary case of
this style i've indicated is Stephen Wolfram Mathematica documentation.

Following is a tutorial on Python's classes. It is part of a
a-Python-a-day mailing list. As an example, it shows what i mean by
covering the language's functionalities as is, without needing to chalk
up to rocket sciences. If expanded slightly and edited, it can supplant
sections 9.0 to 9.4 of the Python tutorial. Languages Tutorials should
follow this style.

---------------
From: (e-mail address removed)
Subject: [perl-python] 20050124 classes and objects
Date: January 24, 2005 6:44:14 AM PST
To: (e-mail address removed)

# -*- coding: utf-8 -*-
# Python

# in Python, one can define a boxed set
# of data and functions, which are
# traditionally known as "class".

# in the following, we define a set of data
# and functions as a class, and name it xxx
©class xxx:
© "a class extempore! (^_^)"
© i=1 # i'm a piece of data
© def okaydokey(self): return "okaydokey"
© def square(self,a): return a**a

# in the following,
# we create an object, of the class xxx.
# also known as "instantiate a class".
x = xxx()

# data or functions defined in a class
# are called the class's attributes or
# methods.
# to use them, append a dot and
# their name after the object's name.
print 'value of attribute i is:', x.i
print "3 squared is:", x.square(3)
print "okaydokey called:", x.okaydokey()

# in the definition of function inside a
# class, the first parameter "self" is
# necessary. (you'll know why when you need to)

# the first line in the class definition
# is the class's documentation. It can
# be accessed thru the __doc__
# attribute.
print "xxx's doc string is:", x.__doc__

# one can change data inside the class
x.i = 400

# one can also add new data to the class
x.j=4
print x.j

# or even override a method
x.square = 333
# (the following line will no longer work)
# print "3 squared is:", x.square(3)

# in Python, one must be careful not to
# overwrite data or methods defined in a
# class.

#-----------------------

# for a obfuscated treatment with a few
# extra info, see
# http://python.org/doc/2.3.4/tut/node11.html

# in Python terminal, type help() then
# topic CLASSES to read about existing
# datatypes as classes, and classes in
# Python

# try to write a class with one data of
# integer and two functions, one
# increases it by 1, one decreases it by
# 1. note: inside a class definition,
# to refer to data inside itself use
# self. e.g. self.i
Xah
(e-mail address removed)
http://xahlee.org/PageTwo_dir/more.html
 
K

Keith Thompson

Xah Lee said:
Following is a tutorial on Python's classes.
[snip]

Please stop posting this to comp.lang.c. I'm sure the folks in most
of the other newsgroup aren't interested either -- or if they are,
they can find it in comp.lang.python.

Followups redirected.
 
C

Charlton Wilbur

XL> I've used the Python tutorial's chapter on class as
XL> an example. I've indicated that proper tutorial should be
XL> simple, covering just common cases, be self-contained, and be
XL> example based.

"Correct" is not in your list of criteria. Big surprise, that.

Followups set appropriately.

Charlton
 
T

Terry Reedy

Xah the arrogant wrote, among other things,

# one can change data inside the class
x.i = 400

# one can also add new data to the class
x.j=4
print x.j

# or even override a method
x.square = 333
# (the following line will no longer work)
# print "3 squared is:", x.square(3)

# in Python, one must be careful not to
# overwrite data or methods defined in a
# class.
--------------

However, there are several errors in the above that would mislead a Python
learner. I advise any such to ignore Xah's writings.

Terry J. Reedy
 
B

Brian van den Broek

Terry Reedy said unto the world upon 2005-01-26 14:08:
Xah the arrogant wrote, among other things,

However, there are several errors in the above that would mislead a Python
learner. I advise any such to ignore Xah's writings.

Terry J. Reedy

Hi all,

here's a thought:

There isn't any doubt that these 'tutorials' are generally unwelcome
and unhelpful. Numerous people have kindly taken the time to flag some
of the problems. So much so that any competent google of the archives
would quickly reveal the group consensus on their instructional merit.

I submit that continued corrections and advice of this sort are
counter-productive. I understand the good intentions behind the
corrections. (Indeed, my own level of Python-fu is such that it is
possible that I might have been mislead the 'tutorials' without these
corrections; I thus appreciate the correctors' efforts.) But, such
corrections are troll-food and make it unlikely that the 'game' of
posting such tutorials will soon loose its magical power to amuse the
OP. They all but ensure that there will be more such 'tutorials' to
correct.

Could we try to ignore them in the hopes that without the light of
attention they will wither, meanwhile trusting the many extant reviews
and google to do their work?

(In case it isn't obvious: none of this is intended as a criticism of
Terry or any of the others who have been 'fighting the good fight'; I
just think a change of strategy might be in order.)

Best to all

Brian vdB
 
J

Jeremy Jones

Brian said:
Terry Reedy said unto the world upon 2005-01-26 14:08:






Hi all,

here's a thought:

There isn't any doubt that these 'tutorials' are generally unwelcome
and unhelpful. Numerous people have kindly taken the time to flag some
of the problems. So much so that any competent google of the archives
would quickly reveal the group consensus on their instructional merit.

I submit that continued corrections and advice of this sort are
counter-productive. I understand the good intentions behind the
corrections. (Indeed, my own level of Python-fu is such that it is
possible that I might have been mislead the 'tutorials' without these
corrections; I thus appreciate the correctors' efforts.) But, such
corrections are troll-food and make it unlikely that the 'game' of
posting such tutorials will soon loose its magical power to amuse the
OP. They all but ensure that there will be more such 'tutorials' to
correct.

<snip>

I couldn't agree with you more. *However*, when the person posting is
self-absorbed to the extent that he doesn't realize that others exist
and don't give a crap about their wishes or discomforts, it puts you in
a "damned if you do, damned if you don't" situation. I honestly think
that we're stuck with the inane ramblings of Xah Lee regardless of
whether we feed his trolling or ignore him. But I do think that
responding to him in order to preach some sense into him is futile. He
is right about everything and can't be swayed by the likes of us mere
mortals. So, ignore him, post responses for the benefit of others out
there, entertain yourself by pointing out to yourself and others his
folly, but don't waste your time replying back to him and trying to talk
sense. Like I said, we're stuck with him.


Jeremy
 
T

Terry Reedy

[New subject line]

In response to my response to a trollish posting...
There isn't any doubt that these 'tutorials' are generally unwelcome and
unhelpful. Numerous people have kindly taken the time to flag some of the
problems. So much so that any competent google of the archives would
quickly reveal the group consensus on their instructional merit.

Yes, having advised many people to use Google, I thought it appropriate to
flag one particular section that I thought dangerous.
I submit that continued corrections and advice of this sort are
counter-productive.

I agree that 'correcting' Xah's writing is useless, and so I refrained. If
asked 'What's wrong with the part you flagged?', I would stick with my
original advice: "Ignore it".
Could we try to ignore them in the hopes that without the light of
attention they will wither, meanwhile trusting the many extant reviews
and google to do their work?

I only read that particular post because it lacked the [Perl-Python] flag
and because I was interested in the subject. Sure, now that I have added
my one and presumably only review, let's everyone stop ;-)
(In case it isn't obvious: none of this is intended as a criticism of
Terry or any of the others who have been 'fighting the good fight'; I
just think a change of strategy might be in order.)

No offense taken. My personal strategy is to read only as much of trollish
threads as I find interesting or somehow instructive, almost never respond,
and then ignore the rest. I also mostly ignore discussions about such
threads.

Terry J. Reedy
 
J

John Machin

Terry said:
No offense taken. My personal strategy is to read only as much of trollish
threads as I find interesting or somehow instructive, almost never respond,
and then ignore the rest. I also mostly ignore discussions about such
threads.

Indeed. Let's just nominate XL to the "Full Canvas Jacket" website
(http://www.ratbags.com/ranters/) and move on.
 
P

Peter Hansen

John said:
Indeed. Let's just nominate XL to the "Full Canvas Jacket" website
(http://www.ratbags.com/ranters/) and move on.

I'm not sure how reliable that site could be. After
all, it contains no articles with the words "autocoding",
"threeseas", or "rue" (other than as the French "street").

Sad, really. ;-)

(Neither has it been updated in the last two years. :-( )

-Peter
 
C

Craig Ringer

Xah Lee said:
Following is a tutorial on Python's classes.
[snip]

Please stop posting this to comp.lang.c. I'm sure the folks in most
of the other newsgroup aren't interested either -- or if they are,
they can find it in comp.lang.python.

Going by the general reaction on c.l.py, I think it'd be more accurate
if you left that at "Please stop posting".

Sorry for the cross-post, and for this "perl-python" moron who appears
to have nothing to do with either, or any knowledge of them.
 
A

axel

In comp.lang.perl.misc Xah Lee said:
Following is a tutorial on Python's classes. It is part of a
a-Python-a-day mailing list. As an example, it shows what i mean by
covering the language's functionalities as is, without needing to chalk
up to rocket sciences. If expanded slightly and edited, it can supplant
sections 9.0 to 9.4 of the Python tutorial. Languages Tutorials should
follow this style.

It is crap, not a tutorial, but just an aide-memoire for someone who
presumably knows the stuff anyway.

And keep it where it belongs please.

Axel
 
X

Xah Lee

in the doc for re module
http://python.org/doc/lib/module-re.html

4.2.2 on Matching vs Searching
http://python.org/doc/lib/matching-searching.html

Its mentioning of Perl is irrelevant, since the majority reading that
page will not have expertise with Perl regex. The whole section should
be deleted, because it only adds confusion. (later section 4.2.3 on
search and match methods plainly indicated their difference.)

(the mentioning of perl there is a combination of author masterbation,
ass kissing, and Python fanaticism. All together innocently done as
ignorance of standard authors.)

A detailed explanation of their difference or the mentioning of Perl
should be in FAQ or such material.

in section 4.2.6 Examples, there needs to be more and simple examples.
(e.g. http://xahlee.org/perl-python/regex.html.) The beginning large
section about some scaf() should be deleted for the same reason as the
Perl above.

-------------------------

in section 11.12.2 SMTP Examples
http://python.org/doc/lib/SMTP-example.html

the example given is turgid.

In a tutorial or documentation, you want to give example as short and
to the point as possible. In this case, it is illustrating how to use
smtplib, not how to preamble with nice command line interface. A better
example would be like:

import smtplib
smtpServer='smtp.yourdomain.com';
fromAddr='(e-mail address removed)';
toAddr='(e-mail address removed)';
text='''Subject: test test

Hi ...
'''

server = smtplib.SMTP(smtpServer)
server.set_debuglevel(1)
server.sendmail(fromAddr, toAddr, text)
server.quit()
Xah
(e-mail address removed)
http://xahlee.org/PageTwo_dir/more.html
 
X

Xah Lee

i've noticed that in Python official doc
http://python.org/doc/lib/module-re.html
and also How-To doc
http://www.amk.ca/python/howto/regex/

both mentions the book "Mastering Regular Expressions" by Jeffrey
Friedl.

I suggest it be dropped in both places. The mentioning of this book in
the Perl/Python community is mostly a fawning behavior and confession
that the author is among "in the know". This book and its mentioning is
a cultish behavior among OpenSource morons.

Most of the time, its mentioning as a reference is irrelevant. 99% uses
of regex are the simplest uses. Spending time to read this book of
specialization, from economy perspective, is a waste of time.
Xah
(e-mail address removed)
http://xahlee.org/PageTwo_dir/more.html
 
D

Dan Perl

Xah Lee said:
i've noticed that in Python official doc
http://python.org/doc/lib/module-re.html
and also How-To doc
http://www.amk.ca/python/howto/regex/

both mentions the book "Mastering Regular Expressions" by Jeffrey
Friedl.

I suggest it be dropped in both places. The mentioning of this book in
the Perl/Python community is mostly a fawning behavior and confession
that the author is among "in the know". This book and its mentioning is
a cultish behavior among OpenSource morons.

Most of the time, its mentioning as a reference is irrelevant. 99% uses
of regex are the simplest uses. Spending time to read this book of
specialization, from economy perspective, is a waste of time.
Xah

We should drop the olympics too. 99% of people don't practice any of those
sports at a competitive level. Who the hell does pole vaulting or throws a
javelin?

Sorry, maybe I should have posted this in the "next Xah Lee post contest"
thread.

Dan
 
A

A.M. Kuchling

Not to mention that the reference to the book in the regex howto is hardly
"fawning":

The most complete book on regular expressions is almost certainly
Jeffrey Friedl's Mastering Regular Expressions, published by
O'Reilly. Unfortunately, it exclusively concentrates on Perl and
Java's flavours of regular expressions, and doesn't contain any
Python material at all, so it won't be useful as a reference for
programming in Python. (The first edition covered Python's
now-obsolete regex module, which won't help you much.) Consider
checking it out from your library.

(I like how Lee extols Python, but also says its documentation was written
by "opensource morons". Honestly, you couldn't pay for this much
entertainment.)

--amk
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,219
Messages
2,571,117
Members
47,729
Latest member
taulaju99

Latest Threads

Top