[issue24513] decimal test version mismatch

2015-06-26 Thread Rusi

Rusi added the comment:

On Fri, Jun 26, 2015 at 4:29 PM, Stefan Krah rep...@bugs.python.org wrote:


 Stefan Krah added the comment:

 For libmpdec (and thus _decimal) I've always used the latest version
 of dectest.zip. Upgrading decimaltestdata/* will not make any difference.


Not sure Stefan what you are saying.
Under the assumption that you are addressing the apprehension of eric.smith
in the earlier bug-report http://bugs.python.org/issue24507, Eric's comment
is here reproduced:

 At least for the files in decimaltestdata, I'd be wary about changing
 them. My understanding is that these files are from the IBM decimal
 test library. I don't think we should stray from upstream here, even
 for something as simple as line endings.

 Unfortunately, the link http://www2.hursley.ibm.com/decimal from the
 file headers is no longer valid.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24513
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24507] CRLF issues

2015-06-25 Thread Rusi

Rusi added the comment:

The newest (at least newer) version seems to be http://speleotrove.com/decimal/
Top of page says:
Welcome to the General Decimal Arithmetic website, which is now hosted
at speleotrove.com. The page and file names here have not been changed
from the names used on the previous website, www2.hursley.ibm.com.

File to download is dectest.zip
All files are now CRLF
More significantly the versions are bumped up from 2.59 in the python
repo to 2.62 at this link
Needless to say there are much larger differences between these than
just CRLF :-)

On Thu, Jun 25, 2015 at 10:57 PM, Eric V. Smith rep...@bugs.python.org wrote:

 Eric V. Smith added the comment:

 At least for the files in decimaltestdata, I'd be wary about changing them. 
 My understanding is that these files are from the IBM decimal test library. I 
 don't think we should stray from upstream here, even for something as simple 
 as line endings.

 Unfortunately, the link http://www2.hursley.ibm.com/decimal from the file 
 headers is no longer valid.

The newest (at least newer) version seems to be http://speleotrove.com/decimal/
Top of page says:
Welcome to the General Decimal Arithmetic website, which is now hosted
at speleotrove.com. The page and file names here have not been changed
from the names used on the previous website, www2.hursley.ibm.com.

File to download is dectest.zip
All files are now CRLF
More significantly the versions are bumped up from 2.59 in the python
repo to 2.62 at this link
Needless to say there are much larger differences between these
versions than just CRLF :-)

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24507
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24513] decimal test version mismatch

2015-06-25 Thread Rusi

New submission from Rusi:

In http://bugs.python.org/issue24507
there was an apprehension about changing the decimal test versions.

Poking around I find that the versions in headers of files in
Lib/test/decimaltestdata refer to version 2.59 and the IBM link
http://www2.hursley.ibm.com/decimal which is dead

Whereas help(decimal) points to
http://speleotrove.com/decimal/decarith.html -- version 1.70 

http://speleotrove.com/decimal/ contains dectest.zip which is
at version 2.62

--
messages: 245835
nosy: RusiMody, eric.smith, zach.ware
priority: normal
severity: normal
status: open
title: decimal test version mismatch
versions: Python 3.5

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24513
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24507] CRLF issues

2015-06-24 Thread Rusi

New submission from Rusi:

While trying to freshly setup a CPython repo, encountered the following
CRLF issues:

Mixed file -- both LF and CRLF (line 29 LF rest CRLF)
Lib/venv/scripts/nt/Activate.ps1

Lib/test/decimaltestdata is a directory with mixed up files -- ie some CRLF 
some LF files

PCbuild/readme.txt: CRLF (explicit)
This is fine. Many of the following should (ideally/IMHO) be likewise CRLF (not 
BIN)

*.sln: CRLF but marked as BIN in hgeol

PC/example_nt/example.vcproj
Emacs shows as Dos file; But not picked up by file; maybe other such

Missing BIN pattern from .hgeol
*.pdf
Note that Doc/library/turtle-star.pdf exists
This is most likely a bug

Existent file-types with non-existent files in hgeol; Probably harmless
*.vsprops
*.mk
*.dsp
*.dsw

These seem straightforward CRLF files to me; why BIN in hgeol?
Lib/test/test_email/data/msg_26.txt
Lib/test/coding20731.py

--
components: Build
messages: 245793
nosy: RusiMody, zach.ware
priority: normal
severity: normal
status: open
title: CRLF issues
versions: Python 3.5

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24507
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue23792] help crash leaves terminal in raw mode

2015-03-27 Thread Rusi

New submission from Rusi:

Start python3.4
Do help(something) which invokes the pager
Ctrl-C
A backtrace results and after that the terminal is in raw mode even after 
exiting python

[python 3.4 under debian testing with xfce4]

--
components: IDLE
messages: 239417
nosy: RusiMody
priority: normal
severity: normal
status: open
title: help crash leaves terminal in raw mode
type: crash
versions: Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23792
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20167] Exception on IDLE closing

2014-10-09 Thread Rusi

Rusi added the comment:

Just confirming:
idle 3.4.1-1 on debian testing

Start idle3
Open recent file - some file
Close file
Close interpreter (and idle)
Get this

Exception ignored in: bound method _ComplexBinder.__del__ of 
idlelib.MultiCall._ComplexBinder object at 0x7fc53638f4e0
Traceback (most recent call last):
  File /usr/lib/python3.4/idlelib/MultiCall.py, line 244, in __del__
self.widget.unbind(self.widgetinst, seq, id)
  File /usr/lib/python3.4/tkinter/__init__.py, line 1071, in unbind
self.tk.call('bind', self._w, sequence, '')
_tkinter.TclError: can't invoke bind command: application has been destroyed
Exception ignored in: bound method _ComplexBinder.__del__ of 
idlelib.MultiCall._ComplexBinder object at 0x7fc5363b7240
Traceback (most recent call last):
  File /usr/lib/python3.4/idlelib/MultiCall.py, line 244, in __del__
self.widget.unbind(self.widgetinst, seq, id)
  File /usr/lib/python3.4/tkinter/__init__.py, line 1071, in unbind
self.tk.call('bind', self._w, sequence, '')
_tkinter.TclError: can't invoke bind command: application has been destroyed
Exception ignored in: bound method _ComplexBinder.__del__ of 
idlelib.MultiCall._ComplexBinder object at 0x7fc5363b75f8
Traceback (most recent call last):
  File /usr/lib/python3.4/idlelib/MultiCall.py, line 244, in __del__
self.widget.unbind(self.widgetinst, seq, id)
  File /usr/lib/python3.4/tkinter/__init__.py, line 1071, in unbind
self.tk.call('bind', self._w, sequence, '')
_tkinter.TclError: can't invoke bind command: application has been destroyed
Exception ignored in: bound method _ComplexBinder.__del__ of 
idlelib.MultiCall._ComplexBinder object at 0x7fc5363b79b0
Traceback (most recent call last):
  File /usr/lib/python3.4/idlelib/MultiCall.py, line 244, in __del__
self.widget.unbind(self.widgetinst, seq, id)
  File /usr/lib/python3.4/tkinter/__init__.py, line 1071, in unbind
self.tk.call('bind', self._w, sequence, '')
_tkinter.TclError: can't invoke bind command: application has been destroyed

--
nosy: +RusiMody

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20167
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20167] Exception on IDLE closing

2014-10-09 Thread Rusi

Rusi added the comment:

On Fri, Oct 10, 2014 at 8:46 AM, Terry J. Reedy rep...@bugs.python.org wrote:

 Terry J. Reedy added the comment:

 I verified that problem had returned on Windows as well.  It would be good to 
 have a test that would fail if the tcl error message changed again.

 --
 resolution: fixed -
 stage: needs patch - test needed
 versions: +Python 3.5

It is failing again!!

Version 3.4.1-1:  checked that removing that space makes the error go away.
Then saw that there is a new version 3.4.2~rc1-1 (almost certainly not
containing your change) in the debian repos.

Upgrading to that has made the error return!

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20167
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20167] Exception on IDLE closing

2014-10-09 Thread Rusi

Rusi added the comment:

On Fri, Oct 10, 2014 at 8:49 AM, Rustom Mody rustompm...@gmail.com wrote:
 On Fri, Oct 10, 2014 at 8:46 AM, Terry J. Reedy rep...@bugs.python.org 
 wrote:

 Terry J. Reedy added the comment:

 I verified that problem had returned on Windows as well.  It would be good 
 to have a test that would fail if the tcl error message changed again.

 --
 resolution: fixed -
 stage: needs patch - test needed
 versions: +Python 3.5

 It is failing again!!

 Version 3.4.1-1:  checked that removing that space makes the error go away.
 Then saw that there is a new version 3.4.2~rc1-1 (almost certainly not
 containing your change) in the debian repos.

 Upgrading to that has made the error return!

By which I meant to say not that it has 'returned'
But that its there in 3.4.2 as well

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20167
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



Re: How to use the method loadtxt() of numpy neatly?

2013-12-20 Thread rusi
On Friday, December 20, 2013 11:18:53 AM UTC+5:30, chao dong wrote:
 HI, everybody. When I try to use numpy to deal with my dataset in the style 
 of csv, I face a little problem.

 In my dataset of the csv file, some columns are string that can not 
 convert to float easily. Some of them can ignore, but other columns I need to 
 change the data to a enum style.

 for example, one column just contain three kinds : S,Q,C. Each of them 
 can declare one meaning, so I must convert them to a dict just like {1,2,3}

What does dict like {1,2,3} mean??

On recent python thats a set
On older ones its probably an error.
So you can mean one of:
1. Set([1,2,3])
2. List: [1,2,3]
3. Tuple: (1,2,3)
4. Dict: {S:1, Q:2, C:3}
5. An enumeration (on very recent pythons)
6. A simulation of an enum using classes (or somesuch)
7. Something else


 Now the question is, when I use numpy.loadtxt, I must do all things above 
 in just one line and one fuction. So as a new user in numpy, I don't know how 
 to solve it.

I suggest you supply a couple of rows of your input
And the corresponding python data-structures you desire
Someone should then suggest how to go about it

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Newbie question. Are those different objects ?

2013-12-20 Thread rusi
On Friday, December 20, 2013 8:46:31 PM UTC+5:30, dec...@msn.com wrote:
 y = raw_input('Enter a number:')
 print type y
 y = float(raw_input('Enter a number:'))
 print type y

 I'm assuming that y is an object. I'm also assuming that the second and the 
 first y are different objects because they have different types.

You are also assuming that the two horizontal lines sometimes called 'equals'
have something to do with something called by the same name in math -- equations

Lets unassume that and rewrite the code

1. y ! raw_input('Enter a number:')
2. print type y
3. y ! float(raw_input('Enter a number:'))
4. print type y 

Now read that 1 as first, 2 as second etc and read the '!' as 'MAKE'.
(It may help to shout it)

Now what was your question?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Newbie question. Are those different objects ?

2013-12-20 Thread rusi
On Friday, December 20, 2013 9:30:22 PM UTC+5:30, Mark Lawrence wrote:
 On 20/12/2013 15:34, rusi wrote:
  On Friday, December 20, 2013 8:46:31 PM UTC+5:30, dec...@msn.com wrote:
  y = raw_input('Enter a number:')
  print type y
  y = float(raw_input('Enter a number:'))
  print type y
  I'm assuming that y is an object. I'm also assuming that the second and 
  the first y are different objects because they have different types.
  You are also assuming that the two horizontal lines sometimes called 
  'equals'
  have something to do with something called by the same name in math -- 
  equations

 A good point.  Shall I write a PEP asking for a language change which 
 requires that that stupid = sign is replaced by a keyword reading 
 something like 
 thenameonthelefthandsideisassignedtheobjectontherighthandside ?

Good idea. Only you were beaten to it by about 2 decades.

The language ABC calls it 'put' and corrects the unnecessary gratuitous
right to left order.
Reference
http://homepages.cwi.nl/~steven/abc/qr.html#COMMANDS

Examples
http://homepages.cwi.nl/~steven/abc/types.html

And what does that have to do with python?
http://www.onlamp.com/lpt/a/2431
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-19 Thread rusi
 On Thursday, December 19, 2013 9:46:26 AM UTC+5:30, Roy Smith wrote:
   rusi  wrote:

   Soon the foo has to split into foo1.c and foo2.c.  And suddenly you need 
   to
   understand:
   1. Separate compilation
   2. Make (which is separate from 'separate compilation')
   3. Header files and libraries and the connection and difference

  It's pretty common here to have people ask questions about how import 
  works.  How altering sys.path effects import.  Why is import not finding 
  my module?  You quickly get into things like virtualenv, and now you've 
  got modules coming from your source tree, from your vitualenv, from your 
  system library.  You need to understand all of that to make it all work.

 Yes agreed. Python is far from stellar in this regard.
 Just as distutils got into the core at 2.3(??) now at 3.3 
 virtualenv(+pip+wheel)
 is getting in. Belated but better late than never.

  None of that is specific to C.  Virtually any language (including 
  Python) allows a program to be split up into multiple source files.  If 
  you're running all but the most trivial example, you need to know how to 
  manage these multiple files and how the pieces interact.

 Thats a strange thing to say.  In the abstract every language that
 allows for significant programs supports separate units/modules.

 Somewhere those units will map onto system entities -- usually though
 not always files (think of PL-SQL inside Oracle).

 Even assuming files, the lines drawn between interior (to the language)
 and exterior (OS-facing) are vastly different.

 C, Pascal, Python, Java, SML, APL -- all very different in this regard.

Just adding this:
Different languages do their modularizing and packaging differently (what I 
earlier said) in order to achieve different tradeoffs.

Here's a thread by a competent programmer who switched from Lisp to C++.
https://groups.google.com/forum/#!topic/ledger-cli/Mjky9AvrRKU
He clearly says that while he loves Lisp the language, its packaging facilities
lost out to C++ and so he rewrote his whole app in C++.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-18 Thread rusi
On Tuesday, December 17, 2013 4:42:07 PM UTC+5:30, Oscar Benjamin wrote:
 On 17 December 2013 00:39, rusi wrote:
  I had a paper some years ago on why C is a horrible language *to teach with*
  http://www.the-magus.in/Publications/chor.pdf

 Thanks for this Rusi, I just read it and it describes very well what I
 think about our own C course. My choice quote from the beginning would
 be When the irrelevant becomes significant, the essentials become
 obscured and incomprehensible.

 (BTW is there any reason that the document is repeated twice in the same pdf?)

Thanks for the heads-up -- some pdf generation issues I guess

Is it ok now?

Yeah I could clean up some more formatting some more but its 25 years now and
Ive forgotten my troff!!

More important the tone is not what I would use today.
The point I was trying to make then was:

C is an unsuitable language to TEACH PROGRAMMING WITH because it fills
students' brains with irreleventia

Once one knows the stuff, C is a NEAT programming language.

IOW its a question of learning-curve not the content.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-18 Thread rusi
On Wednesday, December 18, 2013 8:53:54 PM UTC+5:30, Ethan Furman wrote:
 On 12/18/2013 12:18 AM, Steven D'Aprano wrote:
  On Tue, 17 Dec 2013 22:49:43 -0500, Paul Smith wrote:
  On Wed, 2013-12-18 at 01:33 +, Steven D'Aprano wrote:
  On 12/17/2013 04:32 PM, Roy Smith wrote:
  You never have to wonder what the
  lifetime of an object is,
  Since C isn't object oriented, the lifetime of objects in C is, um, any
  number you like. The lifetime of objects in some language with no
  objects is ONE MILLION YEARS!!! is as good as any other vacuously
  true statement.
  The implication that only an object oriented language could have a
  concept of object lifetimes is false.
  Only object-oriented languages have *objects*. C does not have objects,
  it has values.

 The word 'object' has many more meanings than the one implied by Object 
 Oriented Programming, as you well know.

  And yes, I'm being pedantic.

 No, you're being an ass.

Is this discussion REALLY happening...???  In a non-programmer/layman forum it
would be completely normal

However given that we are supposedly a programmer list I am incredulous

Here is some innocuous looking python code:

A

def draw_helper(canvas, level, p1, p2, p3):
if level == 1:
canvas.create_polygon(p1, p2, p3)
else:
p4 = midpoint(p1, p2)
p5 = midpoint(p2, p3)
p6 = midpoint(p1, p3)
draw_helper(canvas, level - 1, p1, p4, p6)
draw_helper(canvas, level - 1, p4, p2, p5)
draw_helper(canvas, level - 1, p6, p5, p3)


And here is what happens when you run it

B

http://homes.cs.washington.edu/~reges/python/sierpinski8.png
(More here http://homes.cs.washington.edu/~reges/python/)

Can you really say that what you see in B you can infer from A
WITHOUT RUNNING IT??

The above is the subject that is technically called 'complexity' in
math terms. If we allow the term 'complex' to be more general (like
the argument about 'object') then this becomes the pain and beauty,
the mystery and horror of programming -- seemingly trivial code when
seen as a PROGRAM can endlessly evolve into unimaginable complexity
when elaborated into a PROCESS.

So when Chris/Roy are talking of the simplicity of C's lifetime rules they
are talking of the primitive building blocks to make and understand
program-texts.

And when Steven/Devin are talking of the complexity of the same they are
talking of the arcane results that emerge when those programs run.

And from here its a small step to understand why python's slightly
more complicated semantics result in so much less complexity than
C's seemingly simple rules: C has a double complexity generator --
stack + heap vs python only having a 'managed' heap.

Analogously if the Sierpinsky triangle above were flattened into 1-d
there would be nothing to note about it.

Like python: Boring 'weenie' language... Never segfaults
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-18 Thread rusi
On Thursday, December 19, 2013 7:10:53 AM UTC+5:30, Roy Smith wrote:
  Grant Edwards wrote:
  I've always felt that there are features in C that don't make a lot of
  sense until you've actually implemented a compiler -- at which point
  it becomes a lot more obvious why some thing are done certain ways.

 Example?

 I suspect what you mean is, There are some things that don't make sense 
 until you understand computer architecture.

One way of rephrasing what Grant is saying is:
You cannot be a C programmer without being a system programmer

This certainly includes machine (hardware) architecture.

But it includes much else besides, which can generally be subsumed under
the rubric toolchain

A python programmer can write foo.py and run:
$ python foo.py

A C programmer writes foo.c and has to run the sequence:
$ gcc foo.c
$ a.out

So far the difference looks minimal. However it does not stop here.
Soon the foo has to split into foo1.c and foo2.c.  And suddenly you need to
understand:

1. Separate compilation
2. Make (which is separate from 'separate compilation')
3. Header files and libraries and the connection and difference

Now if youve taught a few classes you will know what a hell each of these is.
In particular, every C teacher struggles with:
stdio.h is the standard library

And all this has not yet touched the labyrinths of linker errors with
the corresponding magic spells called ranlib, nm etc

Got past all this kid-stuff?
Now for the Great Initiation into Manhood -- autoconf

So...

Is all this core computer science?
Or is it the curiosities of 40 year old technology?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-18 Thread rusi
On Thursday, December 19, 2013 6:19:04 AM UTC+5:30, Rhodri James wrote:
 On Tue, 17 Dec 2013 15:51:44 -, Wolfgang Keller wrote: 
  The only issue for me was to figure out how to do in C what I already
  knew in Pascal. And I had to waste a *lot* more time and mental effort
  to mess with that language than it took for me to learn *both* the
  basics of programming per se *and* Pascal in the first class at my home
  university.

 It's sounds like you made, and are carrying on making, one of the classic  
 mistakes of software engineering: you're trying to write one language in  
 the style of another.  It is possible to write C code as if it were  
 Pascal, but it's a painful process and it won't be pretty.  It's far  
 better to use a language as it is rather than as you want it to be.

Yes but the reverse is also true: Sometimes the best code in language
L is first conceptualized in design-language D and then 'coded' into
L.

When we were students D was called 'flow-charts'
Gone out of fashion today and replaced by UML.

Now I expect the majority on this list to not care for UML.
However the idea of a separate design language is not negated by the fact
that UML is overkill and silly.

eg Saw this (on the Erlang mailing list)
In some Australian university (in the 90s) 2 sems of Cobol was
replaced by 1 sem Scheme + 1 sem Cobol.  Students learnt more Cobol in
the second arrangement than in the first. [Note: 'More Cobol' not 'More
Programming']

Now if you were to ask those *students* I would expect similar
emotions towards Cobol as Wolfgang is expressing towards C.
That is however a separate issue :D
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-18 Thread rusi
On Thursday, December 19, 2013 9:46:26 AM UTC+5:30, Roy Smith wrote:
  rusi  wrote:

  Soon the foo has to split into foo1.c and foo2.c.  And suddenly you need to
  understand:
  1. Separate compilation
  2. Make (which is separate from 'separate compilation')
  3. Header files and libraries and the connection and difference


 It's pretty common here to have people ask questions about how import 
 works.  How altering sys.path effects import.  Why is import not finding 
 my module?  You quickly get into things like virtualenv, and now you've 
 got modules coming from your source tree, from your vitualenv, from your 
 system library.  You need to understand all of that to make it all work.

Yes agreed. Python is far from stellar in this regard.
Just as distutils got into the core at 2.3(??) now at 3.3 virtualenv(+pip+wheel)
is getting in. Belated but better late than never.

 None of that is specific to C.  Virtually any language (including 
 Python) allows a program to be split up into multiple source files.  If 
 you're running all but the most trivial example, you need to know how to 
 manage these multiple files and how the pieces interact.

Thats a strange thing to say.  In the abstract every language that
allows for significant programs supports separate units/modules.

Somewhere those units will map onto system entities -- usually though
not always files (think of PL-SQL inside Oracle).

Even assuming files, the lines drawn between interior (to the language)
and exterior (OS-facing) are vastly different.

C, Pascal, Python, Java, SML, APL -- all very different in this regard.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-18 Thread rusi
On Thursday, December 19, 2013 10:20:54 AM UTC+5:30, Mark Lawrence wrote:
 On 19/12/2013 04:29, rusi wrote:
  On Thursday, December 19, 2013 6:19:04 AM UTC+5:30, Rhodri James wrote:
  On Tue, 17 Dec 2013 15:51:44 -, Wolfgang Keller wrote:
  The only issue for me was to figure out how to do in C what I already
  knew in Pascal. And I had to waste a *lot* more time and mental effort
  to mess with that language than it took for me to learn *both* the
  basics of programming per se *and* Pascal in the first class at my home
  university.
  It's sounds like you made, and are carrying on making, one of the classic
  mistakes of software engineering: you're trying to write one language in
  the style of another.  It is possible to write C code as if it were
  Pascal, but it's a painful process and it won't be pretty.  It's far
  better to use a language as it is rather than as you want it to be.
  Yes but the reverse is also true: Sometimes the best code in language
  L is first conceptualized in design-language D and then 'coded' into
  L.
  When we were students D was called 'flow-charts'
  Gone out of fashion today and replaced by UML.
  Now I expect the majority on this list to not care for UML.
  However the idea of a separate design language is not negated by the fact
  that UML is overkill and silly.
  eg Saw this (on the Erlang mailing list)
  In some Australian university (in the 90s) 2 sems of Cobol was
  replaced by 1 sem Scheme + 1 sem Cobol.  Students learnt more Cobol in
  the second arrangement than in the first. [Note: 'More Cobol' not 'More
  Programming']
  Now if you were to ask those *students* I would expect similar
  emotions towards Cobol as Wolfgang is expressing towards C.
  That is however a separate issue :D

 If C is such a crap language, what does it says for the thousands of 
 languages that never got anywhere?  Or did C simply have a far larger 
 sales and marketing budget? :)

Are you addressing that to me?
[Assuming you are a good boy who does not use GG-crap and knows the laws
of snipping and attributing I am taking it so :D ]

No I am not in the 'C-is-crap' camp.  Very far into the opposite actually.

What would you say to someone who says:
- food is crap to eat
- air is crap to breathe

C is crap technology is analogous.

If you are using python its likely CPython. Whats the C there?
If you are connected to the net the modem likely runs a linux. Coded in?

I am an Luddite -- dont touch computers.
Right. The car I drive probably has embedded chips... Embeded linux.

No Amish/Luddite is not enough to say No! to C
You'd have to be completely isolated from every connection with modern
civilization.

So python programmers employ the 'black-cat' squad of GvR and gang to shield
us from C.  Because they are good at it we can afford to ignore it.

No, No C is no option.
The only option is at how many removes we keep away from it.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-17 Thread rusi
On Tuesday, December 17, 2013 9:51:07 PM UTC+5:30, larry@gmail.com wrote:
 On Tue, Dec 17, 2013 at 10:35 AM, Mark Lawrence wrote:
  I was in charge of the team at work that had to make all code Y2K compliant.
  I discovered the one bug that to my knowledge slipped through the net.  Four
  years later back at the same place on contract I fixed the fix!!!

  From around 1997 till 2000 all I did was fix Y2K bugs. I'm pretty
  sure I got them all. For one client I fixed well over 200. After
  the new  year came and nothing broke, the owner of the company
  said You made  such a big deal about this Y2K stuff, and it
  turned out not to be a  problem at all.

Hahaha -- Very funny and serious.  Ive been actually experienced being
kicked out of job for writing decent working code and not making a big
deal of it.

Comes back the start of the thread -- What do we teach students?
Should we teach how to write the best possible code and as effortlessly
as possible?  Or should we also teach how to make a fuss, how to pretend
to (over)work while actually (under)delivering?

In a Utopia this would not be a question at all.
But we dont live in Utopia...

[And there are languages WAY better than C... C++ for example]
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: New to Python, Help to get script working?

2013-12-17 Thread rusi
On Tuesday, December 17, 2013 4:35:31 PM UTC+5:30, Mark wrote:
 I am sorry, using google groups i cant tell what you see...
 Anyways, I guess i will just make lots of lines instead of long sentences?

 How about this, the first person that can get this to work for me...
 I will paypal them 20 dollars for helping me.
 I just want to get this thing up and going.
 Ive posted where i am having trouble and got 2 replies talking about 
 spacing...
 and not fixing any issues or giving advice.

 Either that or somebody who thinks they might be able to help, can you plz 
 reply?

I believe you were given a suggestion by Steven on posting a traceback
Did you follow that?  (Genuine question!!)
Because if you did and it got lost in the characteristic 'GG-crap' you would
not know that it had been 'crapified' by GG and others would not know that
there was anything to read in the mess.

So... assuming youve understood the following:

1. Read and follow https://wiki.python.org/moin/GoogleGroupsPython
2. Read and follow Steven's advice on how to ask help especially regarding 
errors
3. Try to minimize external links to code especially small snippets

maybe best to just start a new thread???
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-17 Thread rusi
On Tuesday, December 17, 2013 8:21:39 PM UTC+5:30, Neil Cerutti wrote:
 On 2013-12-17, Steven D'Aprano wrote:
  I would really like to see good quality statistics about bugs
  per program written in different languages. I expect that, for
  all we like to make fun of COBOL, it probably has few bugs per
  unit-of-useful-work-done than the equivalent written in C.

 I can't think of a reference, but I to recall that
 bugs-per-line-of-code is nearly constant; it is not language
 dependent. So, unscientifically, the more work you can get done
 in a line of code, then the fewer bugs you'll have per amount of
 work done.

Enter the (One-Liner) Dragon!

http://www.youtube.com/watch?v=a9xAKttWgP4

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: seeking a framework to automate router configurations

2013-12-17 Thread rusi
On Wednesday, December 18, 2013 8:10:20 AM UTC+5:30, Frank Cui wrote:
 Hi Pythoners,
 I'm looking for a tool or framework in which I can do a slight modification to
 achieve the following task:
 Asynchronously reset a large number of cisco routers back to their original
 configurations and push prepared initial configurations to them
 I did find some similar existing work such as exscript and trigger, however
 I was stuck in the following two problems :
 1. telneting to a non-default port number (other than 23)
 2. handling of customized banner messages.
 can you give some hints on this ? 

For the low level details (exscript/trigger) I dont know.
However for the higher level organization issues you may want to look at

1. cuisine
http://stackful-dev.com/cuisine-the-lightweight-chefpuppet-alternative

which uses

2. fabric http://docs.fabfile.org/en/1.8/

And maybe
3. tox http://tox.readthedocs.org/en/latest/
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Logger module in python

2013-12-17 Thread rusi
On Wednesday, December 18, 2013 8:52:11 AM UTC+5:30, smileso...@gmail.com wrote:
 Hi,
   I am a newbie in python. I am looking for a existing module which I can 
 import in my program to log the objects to a file?

 I know there is a module Data::Dumper in perl which dumps the objects to 
 file. But not sure about python.

Assuming you are looking for a serialization format:
If efficiency, easily-at-hand, standard are important then
pickle better than json better than yaml

If however readability of the output (as the word 'log' suggests) is desired
its the other way round: yaml is the most readable, pickle is utterly unreadable
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: min max from tuples in list

2013-12-16 Thread rusi
On Sunday, December 15, 2013 9:11:15 AM UTC+5:30, Tim Roberts wrote:
 Dennis Lee Bieber wrote:
 Well performant is performant enough for the purposes of communicating
 on the python list I think :D
  Most probably could figure it out as being stylistically similar to
 conformant = something that conforms
 performant = something that performs

 Yes, I suspect it comes from people expecting too much consistency.  If
 something that has conformance is conformant, then something that has
 good performance must be performant.

And things that have consistency are of course...

consistant

(not consistent)
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-16 Thread rusi
On Tuesday, December 17, 2013 5:58:12 AM UTC+5:30, Ned Batchelder wrote:
 On 12/16/13 3:32 PM, Wolfgang Keller wrote:
  And ever after that experience, I avoided all languages that were
  even remotely similar to C, such as C++, Java, C#, Javascript, PHP
  etc.
  I think that's disappointing, for two reasons. Firstly, C syntax isn't
  that terrible.
  It's not just the abysmally appalling, hideously horrifying syntax. At
  about everything about C is just *not* made for human beings imho.

 I've never heard C syntax reviled quite so intensely.  What syntax do 
 you like, out of curiosity?

I had a paper some years ago on why C is a horrible language *to teach with*
http://www.the-magus.in/Publications/chor.pdf

I believe people did not get then (and still dont) that bad for
- beginner education (CS101)
- intermediate -- compilers, OS, DBMS etc
- professional software engineering

are all almost completely unrelated
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: [newbie] Saving binaries in a specific way

2013-12-16 Thread rusi
On Tuesday, December 17, 2013 5:00:14 AM UTC+5:30, Djoser wrote:
 Basically I have a .dat file, so I get some numbers and make a different 
 conversion.
 
 I'll try this struct script. I'm not used to it, but it seems to do what I 
 want.

Construct is a very powerful utility for binary parsing and building
https://pypi.python.org/pypi/construct
http://construct.readthedocs.org/en/latest/

Though for your currently stated purpose struct should be enough
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: New to Python, Help to get script working?

2013-12-16 Thread rusi
On Tuesday, December 17, 2013 1:55:57 AM UTC+5:30, Mark wrote:
 I am sorry if the way I posted messages was incorrect. Like I said, I am new 
 to google groups and python quite a bit but i am trying to do things 
 correctly by you guys. The errors that I am getting were not necessarily 
 posting traceback messages.

Thats better -- thanks

You still need to go through
https://wiki.python.org/moin/GoogleGroupsPython

See the length of your I am sorry... line above
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-16 Thread rusi
On Tuesday, December 17, 2013 6:14:59 AM UTC+5:30, Chris Angelico wrote:
 On Tue, Dec 17, 2013 at 11:39 AM, rusi wrote:
  I had a paper some years ago on why C is a horrible language *to teach with*
  http://www.the-magus.in/Publications/chor.pdf
  I believe people did not get then (and still dont) that bad for
  - beginner education (CS101)
  - intermediate -- compilers, OS, DBMS etc
  - professional software engineering
  are all almost completely unrelated

 Yes. In esr's essay on becoming a hacker[1] he says:

 There is perhaps a more general point here. If a language does too
 much for you, it may be simultaneously a good tool for production and
 a bad one for learning.

There is this principle by Buchberger called the Black-box White-box
principle 
Unfortunately I can only find mathematicians talking about it
http://www.math.rutgers.edu/~zeilberg/Opinion65.html
and no CS-ists/programmers.

eg
To teach OS, minix is better than linux
To use, linux is better
FreeBSD may be a good middle point. It may also be a bad middle point --
practically too hard to use or study.  Which is why in practice separating
teaching tools from professional ones is better than thrashing about using
the same for both

 Definitely true, though I think it has exceptions.

 [1] http://www.catb.org/esr/faqs/hacker-howto.html

Yeah As esr says python is an exception
And even here as it progresses it becomes more professional and less educational
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Comparing values of counter in python 3.3

2013-12-15 Thread rusi
On Monday, December 16, 2013 7:29:31 AM UTC+5:30, alex23 wrote:
  # Need to compare values of counter and reject in function/routine in value 
  in counter2 is higher then value in counter1 for a current key

  [(k,Counter2[k]) for k in Counter2 - Counter1]

Why not just?

Counter2 - Counter1

And if you want to uncounterify it then
dict(Counter2 - Counter1)

 Counters are awesome.

Yes -- agreed. But 'counter' is a strange name -- after checking whether
'bag' and 'multiset' are there in the library, I would not think to
check anything else.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Comparing values of counter in python 3.3

2013-12-15 Thread rusi
On Monday, December 16, 2013 8:10:57 AM UTC+5:30, Roy Smith wrote:
  rusi  wrote:

  On Monday, December 16, 2013 7:29:31 AM UTC+5:30, alex23 wrote:
# Need to compare values of counter and reject in function/routine in 
value in counter2 is higher then value in counter1 for a current key
[(k,Counter2[k]) for k in Counter2 - Counter1]
  Why not just?
  Counter2 - Counter1
  And if you want to uncounterify it then
  dict(Counter2 - Counter1)
   Counters are awesome.
  Yes -- agreed. But 'counter' is a strange name -- after checking whether
  'bag' and 'multiset' are there in the library, I would not think to
  check anything else.

 Bag and multiset are names only CS weenies would think to look for.  
 Counter is the name for the rest of us :-)

Weenie? WEENIE?!? Harrumph! Im offended!! wink

More seriously: One issue with all the new good stuff --
comprehensions, generator expressions, dict comprehensions etc is that
the motivations/explanations are all couched imperatively.

So
1.

[something(v) for v in lst]

is understood as
2.

newlst = []
for v in lst:
  newlst.append(something(v))

and so the comprehension is just a one-liner for the for-loop
[Witness Mark's comments earlier that the for loop is more readable]

If instead the comprenension is seen as a programmers equivalent of the
set theory expression

3.

{something(v) | v ∈ lst }  # if the unicode gods deign to allow!

then they would be more easily appreciated and used.

The extreme example of this is that the implementation of
comprehensions were and continue to be wrong because of variable
leakage because 1 is equivalenced to 2 rather than 3.

To come back to the topic: Counter suggesting DO-ing counting
whereas  bag/multiset suggests BE-ing with counts;
ie the one sounds imperative, the other declarative

(which of course may mean its a CS-weenie speaking!)
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: a question about list as an element in a tuple

2013-12-15 Thread rusi
On Monday, December 16, 2013 9:27:11 AM UTC+5:30, Chris Angelico wrote:
 On Mon, Dec 16, 2013 at 2:30 PM, liuerfire Wang  wrote:
  TypeError: 'tuple' object does not support item assignment
  In [5]: a
  Out[5]: ([1, 1], [])
  no problem, there is an exception. But a is still changed.
  is this a bug, or could anyone explain it?

 It's not a bug, but it's a bit confusing. Here's what happens. The
 augmented assignment operator += triggers an in-place addition (where
 possible; for lists, it's possible), so the original list will be
 changed:

  a = [1]
  b = a
  a += [2]
  b
 [1, 2]

 Whereas using separate assignment and addition creates a new list:

  a = a + [3]
  a
 [1, 2, 3]
  b
 [1, 2]

 To handle both mutable types (like list) and immutable ones (like
 str), the augmented assignment operators have to be able to choose
 whether or not they change their object:

  a = 1
  b = a
  a += 2
  b
 '1'
  a
 '12'

 So what happens under the hood is, more or less:

 a += [2]
 # ... is equivalent to ...
 a = a.__iadd__([2])

 Which can be explored interactively:

  a = [1]
  a.__iadd__([2])
 [1, 2]
  a
 [1, 2]

 The __iadd__ function (in-place add) returns the new result, and in
 the case of the list, that's done by changing the list. The assignment
 is then done, which does nothing here, but with strings, is the
 critical part of the job. So far, so good.

 Now, when that result gets assigned to the tuple, we have a problem.
 Tuples are immutable - can't change length (no appending), and can't
 assign to elements. So when the final step happens, an exception is
 thrown. At that point, the tuple is complaining Hey, you can't assign
 to me!, but the list has already done the appending, and it's too
 late to undo that. So the list has changed, and when you go look at
 it, you see the change (since the list is the same whether you find it
 from the tuple or somewhere else), which creates the confusing
 situation of throwing an exception after doing exactly what you
 wanted.

 Python exceptions aren't like SQL errors, causing a rollback of the
 whole transaction. Or, more generally, Python expressions and
 statements aren't transactional. So it's entirely possible, if a
 little confusing, for part of a job to happen. Let's take another
 example that has side effects:

 tup = (1,2,3)
 tup[2] = input(Enter something: )   # use raw_input() in Python 2

 Tuple assignment can't work... but it's fairly clear that this
 _should_ still show the prompt and wait for the user to type
 something, and only throw the exception later on. It's not as obvious
 in the augmented assignment example, but both are actually doing the
 same thing.

 Hope that helps!

Heh!
Nice question... even nicer explanation!!

I thought I knew that imperative programming is a bad idea:
http://blog.languager.org/2012/11/imperative-programming-lessons-not.html

Never cease to be surprised how bad an idea it is!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: CP65001 fails (was re: ...)

2013-12-14 Thread rusi
On Sunday, December 15, 2013 4:21:08 AM UTC+5:30, Steven D'Aprano wrote:
 Apart from annoying the bystanders, your repeated angry and abusive 
 screeds aimed at JMF in particular but others as well over minor 
 formatting issues is more disruptive than the issues you are complaining 
 about. I am grateful to you for taking the time and effort to write up a 
 wiki page on fixing this issues, but gratitude for that will only go so 
 far in forgiving disruptive behaviour.

I guess you are talking about
https://wiki.python.org/moin/GoogleGroupsPython

As you will see
https://wiki.python.org/moin/GoogleGroupsPython?action=info

most of the edits there are by rurpy and the recent ones
(sorry I missed putting comments) which are for a more automatic solution
are by me.

[No I am not asking for 'gratitude'... just sayin' and giving some context]

There was this ridiculous guy Jonas
https://mail.python.org/pipermail/python-list/2013-October/658671.html

who responded to calls to correct the typical GG mess with more and more
exceptional rudeness
https://mail.python.org/pipermail/python-list/2013-October/658816.html

So I thought to myself: Well this is too much!
And yet while the rudeness is indefensible the technical grumble:
I'm not going to go deleting newlines is not.

Hell! Rather than making a socio-eco-politco-anthropo-marxist-feminist
mess, why dont we fix a technical problem technically??

To me all this GG complaining sounds like some elderly mom-pop-uncle
who weeps/coaxes/moans/pleads/grumbles/ about a fused light bulb,
rather than climbing on a stool and changing the bloody thing.

So, given that I am a programmer I came up (with some tips from Kushal
Kumaran?) with a technical solution.  If I were an ace programmer (can
learn JS in a day and make useful contributions) it would have been a
0-click solution.  [And if I were a super-ace, it would have been a
beneficient virus, that would comb the net, discover all GG users and
self-install without anyone's knowing] Since I am not ace or super-ace
but only a humble programmer (like Dijkstra!) its a 2-click solution
that needs installation :-;

Still, GIVEN THE CONTEXT -- addressing not anyone but an already-GG
user who is clueless about the nuisance he's causing -- I think this
solution is easiest to all.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: CP65001 fails (was re: ...)

2013-12-14 Thread rusi
On Sunday, December 15, 2013 10:30:12 AM UTC+5:30, Steven D'Aprano wrote:
 I'm sorry, I was under the impression that Mark had done most of the 
 work. I hadn't realised that others had contributed most of the practical 
 advice.

To be fair, I added the stuff to the wiki on Mark's prompting.
Earlier was under the impression that not anyone could edit the wiki.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: request for guidance

2013-12-14 Thread rusi
On Saturday, December 14, 2013 10:41:09 AM UTC+5:30, David Hutto wrote:

 Don't get me wrong, I didn't mean reinventing the wheel is a bad
 thing, just that once you get the hang of things, you need to
 display some creativity in your work to set yourself apart from the
 rest.

 Nowadays, everyone's a programmer.

 If it weren't for reinventing the wheel, then we wouldn't have
 abs(antilock breaking systems), or new materials, or different
 treading for water displacement or hydroplaning.

 The point was just to try something in python, and to 'boldly go
 where no 'man' has gone before'.  Just to remind her that it's not
 just about python, but what you can accomplish with it, and
 distinguish yourself from others.

To complement what David is saying, programmers need to know
programming but a lot else besides in order to become even minimally
productive. eg

Primary Development tools/aids

   1. Help
   2. Interpreter-CLI
   3. Interpreter-Introspection
   4. Editor
   5. Completion ('intellisense')
   6. Tags (navigation)
   7. Refactoring
   8. Integration with 'non-programming' below


Other Development Tools
   1. Debugger
   2. Profiler
   3. Heap Profiler
   4. Coverage

Non-Programming

 Area | Tool(s)  
--+--
 packaging| distutils, setuptools
  | pip
  | Native tools (eg apt)
 versioning   | hg, git, bzr 
 multiple pythons | virtualenv   
 automation   | tox  
 testing  | unittest, nose, pytest
 build| scons, make...   
 deployment   | fabric   

Yeah I know this can sound a bit intimidating :-)

In actual practice most active developers need to know about 30% of the above

But you need to know which is your 30% ;-)

PS. Yeah you can say Im just a teacher trying to justify my job!!  On
the other side, for years I argued with the authorities that a 3 year
CS degree could be reduced to 6 months.

But I dont think it could be reduced to 6 days... or even 6 weeks
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: request for guidance

2013-12-13 Thread rusi
On Friday, December 13, 2013 10:45:22 AM UTC+5:30, jennifer stone wrote:
 greetings

 I am a novice who is really interested in contributing to Python
 projects. How and where do I begin?

Good to see new names!

How much python do you know/studied/coded?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-13 Thread rusi
On Friday, December 13, 2013 10:13:11 PM UTC+5:30, Chris Angelico wrote:
 On Sat, Dec 14, 2013 at 3:39 AM, Mark Lawrence  wrote:
  You'll have to wait until the cows come home on two counts.  One, he's never
  yet provided any evidence to support any statement that he's ever made here.
  Second, he's still not smart enough to stop sending double spaced google
  crap.

 I don't know that it's a matter of not being smart enough. It's just
 as likely to be a deliberate choice, as that method of posting ensures
 that the quality of the style matches the quality of the substance.

Correlates? Ok
Ensures??   Citation needed
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: [newbie] trying socket as a replacement for nc

2013-12-13 Thread rusi
On Friday, December 13, 2013 5:50:03 PM UTC+5:30, Jean Dubois wrote:
 Op vrijdag 13 december 2013 09:35:18 UTC+1 schreef Mark Lawrence:

  Would you please read and action this 
  https://wiki.python.org/moin/GoogleGroupsPython to prevent us seeing the 
  double line spacing that accompanied the above, thanks.
  -- 

  Mark Lawrence

 Dear Mark,
 I'm sorry for the inconvenience my postings may have caused. I now have
 followed
 the instructions on the link you mentioned and installed the plugin en
 python-script.

Thanks for cooperating

 hope it worked (I saw the text light up yellow when pressing the edit-key a 
 second time). A small suggestion from a newbie: it would perhaps be possible
 to make the script check itself whether pyhon2 or python3 should be used?

Yes... Half way
The double-spacing problem is cured
However the long-lines remain (see your hope it worked... above)
Did you click the edit button both before and after your typing?

The 'before' should remove the double-spaced (old ...) lines
The 'after' should even out the right margins of what you've just typed

 thanks for having patience with me

Yes and you too please bear with us as we iron out this little irritant niggle

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: [newbie] trying socket as a replacement for nc

2013-12-13 Thread rusi
On Friday, December 13, 2013 5:50:03 PM UTC+5:30, Jean Dubois wrote:
 to make the script check itself whether pyhon2 or python3 should be used?

As far as I know both (2 and 3) worked
Do you have some reason to suspect one works and other not?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: min max from tuples in list

2013-12-13 Thread rusi
On Friday, December 13, 2013 11:58:51 AM UTC+5:30, Robert Voigtländer wrote:
 I've heard the term used often.  It means something like, performs 
 well or runs fast.  It may or may not be an English word, but that 
 doesn't stop people from using it :-) 

  If google can be used to mean make huge amouts of money with a 
  product that is inherently flawed then I'll happily accept performant 
  as an English word, regardless of whether the English variant is UK, US, 
  Australian, New Zealand, Soth African, Geordie, Glaswegian or any other :)

 Indeed it's not an english word. I have to stop using it. In German
 it's used with the meaning of runs fast. Even though it's already
 not that clearly defined there.

 Thanks for the help on the topic of data aggregation. It helped a
 lot and I again learned somthing.  I have a performant .. well
 .. fast running solution now.

Well performant is performant enough for the purposes of communicating
on the python list I think :D
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: request for guidance

2013-12-13 Thread rusi
On Saturday, December 14, 2013 10:41:09 AM UTC+5:30, David Hutto wrote:
 Don't get me wrong, I didn't mean reinventing the wheel is a bad thing, just 
 that once you get the hang of things, you need to display some creativity in 
 your work to set yourself apart from the rest.
 Nowadays, everyone's a programmer.
 If it weren't for reinventing the wheel, then we wouldn't have abs(antilock 
 breaking systems), or new materials, or different treading for water 
 displacement or hydroplaning. 
 The point was just to try something in python, and to 'boldly go where no 
 'man' has gone before'.
 Just to remind her that it's not just about python, but what you can 
 accomplish with it, and distinguish yourself from others.

 On Fri, Dec 13, 2013 at 11:56 PM, Chris Angelico ros...@gmail.com wrote:
 On Sat, Dec 14, 2013 at 3:48 PM, David Hutto dwight...@gmail.com wrote:
  In my opinion, a novice always tries to reinvent the wheel. Take for example
  a simple text editor.

 Which isn't a bad thing. Especially in that particular case, it's good
 to try your hand at writing a text editor - most of the hard
 grunt-work is done for you (just plop down an edit control - in some
 toolkits you can even deploy a control with full source code
 highlighting), so you can focus on figuring out what it is that makes
 yours different. And then you'll appreciate other editors more :) But
 along the way, you'll learn so much about what feels right and what
 feels wrong. And maybe you can incorporate some of your own special
 unique features into whatever editor you end up using... quite a few
 are scriptable.


For the young-n-enthu Make haste slowly! is usually good advice
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Need help with file object

2013-12-12 Thread rusi
On Friday, December 13, 2013 9:59:25 AM UTC+5:30, Unix SA wrote:
 s=open('/tmp/file2')

snipped

s.write(line)

Among other things you are missing a write mode 

(2nd optional argument to open)

http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Optimizing list processing

2013-12-12 Thread rusi
On Friday, December 13, 2013 8:31:37 AM UTC+5:30, Steven D'Aprano wrote:

 I don't know of any reasonable way to tell at runtime which of the two 
 algorithms I ought to take. Hard-coding an arbitrary value 
 (if len(table)  500) is not the worst idea I've ever had, but I'm 
 hoping for something more deterministic which can be cheaply calculated 
 at runtime.

Have you seen guppy and heapy?

http://guppy-pe.sourceforge.net/

Even if you dont use it directly, it should have syscalls that you can steal
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: grab dict keys/values without iterating ?!

2013-12-11 Thread rusi
Reordering to un-top-post.

 On 11.12.2013 06:47, Dave Angel wrote:
  On Wed, 11 Dec 2013 02:02:20 +0200, Tamer Higazi  wrote:
  Is there a way to get dict by search terms without iterating the 
  entire
  dictionary ?!
  I want to grab the dict's key and values started with 'Ar'...
  Your wording is so ambiguous that each respondent has guessed 
  differently.
  I'm guessing that you want all key/value pairs for which the key 
  begins with the two letters 'Ar' I'm guessing further that your 
  objection to iterating the entire dictionary is not code size but 
  performance.
  If both assumptions are valid then I'll point out that a dict has no 
  ordering to it. If you want an approach that doesn't iterate over the 
  entire structure you'll need to store the data differently.  For 
  example if you stored all the keys in a sorted list you could use bisect.



On Wednesday, December 11, 2013 3:37:08 PM UTC+5:30, Tamer Higazi wrote:
 Hi Dave!

 You were absolutely right.
 I don't want to iterate the entire dict to get me the key/values

 Let us say this dict would have 20.000 entries, but I want only those 
 with Aa to be grabed.
 Those starting with these 2 letters would be only 5 or 6 then it would 
 take a lot of time.

 In which way would you prefer to store the data, and which functions or 
 methods would you use effectively to accomplish this task ?


The classic data structure for this is the trie:
General idea: http://en.wikipedia.org/wiki/Trie
In python:
http://stackoverflow.com/questions/11015320/how-to-create-a-trie-in-python/


 I deeply apologize of not defining the question more defined. English is 
 not my mother tongue.
 I'll do my best next time.

English no issue.

But better not to top-post
http://en.wikipedia.org/wiki/Posting_style#Top-posting
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Is there any advantage to using a main() in python scripts?

2013-12-11 Thread rusi
On Wednesday, December 11, 2013 7:47:34 PM UTC+5:30, Roy Smith wrote:
  JL  wrote:

  Python scripts can run without a main(). What is the advantage to using a 
  main()? Is it necessary to use a main() when the script uses command line 
  arguments? (See script below)
  #!/usr/bin/python
  import sys
  def main():
  # print command line arguments
  for arg in sys.argv[1:]:
  print arg
  if __name__ == __main__:
  main()

 No, it's not necessary, but it's a good idea.

 For one thing, it lets you import your script without actually running 
 it.  We recently tracked down a long-standing bug where some maintenance 
 script we had started out with:

 import os
 os.environ['DJANGO_SETTINGS_MODULE'] = 'whatever'

 somebody imported that script in another part of the system because 
 there was some convenient definition that he wanted to reuse.  
 Unfortunately, the act of importing the script changed the environment!

 The fix was to move the setting of the environment variable to inside 
 the main() routine.  If you always follow the rule that you always put 
 all your executable code inside main(), you'll never run into problems 
 like that.

I guess these are important but somewhat advanced considerations.

For a beginner, its important to get that there is a bit of a pun here:
The function habitually called 'main' may be called that or anything else
It can have or not have an argument as Ben pointed out -- maybe more than 
one also.

The module name __main__ is however sacrosanct and hardwired into python.
The habit of connecting the one with the other is partly conventional and
partly unavoidable
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-11 Thread rusi
On Wednesday, December 11, 2013 5:16:50 PM UTC+5:30, Oscar Benjamin wrote:
 The Electrical Engineering students will subsequently do low-level
 programming with registers etc. but at the earliest stage we just want
 them to think about how algorithms and programs work before going into
 all the hardware specific details.

 While reading around this subject I found this interesting (although
 verbose) speech from Dijkstra advocating the opposite point of view:
 http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html

 This definitely wouldn't work for my students but a friend of mine
 studied CS (at Warwick?) and his course worked as Dijkstra describes.
 In the first year they don't touch a real programming language or
 write any actual programs. They take exams in pseudocode and formal
 proofs of correctness. Then after a year of studying algorithms,
 linguistics, semantics, proof, mathematics and so on they write their
 first hello world program in a real programming language. I don't
 really know whether he's any good at programming but he's certainly a
 good mathematician.

A government form -- say for filing income tax -- and poetry may both
be in English but one doesn't read them with the same attitude!

Dijkstra talks in so much hyperbole that one does not take him
literally.  In particular if you want to take him seriously, you must
not take him literally.  [I remember reading somewhere that in CS
arrogance is measured in nano-dijkstras]

I believe there is a truth in the line that Chris and Gene take of
getting students' hands dirty early.
Equally there is truth in Dijkstra's line that students need the habit
of thinking and reflecting before diving in.

Now if you believe that one is clearly more important than the other,
your way is clear.

However what if you want to balance both? Its a challenge...

It is this need to balance that makes functional programming attractive:

- implemented like any other programming language
- but also mathematically rigorous

No python is not strictly a functional language but it can be bent to seem
that way more than C/C++/Java/what-have-you
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: grab dict keys/values without iterating ?!

2013-12-11 Thread rusi
On Wednesday, December 11, 2013 8:16:12 PM UTC+5:30, Roy Smith wrote:
  rusi  wrote:

  The classic data structure for this is the trie:
  General idea: http://en.wikipedia.org/wiki/Trie
  In python:
  http://stackoverflow.com/questions/11015320/how-to-create-a-trie-in-python/

 I agree that a trie fits the problem description well.  If I were coding 
 this up in C or C++, that's probably the data structure I'd use, with 
 each node containing an array of pointers to nodes, and the array 
 indexed by the ascii value of the next character (this doesn't translate 
 well to unicode).  Lookup speed would be awesomely fast.

 The problem is, that doesn't make a whole lot of sense in Python.  The 
 cited implementation uses dicts at each level.  By the time you've done 
 that, you might as well just throw all the data into one big dict and 
 use the full search string as the key.  It would be a lot less code, and 
 probably run faster.

 Still, as an exercise in learning about a useful (and under-appreciated) 
 data structure, implementing this as a trie sounds like a wonderful idea.

I was going to say that Steven's

data = {}
for c in ABCDEFGHIJKLMNOPQRSTUVWXYZ:
data[c] = {} 

is really the first step of the trie approach

except that instead of 

key = Aardvark
data[key[0]][key] = some value

he would need 
data[key[0]][key[1:] = some value

The catch is keys of length 1 eg A
Which makes the fully general (recursively unfolded) version easier
to write, though with all those zillions of dicts probably not very efficient.

Finitizing the trie into fixed small prefixes with leaves containing standard 
dicts looks sensible (to me without and testing of either efficiency or 
readability!)

The short prefix problem however remains

Of course there are other tricks possible:
If we know that the data is case-insensitive alphabetic ASCII* we can just 
normalize the data with 

def norm(s): return [ord(c.upper()) -ord('A') for c in s]

then
 norm(aBcD)
[0, 1, 2, 3]

and instead of dicts we can use 26-length lists

* O me O my! Ive used the terrible A-word!
Now RUN before the trolls get us!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-11 Thread rusi
On Wednesday, December 11, 2013 8:54:30 PM UTC+5:30, Chris Angelico wrote:
 On Thu, Dec 12, 2013 at 1:44 AM, rusi wrote:
  It is this need to balance that makes functional programming attractive:
  - implemented like any other programming language
  - but also mathematically rigorous

 Attractive *to the mathematician*. A more imperative style makes sense
 to someone who's grown up with... well, parents...

 clean_room()
 eat_dinner()

 One won't start till the other finishes.

Yes its always like that:
When you have to figure 2 (or 10) line programs its a no-brainer that
the imperative style just works.

When the ten becomes ten-thousand, written by a nut who's left you with
code whose semantics is dependent on weird dependencies and combinatorial
paths through the code you start wishing that

- your only dependencies were data dependencies
- Explicit is better than implicit dinned into the nut's head

which BTW are the basic tenets of FP.

We have functions in C, in Scheme and in Haskell. The difference is that

- in C its impractical and unrealistic to have all functions as
  (mathematical) functions of the arguments
- in Scheme its natural but not enforced
- in Haskell its enforced

The nice thing about python is that one can (kindof) teach it in the
Scheme-like way before showing the C-like side.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-11 Thread rusi
On Wednesday, December 11, 2013 9:31:42 PM UTC+5:30, bob gailer wrote:
 On 12/11/2013 3:43 AM, Chris Angelico wrote:
  When you tell a story, it's important to engage the reader from the
  start...explain This is how to print Hello World to the
  console and worry about what exactly the console is (and how
  redirection affects it)
 Highly agree. I was once given FORTRAN course materials and an 
 assignment to teach this course. The first morning was spent on how to 
 construct expressions! No context as to what a program was or what it 
 might do or how to run it.

 As soon as that class was over I rewrote the materials so the first 
 morning was how to write and run(batch job submission) a program that 
 read a record, did a simple  calculation and wrote the results.

Kernighan and Ritchie set an important first in our field by making
Hello World their first program.

People tend to under-estimate the importance of this:
Many assumptions need to be verified/truthified/dovetailed
starting from switching on the machine onwards for this to work.

And its quite a pleasurable sense of achievement when it finally holds 
together -- something which is sorely missing in the Dijkstra approach.

However when we have an REPL language like python, one has the choice
of teaching the hello-world program as:

print (Hello World)

or just

Hello World

The second needs one more assumption than the first, viz that we are in the
REPL, however on the whole it creates better habits in the kids.

[BTW: From the theoretical POV, imperative programming is 'unclean' because
of assignment statements.  From the practical POV of a teacher, the 
imperativeness of print is a bigger nuisance in students' thinking patterns
]

 I certainly felt better about teaching this way.

 Asides:

 One student (PhD in Physics) looked at X = X + 1 and said no it doesn't.

Yes thats one issue in most modern imperative languages that the older 
generation
(Pascal-family) did not have, viz that assignment looks like equality.

 Another wrote his first program. I took one look at it and saw the 
 mistakes. I explained how to walk thru the program step by step. He 
 exclaimed In that much detail?.

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Disable HTML in forum messages (was: Movie (MPAA) ratings and Python?)

2013-12-11 Thread rusi
On Thursday, December 12, 2013 6:42:42 AM UTC+5:30, Ben Finney wrote:
 Dan Stromberg writes:

  I found a remove formatting button in gmail's composer, and used it
  on this message. Does this message look like plain text?

 Still sent with an HTML part, so some other change must be needed to
 disable that.

  There isn't a lot of e-mail programs that don't do HTML anymore.

 Many of the better mail clients allow the user to explicitly stop
 rendering HTML (but still have it available, as Steven points out).

 Disabling HTML in messages is a good idea: HTML rarely adds anything
 useful to a message in a discussion forum, but it can cause the mail
 program to do actions unwanted by the user (e.g. fetch images from
 elsewhere, or run ECMAScript, or invoke HTML rendering bugs).

When you click on send/reply in gmail, there's a small down-triangle
next to the dustbin, inside which you will find a plain text option

The problem is that then your other mails (may) become plain text and
your friends/recipients will wonder whether you've entered a time-machine
and gone back to 1990!!

Many people find it simpler to just use Google groups.  It also has its
problems (as do all methods!) but in sum its the easiest option to use.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-11 Thread rusi
On Thursday, December 12, 2013 7:12:32 AM UTC+5:30, Roy Smith wrote:
  rusi  wrote:

  Kernighan and Ritchie set an important first in our field by making
  Hello World their first program.

 Yup.

  People tend to under-estimate the importance of this:
  Many assumptions need to be verified/truthified/dovetailed
  starting from switching on the machine onwards for this to work.

 At the time that they wrote it, very few people who used computers ever 
 got anywhere near the power switch :-) But, the point is valid.  To get 
 Hello, world to print, you've got to figure out a lot of stuff.  
 Predating the whole agile movement by two decades, it is the 
 quintessential MVP.  It compiles and runs.  The rest is just adding 
 features and fixing bugs.

Which comes back full-circle to where we started: if

main() { printf(Hello World\n); }

is the foundation on which other programs are built, then later excising
the print(f) is a significant headache -- at least for teachers as Steven
also seems to have found.

If instead the print was presented more as a 'debug' -- when something
goes wrong stick a probe in there and figure the problem -- then
leaving it there would be as unacceptable as a car mechanic giving you
your keys with the hood open and parts lying around.

Anecdote about the great mathematician Gauss: He was asked why
his writings were so devoid of motivations/explanations. He answered:
Do you leave the scaffolding after the building is built?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Trouble with Multi-threading

2013-12-11 Thread rusi
On Thursday, December 12, 2013 7:30:38 AM UTC+5:30, Roy Smith wrote:
 In article Steven D'Aprano  wrote:

  When did this forum become so intolerant of even the tiniest, most minor 
  breaches of old-school tech etiquette? Have we really got nothing better 
  to do than to go on the war path over such trivial issues? Out of five 
  responses to the Original Poster's email, there was *one* helpful reply, 
  followed by no fewer than four people playing Stacks on the n00b making 
  the same comment about being unable to delete the message. I'm sure all 
  four of you think you are ever such wits, but you're only half right.

 I believe I started off the chain of responses you're referring to.  I 
 meant it semi-humorously, but also with a point.  It is clear it turned 
 out to be harmful, and for that I apologize.

Sniping at someone -- especially a newcomer -- for a piece of technical
irrelevantia is unfortunate. However your semi-humorous pointing out
was good because it shows that all posting methods have their hiccups:

html mail
undesired and nonsensical footers
reply/reply-all mixups
repeated posts
long and double-spaced lines
others Ive missed

Reminds me that sometime ago when GG was habitually double-posting,
Steven started quadruple-posting, giving some of us a rare leg-pulling
opportunity :D

 I share your dismay at where this group is going, and feel bad that I 
 inadvertently moved it further in that direction.

Unnecessary and uncalled for irascibility is of course a degradation.

But (from my pov) a bunch of people -- especially so-called techies --
unable to distinguish the following 3 is a much bigger degradation.

1 Problems caused by conscious malefic intent
2 Kids/noobs/ignoramuses/immature just being themselves
3 Problems of communication technology

Conflating 1,3 with 2 will drive many of them (2s) away which is a
significant loss for the community
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: interactive help on the base object

2013-12-10 Thread rusi
On Tuesday, December 10, 2013 3:07:36 PM UTC+5:30, Mark Lawrence wrote:
 On 10/12/2013 05:16, rusi wrote:
  On Tuesday, December 10, 2013 10:40:27 AM UTC+5:30, Steven D'Aprano wrote:
  By the way, I'm curious. Why are discussions about object oriented coding
  off-topic to Python? This is not a rhetorical question.
  Well OOP on the python list is certainly on topic.
  Interminable discussions about why redrawing the inheritance arrows
  the other way round will save the world is OT (for me!)

 One of the great joys of reading this list is how wonderfully OT it can 
 get.  I have the right to make this statement as I started *THIS* 
 thread.  Now what *WERE* we talking about? :)


My boy, I see that you are making progress towards your guru -- Nikos.

You are spamming MY THREAD
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-10 Thread rusi
On Tuesday, December 10, 2013 4:12:53 PM UTC+5:30, Oscar Benjamin wrote:
 On 9 December 2013 19:57, Terry Reedy  wrote:
  On 12/9/2013 7:23 AM, Oscar Benjamin wrote:
  Hi all,
  I work in a University Engineering faculty teaching, among other
  things, programming. In our last meeting about improving our teaching
  syllabus and delivery we've identified the first year programming
  courses as an area where there is room for improvement and we're
  considering (mainly on my suggestion) switching to using Python as the
  first programming language that we use to introduce our students to
  programming. I'm interested to know if anyone can share experience of
  a similar situation or can point to any case studies about this.
  A few years ago, MIT switched from Scheme (which I believe originated at
  MIT) to Python for its first course. There might faculty blogs discussing
  the reasons.

 Thanks Terry. The best I've found is this:
 http://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/

There's this
http://danweinreb.org/blog/why-did-mit-switch-from-scheme-to-python
which seems to have died -- the internet archive has it here
https://web.archive.org/web/20120429151818/http://danweinreb.org/blog/why-did-mit-switch-from-scheme-to-python

Neither really talks of why python was chosen

In that direction you may want to see why Java has been ousted from CMU:
http://existentialtype.wordpress.com/2011/03/15/teaching-fp-to-freshmen/
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Problem when applying Patch from issue1424152 to get https over authenticating proxies working with urllib2 in Python 2.5

2013-12-10 Thread rusi
On Tuesday, December 10, 2013 9:52:47 PM UTC+5:30, Mark Lawrence wrote:
 On 10/12/2013 15:48, rurpy wrote:
  On 12/10/2013 06:47 AM, Chris Angelico wrote:
  On Wed, Dec 11, 2013 at 12:35 AM,  harish.barvekar wrote:
  Also: You appear to be using Google Groups, which is the Mos Eisley of
  the newsgroup posting universe. You'll do far better to instead use
  some other means of posting, such as the mailing list:
  Using Google Groups is also fine.  I and many other posters here
  use it.  Chris and some others here dislike Google Groups and want
  everyone to not use it, but that is their personal opinion.
  If Google Groups is most convenient for you please feel free to
  continue using it.  You might want to take a look at this page
  which describes how to reduce some of things that annoy people
  like Chris:
 https://wiki.python.org/moin/GoogleGroupsPython

 There is no you might want to about it.  There are two options here, 
 either read and action the page so we don't see double spaced crap 
 amongst other things, use another tool, or don't post.

There are 10 kinds of people in the world: those who understand 
binary and those who dont.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-09 Thread rusi
On Monday, December 9, 2013 5:53:41 PM UTC+5:30, Oscar Benjamin wrote:
 Hi all,

 I work in a University Engineering faculty teaching, among other
 things, programming. In our last meeting about improving our teaching
 syllabus and delivery we've identified the first year programming
 courses as an area where there is room for improvement and we're
 considering (mainly on my suggestion) switching to using Python as the
 first programming language that we use to introduce our students to
 programming. I'm interested to know if anyone can share experience of
 a similar situation or can point to any case studies about this.

1 Some Background
=

  Early in my teaching career - 1988 -- I experienced what it means to
  switch from Pascal to Scheme to teach programming. And in 2002 I
  swtiched to using python.  I may talk a bit about this but before
  that…


2 Some Philosophical Context


  Some years ago I read in a book (I think it was called Heart of
  Philosophy) about the difference between 'ideas' and 'concepts.'
  Ideas are large vague touchy-feely things like freedom, love, justice
  etc; things that matter but poets deal with better than intellectuals.
  Concepts are the basic currency for an academic.  In a typical 1-hour
  class you deal with a few and in a lifetime you deal with thousands;
  in short they are a dime a dozen -- especially if you are an academic.

  And yet if you have a conscience you'd know that covering the concepts
  specified in a formal printed syllabus is cheating.  What really needs
  to be conveyed are a few ideas:
  - modular code
  - code invariants
  - abstractions
  - Syntax, semantics and the large grey in between which for want of a
better word we may call 'structure'
  - Recursion much wider than people think
see http://blog.languager.org/2012/05/recursion-pervasive-in-cs.html
  - Interpretation
see http://blog.languager.org/2013/08/applying-si-on-sicp.html
  - Computable and non-computable
  - The meaning and significance of the word 'code'
  - (Even more vaguely) beautiful (and ugly) code

  Before reading on, I suggest you think what for a while what for you
  are important/core ideas and then what vehicles/mediums are
  conducive/obstructive to them.


3 My Prejudices
===

  Historically I've been associated with functional programming. While I
  am not so passionate about it as when I was half my age. still I'd
  say:

  - FP *as a philosophy* collects a bunch of stuff -- technology,
practices, culture -- that conduces to good programming even for
kids who after the course never use FP *as a technology*
  
See http://blog.languager.org/2012/10/functional-programming-lost-booty.html

  - By contrast OOP is mostly (at best) clerical common sense --
organizing libraries to be easily searchable is better by data than
by code.  At worst OOP is hogwash -- inheritance.

And so…
  - Python which can be quite functional, imperative and object oriented
has a rather special place.  Because it is object oriented you will
be able to use it to silence those who are subscribed to that
religion.  Because it is imperative you can write straightforward
code -- 'scripts' -- without undue fanfare Because it is functional
(well almost -- I have some beefs in this regard) you can use it as
a vehicle to actually convey important *ideas* in short space and
time

  - For me Lisp (closely followed by APL) are the ultimate in
programming paradigms.  However they are not serious technology in
2013. [Even the birthplace of Scheme -- MIT -- has switched to
python]. And so in 2013 python occupies a sweet spot in the sense of
being academically clean and realistically usable.

  - That said there are some important elements of FPLs, most notably a
polymorphic type discipline, that are sorely missing from python.
Unfortunately Haskell is much harder to teach/learn than python and
with each new addition only gets harder.  So python remains even
with its lacks, an academically sound language.

4 CS-Edu Writings
=

   My CS-101 syllabus from the early 90s -- 
   uses gofer a predecessor of a predecessor of Haskell
   http://www.the-magus.in/Publications/ip.pdf

   Some more general CS-Edu related writings, containing strewn about
   FP is a good idea
   http://blog.languager.org/2011/02/cs-education-is-fat-and-weak-1.html
   and following 2 posts

--
रुसि मोदि
[Rusi Mody in devanagari so that GG will not use an obsolete charset]
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Meta Fight About Posting (was: python programming help)

2013-12-09 Thread rusi
On Monday, December 9, 2013 9:14:08 PM UTC+5:30, Travis Griggs wrote:
 As long as we’re in full scale rant drift, I’d like to remind others
 of the time honored tradition of changing the post subject, when,
 er, uh, the subject changes. Because this obviously is not
 programming help anymore.

snipped

I believe you are missing what's actually at issue here.

Lets just look at this thread:

New poster asks help for a homework problem without saying so

Different list members express concern/annoyance with this

[NO technological (3 different technologies) issues here yet]

This -- annoyance+answers -- continues for while until it morphs into 
GG-annoyance

The *context* of the earlier annoyance -- kid asking for homework help
without clearly saying so -- is lost in the GG annoyance.

Now GG is clearly annoying
As are kids who ask for homework help without saying so

¿¿Whats the connection??
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Meta Fight About Posting (was: python programming help)

2013-12-09 Thread rusi
On Monday, December 9, 2013 9:55:19 PM UTC+5:30, rusi wrote:
 On Monday, December 9, 2013 9:14:08 PM UTC+5:30, Travis Griggs wrote:
  As long as we’re in full scale rant drift, I’d like to remind others
  of the time honored tradition of changing the post subject, when,
  er, uh, the subject changes. Because this obviously is not
  programming help anymore.


 I believe you are missing what's actually at issue here.

 Lets just look at this thread:

 New poster asks help for a homework problem without saying so

 Different list members express concern/annoyance with this

 [NO technological (3 different technologies) issues here yet]

 This -- annoyance+answers -- continues for while until it morphs into 
 GG-annoyance

 The *context* of the earlier annoyance -- kid asking for homework help
 without clearly saying so -- is lost in the GG annoyance.

 Now GG is clearly annoying
 As are kids who ask for homework help without saying so

 ¿¿Whats the connection??

I should have mentioned/asked: Are you using Google Groups to post?

Your post suffers from one of GG's annoyances – long lines.

If you are using it then I wonder about the *content* of your complaint
If you are not – and the *form* of your post still has a classic-GG nuisance –
then it weakens the anti-GG case.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Experiences/guidance on teaching Python as a first programming language

2013-12-09 Thread rusi
On Monday, December 9, 2013 5:53:41 PM UTC+5:30, Oscar Benjamin wrote:
 5) Learning to program should be painful and we should expect the
 students to complain about it (someone actually said that!) but the
 pain makes them better programmers in the end.

Yeah this will get some people's back up -- Atrocious! Preposterous! etc

Change the word 'pain' to 'taxing' 'hard' 'challenge' etc and there is much
truth in it.  Here is Joel Spolsky on why Java is a poor language for
this reason: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: interactive help on the base object

2013-12-09 Thread rusi
On Tuesday, December 10, 2013 8:49:46 AM UTC+5:30, Steven D'Aprano wrote:
 On Mon, 09 Dec 2013 05:59:29 -0500, Ned Batchelder wrote:

 [...]
  And the cycle continues:
 [...]

  Maybe we could just not?

Thanks Ned for your attempts at bringing some order and sense in these parts
of the universe

 A reasonable request, but just because it's reasonable doesn't mean it is 
 a no-brainer that we shouldn't engage with Mark.

Some basic statistics

Suppose a random variable X takes 2 values x and y with probabilities
p and q=1-p. Then expected value of X

E[X] = px + qy

p = probability of some good result from an interaction
q = 1-p = No good
x = benefit value
y = harm value

 Even if Mark is a crank and beyond the reach of logic, reason or facts, 
 and I'm 90% convinced his is, consider that he's not the only one reading 
 this thread. 

So you are pegging 'no-good-probability' at 90% and so p at 10%. Ok
lets accept these.

And in the benefit value you include the possible benefit to Mark, to
whoever engages with him and the random [no relation of random
variable X] lurking reader. So far so good

And in the harm-value y, are you including the harm done to the random reader 
from a disorderly, abusive, fruitless and almost completely OT  
conversation?

 If just one person learns something useful or new from a 
 reply to Mark, I believe that it is worthwhile.

And if 3 people drop out because the levels of bullshit have crossed their 
thresholds?

[BTW: My statistics was never very strong and is now quite rusty.
So...
Whos that guy who recently added a stats module to python??
Cant remember his name... Maybe I should take some tuitions from him...]
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: interactive help on the base object

2013-12-09 Thread rusi
On Tuesday, December 10, 2013 10:40:27 AM UTC+5:30, Steven D'Aprano wrote:
 By the way, I'm curious. Why are discussions about object oriented coding 
 off-topic to Python? This is not a rhetorical question.

Well OOP on the python list is certainly on topic.

Interminable discussions about why redrawing the inheritance arrows
the other way round will save the world is OT (for me!)
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Origin of eval()-ing in separate namespace object

2013-12-08 Thread rusi
On Sunday, December 8, 2013 4:05:54 PM UTC+5:30, Kalinni Gorzkis wrote:
 By which languages(s) Python was inspired to support evaluating expressions 
 and executing statements in a separate “namespace” object?

 This syntax:
 eval(expression,globals) or exec(code,globals)
 What is the origin of the functionality provided by the globals argument?

Been here since the days of scheme at least
http://docs.racket-lang.org/guide/eval.html#%28part._namespaces%29

For the record lisp was conceptualized in the late 50s and implemented
by 1960.  By the 80s it was widely regarded as the premier AI language
but it was also clear to users that the scoping rules were terribly
wrong.  So a number of the then lisps coalesced and re-separated into
2 major dialects -- scheme and common lisp.

I expect it -- 2 argument eval -- goes all the way back to the earliest lisp 
but Ive not access to the history.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Centring text in a rect in PyGame?

2013-12-08 Thread rusi
On Sunday, December 8, 2013 7:36:04 PM UTC+5:30, Tim Golden wrote:
 On 07/12/2013 12:41, Eamonn Rea wrote:
  First of all. Id like to say I have no idea how these mailing lists
  work, so I dont know if this'll come through right, but we'll see I
  guess :-) I'm coming from the Google Group comp.lang.python, and was
  suggested to use this instead. Assuming attachments and images work, you
  should have an image of my code�s result and the attached code files.

Hi Eamonn

There are some new instructions/suggestions to make google groups
easier on you (and other readers!)

https://wiki.python.org/moin/GoogleGroupsPython

If you try them and they work (or even if they dont!) please let me know.

Particularly note the new section at the end
https://wiki.python.org/moin/GoogleGroupsPython#Automatic_correction_.28EXPERIMENTAL.29
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Origin of eval()-ing in separate namespace object

2013-12-08 Thread rusi
On Sunday, December 8, 2013 8:09:39 PM UTC+5:30, Jussi Piitulainen wrote:
 rusi writes:

  On Sunday, December 8, 2013 4:05:54 PM UTC+5:30, Kalinni Gorzkis wrote:
   By which languages(s) Python was inspired to support evaluating
   expressions and executing statements in a separate namespace
   object?
   This syntax:
   eval(expression,globals) or exec(code,globals)
   What is the origin of the functionality provided by the globals
   argument?
  Been here since the days of scheme at least
  http://docs.racket-lang.org/guide/eval.html#%28part._namespaces%29
  For the record lisp was conceptualized in the late 50s and
  implemented by 1960.  By the 80s it was widely regarded as the
  premier AI language but it was also clear to users that the scoping
  rules were terribly wrong.  So a number of the then lisps coalesced
  and re-separated into 2 major dialects -- scheme and common lisp.
  I expect it -- 2 argument eval -- goes all the way back to the
  earliest lisp but Ive not access to the history.

 Yes. From p. 13 of LISP 1.5 Programmer's Manual (the preface is dated
 in 1962):

 # _evalquote_ is defined by using two main functions, called _eval_
 # and _apply_. _apply_ handles a function and its arguments, while
 # _eval_ handles forms. Each of these functions also has another
 # argument that is used as an association list for storing the values
 # of bound variables and function names.

Heh – I am nostalgia-fied!

Wrote a Lisp interpreter as a student degree project in 1986.
Tried to use the Lisp 1.5 manual then but it was too archaic for me to
understand.  So mostly chewed on the UCI Lisp manual.  Took me some
years to understand that dynamic scoping was not my mistake but Lisp's!!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: ASCII and Unicode

2013-12-08 Thread rusi
On Saturday, December 7, 2013 9:35:34 PM UTC+5:30, giacomo boffi wrote:
 Steven D'Aprano  writes:

  Ironically, your post was not Unicode.  [...] Your post was sent
  using a legacy encoding, Windows-1252, also known as CP-1252

 i access rusi's post using a NNTP server,
 and in his post i see

 Content-Type: text/plain; charset=UTF-8

 is it possible that what you see is an artifact
 of the gateway?

Thanks for checking that!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: ASCII and Unicode

2013-12-08 Thread rusi
On Sunday, December 8, 2013 10:52:34 PM UTC+5:30, Steven D'Aprano wrote:
 On Sat, 07 Dec 2013 17:05:34 +0100, giacomo boffi wrote:

  Steven D'Aprano  writes:
  Ironically, your post was not Unicode.  [...] Your post was sent using
  a legacy encoding, Windows-1252, also known as CP-1252
  i access rusi's post using a NNTP server, and in his post i see
  Content-Type: text/plain; charset=UTF-8

 But *which post* are you looking at?

 I have just looked at three posts from him:

 Rusi's original post, where he used the ellipsis characters:

   Subject: Re: Managing Google Groups headaches
   Date: Thu, 5 Dec 2013 23:13:54 -0800 (PST)
   Content-Type: text/plain; charset=windows-1252

 Then his reply to me:

   Subject: Re: ASCII and Unicode [was Re: Managing Google Groups headaches]
   Date: Fri, 6 Dec 2013 18:33:39 -0800 (PST)
   Content-Type: text/plain; charset=UTF-8

 And finally, his reply to you:

   Subject: Re: ASCII and Unicode
   Date: Sun, 8 Dec 2013 08:41:10 -0800 (PST)
   Content-Type: text/plain; charset=ISO-8859-1

 It seems to me that whatever client he is using to post (I believe it is 
 Google Groups web interface?) varies the encoding depending on what 
 characters are included in his post.

  is it possible that what you see is an artifact of the gateway?

 I doubt it. Unfortunately the email mailing list archive doesn't display 
 all the email headers, but for the record here is his original post as 
 seen by the email mailing list:

 https://mail.python.org/pipermail/python-list/2013-December/661782.html

 If you view source, you'll see that Mailman (the mailing list software) 
 sets the webpage encoding to US-ASCII and encodes the ellipses to #8230, 
 which is a perfectly reasonable thing for a web page to do. So we can be 
 confident that when Mailman saw Rusi's post, it was able to correctly 
 decode the message and see ellipses.

 Although I think that (probably) Google Groups is being stupid by varying 
 the charset (why not just use UTF-8 always?), at least it is setting the 
 charset correctly. 

I think GG is being being sweet and affectionate and delectable enough that a
 in the footer will keep it stuck at UTF-8 you think ?? :-)


-- 
https://mail.python.org/mailman/listinfo/python-list


Re: interactive help on the base object

2013-12-08 Thread rusi
On Monday, December 9, 2013 8:11:47 AM UTC+5:30, zipher wrote:
  What methods, if any does it provide?  Are they all abstract? etc???
  Pretty much nothing useful :-)
  py dir(object)
  [...]

 So (prodding the student), Why does everything inherit from Object if
 it provides no functionality?

Thats right.  What does a collection object like [] or the empty set ∅
(assuming the unicode-gods will allow and bless that) do when it
collects nothing?  Lets make sure all lists and sets start non-empty.

And why have a stupid number like 0 when it counts nothing?
Lets go back to roman numerals which is so much more…


 Practicality-beats-purity-yours?

Practical!!⸮¿¡

PS Can some kind soul inform me whether I could convince GG to unicode my post?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: ASCII and Unicode

2013-12-08 Thread rusi
On Monday, December 9, 2013 1:41:41 AM UTC+5:30, giacomo boffi wrote:
 blush the wrong one.../ i.e, the one JUST BEFORE your change of
 subject --- if i look at the ellipsis post, i see the same encoding
 that you have mentioned

 sorry for the confusion

And thank you for pointing the way to the culprit, viz. GG trying to be
too clever.

[Since you neglected to close your blush I am included in it :-) ]
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: interactive help on the base object

2013-12-08 Thread rusi
Thanks for the info.

On Monday, December 9, 2013 9:46:30 AM UTC+5:30, Steven D'Aprano wrote:
 On Sun, 08 Dec 2013 18:58:09 -0800, rusi wrote:

  PS Can some kind soul inform me whether I could convince GG to unicode
  my post?

 Does GG not give you some way of inspecting the post's full headers?

Well I spent half hour looking around -- both inside GG and of course
searching before asking.

 Anyway, here you go:

 Content-Type: text/plain; charset=UTF-8

 Your plan succeeded.

 Personally, I wouldn't stress too much about this. While it would be 
 nice, and desirable, for GG to always use UTF-8 instead of picking a 
 different encoding based on the phase of the moon, the main thing is that 
 it picks a valid encoding. So far I see no reason to accuse GG of using 
 an invalid encoding. Valid but legacy encodings are better than 
 mojibake :-)

Heh! I'm hardly a heavy-duty user of unicode -- just keeping track of bugs 
and workarounds. I am of course using 'bug' in a wide pragmatic sense of
preventing communication.

Mojibake is a technical problem.
Non (human) communication is a more fundamental problem.
Keeping an eye on the latter is (for me) a bigger issue than the former.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: python programming help

2013-12-08 Thread rusi
On Monday, December 9, 2013 10:37:38 AM UTC+5:30, ru...@yahoo.com wrote:
 On 12/08/2013 05:27 PM, Mark Lawrence wrote:
  On 09/12/2013 00:08,  wrote:
  On 12/08/2013 12:17 PM, Chris Angelico wrote:
  On Mon, Dec 9, 2013 at 6:06 AM,  rafaell wrote:
 [...]
  To the OP, please ignore the above, it's sheer, unadulterated rubbish. 
  Nobody has ever been bullied into doing anything.  People have however 
  been asked repeatedly to either A) use the link referenced above to 
  avoid sending double spaced crap here from the inferior google groups 
  product or B) use an alternative technology that doesn't send double 
  spaced crap.

 Mark, I appreciate your calm and reasonable requests for people
 to checkout the page you gave a link to, that's why I repeated
 your advice.  It is also why I responded to Chris and not to you.

Yes agreed.

 However it does not change the fact that people here have responded 
 in rather extreme way to GG posts including calling GG users twits
 and claiming GG posts damage their eyesight, as well as repeatedly
 denying the obvious fact that GG is much easier to use for many than 
 to subscribe to a usenet provider or to a mailing list.  One frequently
 sees words like crap, slimy, rubbish etc to describe GG posts 
 which is pretty intimating to people who just want some help with a
 python question using a tool they already know how to use and have 
 had no complaints about in other places.

About the last -- no complaints about (that) in other places -- Ive recently
seen that on the html/stylesheets/javascript lists (not sure which)
there are also annoyed complaints about GG.

About the rest -- when people get annoyed they say and do things they
would not otherwise do. The sensible not-yet-annoyed-enough-to-lose-the-head 
folks should try to cure the annoyance rather than get
annoyed with it -- dont you think?

In short if we are programmers we should be thinking bug-fixes when we
are bugged :-) And what is put up here 
https://wiki.python.org/moin/GoogleGroupsPython
(only yesterday BTW) is a dynamically loadable GG-bugfix.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: interactive help on the base object

2013-12-08 Thread rusi
On Monday, December 9, 2013 10:56:28 AM UTC+5:30, ru...@yahoo.com wrote:
 On 12/08/2013 09:46 PM, rusi wrote:
  On Monday, December 9, 2013 9:46:30 AM UTC+5:30, Steven D'Aprano wrote:
  On Sun, 08 Dec 2013 18:58:09 -0800, rusi wrote:
 [...]
  Does GG not give you some way of inspecting the post's full headers?
  Well I spent half hour looking around -- both inside GG and of course
  searching before asking.

 If you click on the little down triangle to the right
 of the reply button for a message, you'll get a menu
 that includes Show Original.  You can see the headers
 including the Content-Type: in that original.

Thanks rurpy -- I only looked for how one may set and not just what is.

So now I look at my own post in GG and see

Content-Type: text/plain; charset=UTF-8

So far so good.

However when I point firefox at my own post in the archive
https://mail.python.org/pipermail/python-list/2013-December/662015.html

firefox shows encoding as Windows-1252.

Note Ive looked at a dozen random pages and for all FF shows encoding as
utf-8 except the python list archive ones which show as Win 1252

Note looking into the html I see
META http-equiv=Content-Type content=text/html; charset=us-ascii

How us-ascii becomes Win-1252 is outside the reach of my meagre intelligence!

Though I still suspect something is not quite right with the python
mailing-list and/or archive in respect of char encodings.

[Am I beginning to sound like jmf is my guru :-) ]
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-07 Thread rusi
On Saturday, December 7, 2013 3:46:02 PM UTC+5:30, wxjm...@gmail.com wrote:
 Rusi:

 unicode as a medium is universal in the same way that
 ASCII used to be

 Probably, you do not realize deeply how this sentence
 is correct. Unicode and ascii are constructed in the
 same way. It has not even to do with characters, but
 with mathematics.

On the contrary, I'd say we have some rather interesting
'characters' out here.

 It is on this level the FSR fails. It is mathematically
 wrong by design!

Now thats an even more interesting statement. Only not sure what it means
Here are some attempts

It is wrong therefore unmathematical
It is designed so its wrong
It is mathematical so its undesigned

Any Ive missed??
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: One liners

2013-12-07 Thread rusi
On Saturday, December 7, 2013 10:26:04 PM UTC+5:30, Michael Torrie wrote:
 On 12/06/2013 08:27 PM, Roy Smith wrote:
   Steven D'Aprano  wrote:
  The ternary if is slightly unusual and unfamiliar
  It's only unusual an unfamiliar if you're not used to using it :-)  
  Coming from a C/C++ background, I always found the lack of a ternary 
  expression rather limiting.  There was much rejoicing in these parts 
  when it was added to the language relatively recently.  I use them a lot.
  On the other hand, I found list comprehensions to be mind-bogglingly 
  confusing when I first saw them (read: slightly unusual and unfamiliar).  
  It took me a long time to warm up to the concept.  Now I love them.
  As for readability, I accept that ternary if is unusual compared to other 
  languages, but it's still quite readable in small doses. If you start 
  chaining them:
  result = a if condition else b if flag else c if predicate else d 
  you probably shouldn't.
  That I agree with (and it's just as true in C as it is in Python).
  Just for fun, I took a look through the Songza code base.  66 kloc of 
  non-whitespace Python.  I found 192 ternary expressions.  Here's a few 
  of the more bizarre ones (none of which I consider remotely readable):
  --
  extracols = sorted(set.union(*(set(t.data.keys()) for t in tracks))) if 
  tracks else []

 This is a generator expressions, and ternary ifs are common and often
 needed in generator expressions.

  --
  c2s = compids2songs(set(targets.keys()) | 
  set.union(*map(set,targets.itervalues())),self.docmap,self.logger) if 
  targets else {}

 I suspect the ternary distracted you on this one.  The ternary here is
 needed because if targets is None the expression fails.  This part
 anyway is a common idiom.

 The rest is basically making a set (list of unique items only) of the
 combined keys and values from the targets dictionary.  Now I'm not
 sure why the programmer needs do this, but nevertheless that's what it's
 doing.  set.union is used because that can iterate over a list of sets,
 which is what the map returns.  I suppose they could have done this, but
 it wouldn't be much clearer unless you knew what sets, map and
 itervalues do:

 if targets:
 c2s = compids2songs(
 set(targets.keys()) |
   set.union(*map(set,targets.itervalues())),
 self.docmap,
 self.logger )
 else:
c2s = {}

 In any case the ternary operator isn't really the part you were
 complaining about.  Personally if I needed to do this particular
 operation a lot (combine keys and values into a set), I'd write a
 function that returned the set.  Still can't avoid the ternary, though,
 unless you made compids2songs a little smarter (and we don't know what
 compids2songs does with an empty set):

 def dict_keys_and_values_set (some_dict):
return set(some_dict.keys()) |
 set.union(*map(set,some_dict.itervalues()))

 c2s = compids2songs( dict_keys_and_values_set(targets) ) if targets else {}

 or I suppose you could o this:

 c2s = {}
 if targets: c2s = compids2songs( dict_keys_and_values_set(targets) )

 Just a matter of taste.

  --
  code = 2 if (pmp3,paac)==(mmp3,maac) else 3 if any(x is None for x in 
  (pmp3,paac,mmp3,maac)) else 4
  --

Just trying to rewrite that in a way which I try to use for long if-exprs

code =  2if (pmp3,paac)==(mmp3,maac)   else
3if any(x is None for x in (pmp3,paac,mmp3,maac))  else
4


 This one probably could stand to be reworked for sure!  A standard if
 block would be much clearer.  Definitely an example of a programmer
 thinking he was clever... maybe a git bisect could identify the author
 and we can shame him.


The logic for writing (and hopefully reading) it this way is like this:

In math we often have equations that are defined by cases -- typically typeset 
with a large curly bracket.  Those else's hanging at the end are to be read as
a signal to read this whole expr and though under a big curly brace.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Is It Bug?

2013-12-07 Thread rusi
On Sunday, December 8, 2013 6:28:24 AM UTC+5:30, Mahan Marwat wrote:
 Why this is not working.

  'Hello, World'.replace('\\', '\\')

 To me, Python will interpret '' to '\\'. And the replace method
 will replace '\\' with '\'. So, the result will be 'Hello,
 \World'. But it's give me 'Hello, World'.

 The result I want form the code is 'Hello, \World'.

I am mystified by this question.
Yes '\\' may be one slash or two or something else more exotic.
But whatever it is (and its not a syntax error like with '\') it is something.
So how can replace(something,something)  be anything other
than a no-op?

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-06 Thread rusi
On Friday, December 6, 2013 1:06:30 PM UTC+5:30, Roy Smith wrote:
  Rusi  wrote:

  On Thursday, December 5, 2013 6:28:54 AM UTC+5:30, Roy Smith wrote:

   The real problem with web forums is they conflate transport and 
   presentation into a single opaque blob, and are pretty much universally 
   designed to be a closed system.  Mail and usenet were both engineered to 
   make a sharp division between transport and presentation, which meant it 
   was possible to evolve each at their own pace.
   Mostly that meant people could go off and develop new client 
   applications which interoperated with the existing system.  But, it also 
   meant that transport layers could be switched out (as when NNTP 
   gradually, but inexorably, replaced UUCP as the primary usenet transport 
   layer).
  There is a deep assumption hovering round-about the above -- what I
  will call the 'Unix assumption(s)'.

 It has nothing to do with Unix.  The separation of transport from 
 presentation is just as valid on Windows, Mac, etc.

  But before that, just a check on
  terminology. By 'presentation' you mean what people normally call
  'mail-clients': thunderbird, mutt etc. And by 'transport' you mean
  sendmail, exim, qmail etc etc -- what normally are called
  'mail-servers.'  Right??

 Yes.

  Assuming this is the intended meaning of the terminology (yeah its
  clearer terminology than the usual and yeah Im also a 'Unix-guy'),
  here's the 'Unix-assumption':
- human communication�
  (is not very different from)
- machine communication�
  (can be done by)
- text�
  (for which)
- ASCII is fine�
  (which is just)
- bytes�
  (inside/between byte-memory-organized)
- von Neumann computers
  To the extent that these assumptions are invalid, the 'opaque-blob'
  may well be preferable.

 I think you're off on the wrong track here.  This has nothing to do with 
 plain text (ascii or otherwise).  It has to do with divorcing how you 
 store and transport messages (be they plain text, HTML, or whatever) 
 from how a user interacts with them.


Evidently (and completely inadvertently) this exchange has just
illustrated one of the inadmissable assumptions:

unicode as a medium is universal in the same way that ASCII used to be

I wrote a number of ellipsis characters ie codepoint 2026 as in:

  - human communication…
(is not very different from)
  - machine communication… 

Somewhere between my sending and your quoting those ellipses became
the replacement character FFFD

- human communication�
  (is not very different from)
- machine communication�

Leaving aside whose fault this is (very likely buggy google groups),
this mojibaking cannot happen if the assumption All text is ASCII
were to uniformly hold.

Of course with unicode also this can be made to not happen, but that
is fragile and error-prone.  And that is because ASCII (not extended)
is ONE thing in a way that unicode is hopelessly a motley inconsistent
variety.

With unicode there are in-memory formats, transportation formats eg
UTF-8, strange beasties like FSR (which then hopelessly and
inveterately tickle our resident trolls!) multi-layer encodings (in
html), BOMS and unnecessary/inconsistent BOMS (in microsoft-notepad).
With ASCII, ASCII is ASCII; ie ABC is 65,66,67 whether its in-core,
in-file, in-pipe or whatever.  Ok there are a few wrinkles to this
eg. the null-terminator in C-strings. I think this is the exception to
the rule that in classic Unix, ASCII is completely inter-operable and
therefore a universal data-structure for inter-process or inter-machine
communication.

It is this universal data structure that makes classic unix pipes and
filters possible and easy (of which your separation of presentation
and transportation is just one case).

Give it up and the composability goes with it.

Go up from the ASCII - Unicode level to the plain-text - hypertext
(aka html) level and these composability problems hit with redoubled
force.

 Take something like Wikipedia (by which, I really mean, MediaWiki, which 
 is the underlying software package).  Most people think of Wikipedia as 
 a web site.  But, there's another layer below that which lets you get 
 access to the contents of articles, navigate all the rich connections 
 like category trees, and all sorts of metadata like edit histories.  
 Which means, if I wanted to (and many examples of this exist), I can 
 write my own client which presents the same information in different 
 ways.

Not sure whats your point.
Html is a universal data-structuring format -- ok for presentation, bad for
data-structuring
SQL databases (assuming thats the mediawiki backend) is another -- ok for 
data-structuring bad for presentation.

Mediawiki mediates between the two formats.

Beyond that I lost you... what are you trying to say??
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-06 Thread rusi
On Friday, December 6, 2013 6:49:04 PM UTC+5:30, Chris Angelico wrote:
 On Sat, Dec 7, 2013 at 12:03 AM, rusi wrote:
  SQL databases (assuming thats the mediawiki backend) is another -- ok for
  data-structuring bad for presentation.

 No, SQL databases don't store structured text. MediaWiki just stores a
 single blob (not in the database sense of that word) of text.

I guess we are using 'structured' in different ways.  All I am saying
is that mediawiki which seems to present as html, actually stores its
stuff as SQL -- nothing more or less structured than the schemas here:
http://www.mediawiki.org/wiki/Manual:MediaWiki_architecture#Database_and_text_storage
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-06 Thread rusi
On Friday, December 6, 2013 7:18:19 PM UTC+5:30, Chris Angelico wrote:
 On Sat, Dec 7, 2013 at 12:32 AM, rusi  wrote:
  I guess we are using 'structured' in different ways.  All I am saying
  is that mediawiki which seems to present as html, actually stores its
  stuff as SQL -- nothing more or less structured than the schemas here:
  http://www.mediawiki.org/wiki/Manual:MediaWiki_architecture#Database_and_text_storage

 Yeah, but the structure is all about the metadata.

Ok (I'd drop the 'all')

 Ultimately, there's one single text field containing the entire content

Right

 as you would see it in the page editor: wiki markup in straight text.

Aha! There you are! Its 'page editor' here and not the html which
'display source' (control-u) which a browser would show. And wikimedia
is the software that mediates.

The usual direction (seen by users of wikipedia) is that wikimedia
takes this text, along with the other unrelated (metadata?) seen
around -- sidebar, tabs etc, css settings and munges it all into html

The other direction (seen by editors of wikipedia) is that you edit a
page and that page and history etc will show the changes,
reflecting the fact that the SQL content has changed.

 MediaWiki uses an SQL database to store that lump of text, but
 ultimately the relationship is between wikitext and HTML, no SQL
 involvement.


Dunno what you mean. Every time someone browses wikipedia, things are
getting pulled out of the SQL and munged into the html (s)he sees.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: using ffmpeg command line with python's subprocess module

2013-12-06 Thread rusi
On Friday, December 6, 2013 8:22:48 PM UTC+5:30, iMath wrote:
 在 2013年12月6日星期五UTC+8下午5时23分59秒,Mark Lawrence写道:
  On 06/12/2013 06:23, iMath wrote:
  Dearest iMath, wouldst thou be kind enough to partake of obtaining some 
  type of email client that dost not sendeth double spaced data into this 
  most illustrious of mailing lists/newsgroups.  Thanking thee for thine 
  participation in my most humble of requests.  I do remain your most 
  obedient servant.

 yes ,I am a native Chinese speaker.I always post question by Google Group not 
 through  email ,is there something wrong with it ?

Yes but its easily correctable

I recently answered this question to another poster here

https://groups.google.com/forum/#!searchin/comp.lang.python/rusi$20google$20groups|sort:date/comp.lang.python/C51hEvi-KbY/KSeaMFoHtcIJ
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: using ffmpeg command line with python's subprocess module

2013-12-06 Thread rusi
On Friday, December 6, 2013 8:42:02 PM UTC+5:30, Mark Lawrence wrote:
 The English I used was archaic, please ignore it :)

Archaic is almost archaic
Old is ever-young

:D
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: using ffmpeg command line with python's subprocess module

2013-12-06 Thread rusi
On Friday, December 6, 2013 9:23:47 PM UTC+5:30, Mark Lawrence wrote:
 On 06/12/2013 15:34, Steven D'Aprano wrote:
 
 (if I remember correctly) I think Mark also
 
  sometimes posts a link to managing Google Groups.
 
 
 
 You do, and here it is https://wiki.python.org/moin/GoogleGroupsPython

That link needs updating.

Even if my almost-automatic correction methods are not considered
kosher for some reason or other, the thing that needs to go in there
is that GG has TWO problems

1. Blank lines
2. Long lines

That link only describes 1.

Roy's yesterday's post in Packaging a proprietary python library
says:

 I, and Rusi, know enough, and take the effort, to overcome its
 shortcomings doesn't change that.

But in fact his post takes care of 1 not 2.

In all fairness I did not know that 2 is a problem until rurpy pointed
it out recently and was not correcting it. In fact, I'd take the
trouble to make the lines long assuming that clients were intelligent
enough to fit it properly into whatever was the current window!!!

So someone please update that page!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: using ffmpeg command line with python's subprocess module

2013-12-06 Thread rusi
On Friday, December 6, 2013 9:55:54 PM UTC+5:30, Mark Lawrence wrote:
 On 06/12/2013 16:19, rusi wrote:

  So someone please update that page!

 This is a community so why don't you?

Ok done (at least a first draft)
I was under the impression that anyone could not edit
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: using ffmpeg command line with python's subprocess module

2013-12-06 Thread rusi
On Friday, December 6, 2013 10:11:04 PM UTC+5:30, MRAB wrote:
 On 06/12/2013 15:34, Steven D'Aprano wrote:
  On Fri, 06 Dec 2013 06:52:48 -0800, iMath wrote:
  yes ,I am a native Chinese speaker.I always post question by Google
  Group not through  email ,is there something wrong with it ? your
  english is a little strange to me .

  Mark is writing in fake old-English style, the way people think English
  was spoken a thousand years ago. I don't know why he did that. Perhaps he
  thought it was amusing.
 [snip]

 You're exaggerating. It's more like 500 years ago. :-)

I was going to say the same until I noticed the the way people think English
was spoken...

That makes it unarguable -- surely there are some people who (wrongly) think so?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: ASCII and Unicode [was Re: Managing Google Groups headaches]

2013-12-06 Thread rusi
On Saturday, December 7, 2013 12:30:18 AM UTC+5:30, Steven D'Aprano wrote:
 On Fri, 06 Dec 2013 05:03:57 -0800, rusi wrote:

  Evidently (and completely inadvertently) this exchange has just
  illustrated one of the inadmissable assumptions:
  unicode as a medium is universal in the same way that ASCII used to be

 Ironically, your post was not Unicode.

 Seriously. I am 100% serious.

 Your post was sent using a legacy encoding, Windows-1252, also known as 
 CP-1252, which is most certainly *not* Unicode. Whatever software you 
 used to send the message correctly flagged it with a charset header:

 Content-Type: text/plain; charset=windows-1252

 Alas, the software Roy Smith uses, MT-NewsWatcher, does not handle 
 encodings correctly (or at all!), it screws up the encoding then sends a 
 reply with no charset line at all. This is one bug that cannot be blamed 
 on Google Groups -- or on Unicode.

  I wrote a number of ellipsis characters ie codepoint 2026 as in:

 Actually you didn't. You wrote a number of ellipsis characters, hex byte 
 \x85 (decimal 133), in the CP1252 charset. That happens to be mapped to 
 code point U+2026 in Unicode, but the two are as distinct as ASCII and 
 EBCDIC.

  Somewhere between my sending and your quoting those ellipses became the
  replacement character FFFD

 Yes, it appears that MT-NewsWatcher is *deeply, deeply* confused about 
 encodings and character sets. It doesn't just assume things are ASCII, 
 but makes a half-hearted attempt to be charset-aware, but badly. I can 
 only imagine that it was written back in the Dark Ages where there were a 
 lot of different charsets in use but no conventions for specifying which 
 charset was in use. Or perhaps the author was smoking crack while coding.

  Leaving aside whose fault this is (very likely buggy google groups),
  this mojibaking cannot happen if the assumption All text is ASCII were
  to uniformly hold.

 This is incorrect. People forget that ASCII has evolved since the first 
 version of the standard in 1963. There have actually been five versions 
 of the ASCII standard, plus one unpublished version. (And that's not 
 including the things which are frequently called ASCII but aren't.)

 ASCII-1963 didn't even include lowercase letters. It is also missing some 
 graphic characters like braces, and included at least two characters no 
 longer used, the up-arrow and left-arrow. The control characters were 
 also significantly different from today.

 ASCII-1965 was unpublished and unused. I don't know the details of what 
 it changed.

 ASCII-1967 is a lot closer to the ASCII in use today. It made 
 considerable changes to the control characters, moving, adding, removing, 
 or renaming at least half a dozen control characters. It officially added 
 lowercase letters, braces, and some others. It replaced the up-arrow 
 character with the caret and the left-arrow with the underscore. It was 
 ambiguous, allowing variations and substitutions, e.g.:

 - character 33 was permitted to be either the exclamation 
   mark ! or the logical OR symbol |

 - consequently character 124 (vertical bar) was always 
   displayed as a broken bar ¦, which explains why even today
   many keyboards show it that way

 - character 35 was permitted to be either the number sign # or 
   the pound sign £

 - character 94 could be either a caret ^ or a logical NOT ¬

 Even the humble comma could be pressed into service as a cedilla.

 ASCII-1968 didn't change any characters, but allowed the use of LF on its 
 own. Previously, you had to use either LF/CR or CR/LF as newline.

 ASCII-1977 removed the ambiguities from the 1967 standard.

 The most recent version is ASCII-1986 (also known as ANSI X3.4-1986). 
 Unfortunately I haven't been able to find out what changes were made -- I 
 presume they were minor, and didn't affect the character set.

 So as you can see, even with actual ASCII, you can have mojibake. It's 
 just not normally called that. But if you are given an arbitrary ASCII 
 file of unknown age, containing code 94, how can you be sure it was 
 intended as a caret rather than a logical NOT symbol? You can't.

 Then there are at least 30 official variations of ASCII, strictly 
 speaking part of ISO-646. These 7-bit codes were commonly called ASCII 
 by their users, despite the differences, e.g. replacing the dollar sign $ 
 with the international currency sign ¤, or replacing the left brace 
 { with the letter s with caron š.

 One consequence of this is that the MIME type for ASCII text is called 
 US ASCII, despite the redundancy, because many people expect ASCII 
 alone to mean whatever national variation they are used to.

 But it gets worse: there are proprietary variations on ASCII which are 
 commonly called ASCII but aren't, including dozens of 8-bit so-called 
 extended ASCII character sets, which is where the problems *really* 
 pile up. Invariably back in the 1980s and early 1990s people used

Re: ASCII and Unicode [was Re: Managing Google Groups headaches]

2013-12-06 Thread rusi
On Saturday, December 7, 2013 8:11:45 AM UTC+5:30, Chris Angelico wrote:
 On Sat, Dec 7, 2013 at 1:33 PM, rusi  wrote:
  That seems to suggest that something is not right with the python
  mailing list config. No??

 If in doubt, blame someone else, eh?

 I'd first check what your browser's actually sending. Firebug will
 help there. See if your form fill-out is encoded as UTF-8 or CP-1252.
 That's the first step.

If you give me some tip where to look, I'll do that.
But I dont see what this has to do with forms.

Everything in the python archive (not just my posts) show as Win 1252
[I checked about 6]

Every other page that I checked (most nothing to do with python list,
GG etc) show UTF-8. [I checked about 5]

None of these checkings had forms to be filled.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-06 Thread rusi
On Saturday, December 7, 2013 7:54:50 AM UTC+5:30, Ned Batchelder wrote:
 On 12/6/13 8:03 AM, rusi wrote:

  Leaving aside whose fault this is (very likely buggy google groups),
  this mojibaking cannot happen if the assumption All text is ASCII
  were to uniformly hold.
  Of course with unicode also this can be made to not happen, but that
  is fragile and error-prone.  And that is because ASCII (not extended)
  is ONE thing in a way that unicode is hopelessly a motley inconsistent
  variety.

 You seem to be suggesting that we should stick to ASCII.  There are of 
 course languages that need more than just the Latin alphabet.  How would 
 you suggest we support them?  Or maybe I don't understand?

Heh! Yes I guess that can be read into what I was saying.

Practically: I dont see that as an option or that the question of
going back to ASCII even arises.

I was talking more philosophically/historically.

Up until the time of Unix a file for example was a structured
heavy-duty concept motivated by entirely technological considerations:
http://en.wikipedia.org/wiki/Data_set_%28IBM_mainframe%29

By simplifying that into the modern concept of file -- just a stream
of bytes -- and allowing the puns:

  byte string
= char list
= text

some elegant systems could be made with people having 'beautiful thoughts:'

Everything that could be stored anywhere -- core or disk -- being bytes
one could go to the next stage and pass around these bytes between
processes. And so we get the elegant --  pipeline -- beauty of Unix
scripts.

Of course there was a catch (Isn't there always?):

Things that did not fit in with this philosophy -- eg clicks of a mouse,
bits on display -- were modelled badly or not at all.

Not-at-all: CLI
Badly: Monstrosity called X

And this explains some of the cultural kinks of our field:

Unix guys invariably think of CLIs as natural and obvious whereas GUIs
are just wasteful eye-candy.

[Yours truly is one of those old geezers who does not know how to
write a GUI to save his life. Almost normal in the Unix world except
that he's not proud of it]

Windows/Mac people do not suffer these delusions but then they dont think of 
programming as natural or obvious at all.

Ive often been amused at windows folk: They dont think of Word as a program.
Rather docs are things that magically open when clicked :-)

Brings me to the point I was trying to make (got side-tracked by
the failure of a character to roundtrip between me and Roy  -- Im none the 
wiser why)

The ASCII = Text = Unicode (non)equation is a relatively minor point.

The more central point is that humans use and need more than just
words to communicate.  By straitjacketing communication into the thin
channel of text we are severely impoverishing ourselves.

We communicate with systems with programs that are unstructured
text-files even though programs are conceptually highly structured entities.

Likewise we communicate with each other by this obscenely obsolete
textual mode that I am using right now when rich text formats have been
available for decades.

Some of my more detailed writings on this:

http://blog.languager.org/2013/09/poorest-computer-users-are-programmers.html

http://blog.languager.org/2012/10/html-is-why-mess-in-programming-syntax.html
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Packaging a proprietary Python library for multiple OSs

2013-12-05 Thread rusi
On Thursday, December 5, 2013 3:44:50 PM UTC+5:30, Michael Herrmann wrote:
 Hi everyone,

 I am developing a proprietary Python library. The library is currently 
 Windows-only, and I want to also make it available for other platforms (Linux 
  Mac). I'm writing because I wanted to ask for your expert opinion on how to 
 best do this.

Wheel is the upcoming standard I think.
http://www.python.org/dev/peps/pep-0427/

1. It would be dishonest to remove the 'upcoming'
2. It would also be dishonest if you thought I know anything about the subject 
:-)
3. https://groups.google.com/forum/#!forum/python-virtualenv may be a better 
place to ask
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-05 Thread rusi
On Thursday, December 5, 2013 6:28:54 AM UTC+5:30, Roy Smith wrote:
  Rich Kulawiec wrote:

  Yes, I'm
  aware of web forums: I've used hundreds of them.  They suck.  They ALL
  suck, they just all suck differently.  I could spend the next several
  thousand lines explaining why, but instead I'll just abbreviate: they
  don't handle threading, they don't let me use my editor of choice,
  they don't let me build my own archive that I can search MY way including
  when I'm offline, they are brittle and highly vulnerable to abuse
  and security breaches, they encourage worst practices in writing
  style (including top-posting and full-quoting), they translate poorly
  to other formats, they are difficult to archive, they're even more
  difficult to migrate (whereas Unix mbox format files from 30 years ago
  are still perfectly usable today), they aren't standardized, they
  aren't easily scalable, they're overly complex, they don't support
  proper quoting, they don't support proper attribution, they can't
  be easily forwarded, they...oh, it just goes on.  

 The real problem with web forums is they conflate transport and 
 presentation into a single opaque blob, and are pretty much universally 
 designed to be a closed system.  Mail and usenet were both engineered to 
 make a sharp division between transport and presentation, which meant it 
 was possible to evolve each at their own pace.

 Mostly that meant people could go off and develop new client 
 applications which interoperated with the existing system.  But, it also 
 meant that transport layers could be switched out (as when NNTP 
 gradually, but inexorably, replaced UUCP as the primary usenet transport 
 layer).

There is a deep assumption hovering round-about the above -- what I
will call the 'Unix assumption(s)'.  But before that, just a check on
terminology. By 'presentation' you mean what people normally call
'mail-clients': thunderbird, mutt etc. And by 'transport' you mean
sendmail, exim, qmail etc etc -- what normally are called
'mail-servers.'  Right??

Assuming this is the intended meaning of the terminology (yeah its
clearer terminology than the usual and yeah Im also a 'Unix-guy'),
here's the 'Unix-assumption':

  - human communication…
(is not very different from)
  - machine communication…
(can be done by)
  - text…
(for which)
  - ASCII is fine…
(which is just)
  - bytes…
(inside/between byte-memory-organized)
  - von Neumann computers

To the extent that these assumptions are invalid, the 'opaque-blob'
may well be preferable.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-05 Thread rusi
On Thursday, December 5, 2013 4:17:11 AM UTC+5:30, Cameron Simpson wrote:
 On 03Dec2013 17:39, rusi wrote:
  On Wednesday, December 4, 2013 6:10:05 AM UTC+5:30, Cameron Simpson wrote:
   My first act on joining any mailing list is to download the entire
   archive into my local mail store. I have a script for this, for
   mailman at least.
  and you happen to own 1 thingys that have general computing
  functionality -- phones, laptops, desktops, etc -- do you sync
  all your mailing-lists with all of them?

 No. I'm using a laptops my primary host, and it has the mailing
 lists (and all my email). It is usually on and fetches and files
 my email; it also forwards _specific_ stuff to a separate mail
 account accessed by my phone.

 I used to use a home server, but the remote access, while fairly
 transparent (script to ssh then run mutt), was irritating. And
 when I didn't have remote access, very very irritating.

 So I'm choosing the better environment with my email local to the laptop and
 a select copy of important things (work and friends) copied to an account for
 my phone.

 [...]
  And inspite of all that it still sometimes happens that one has
  to work on a 'machine' that is not one's own.  What then?

 Fingers crossed the important stuff gets to my phone. If urgent I
 can reply from that, and I'm somewhat up to date on what I care
 about. The phone also has (disabled) access to my primary mail spool
 for circumstances when the laptop is offline. When online, the
 laptop empties that spool ad forwards particulars. When offline, I
 can consult what's queuing up.

  The unfortunate and inexorable conclusion is that when the 
  (wo)man - computer relation goes from 1-1 to 1-many, data and
  functionality will move away from 'own-machine' to the cloud.
  Will the data be subject to privacy-abuse and worse? Sure
  Will the functionality be as good as something one can fine-tune
  on one's own computer? heck no!

 I'm striving to resist that for now. Privacy. Security. Dependence
 on others' hardware and (not mine = wrong!) technical choices of
 software.

Thanks Cameron. I am not sure how to parse the last sentence but on the
whole thanks for a fair balanced and honest review.

I think I have similar sentiments, viz.  I am not one to gush about
the latest gizmodic blissiness, however whenever Ive resisted and been
a late adopter -- color monitor, laptop, cellphone, credit card etc
etc -- in the end Ive had to move with the time and not been
better-off for my earlier resistance.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why is there no natural syntax for accessing attributes with names not being valid identifiers?

2013-12-04 Thread rusi
On Wednesday, December 4, 2013 2:27:28 PM UTC+5:30, Ian wrote:
 On Tue, Dec 3, 2013 at 11:31 PM, rusi  wrote:
  Its a more fundamental problem than that:
  It emerges from the OP's second post) that he wants '-' in the attributes.
  Is that all?
 
  Where does this syntax-enlargement stop? Spaces? Newlines?

 At non-strings.

  setattr(foo, 21+21, 42)
 Traceback (most recent call last):
   File stdin, line 1, in module
 TypeError: attribute name must be string, not 'int'

Not sure what's your point. 

OP wants attribute identifiers like outer_fieldset-inner_fieldset-third_field.
Say I have a python expression: 
obj.outer_fieldset-inner_fieldset-third_field

It can (in the proposed extension) be parsed as above, or as:
obj.outer_fieldset - inner_fieldset-third_field
the first hyphen being minus and the second being part of the identifier.

How do we decide which '-' are valid identifier components -- hyphens
and which minus-signs?

So to state my point differently:
The grammar of python is well-defined
It has a 'sub-grammar' of strings that is completely* free-for-all ie just
about anything can be put into a string literal.
The border between the orderly and the wild world are the quote-marks.
Remove that border and you get complete grammatical chaos.
[Maybe I should have qualified my reference to 'spaces'.
Algol-68 allowed spaces in identifiers (for readability!!)
The result was chaos]

I used the spaces case to indicate the limit of chaos. Other characters (that
already have uses) are just as problematic.

* Oh well there are some restrictions like quotes need to be escaped, no 
  newlines etc etc -- minor enough to be ignored.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why is there no natural syntax for accessing attributes with names not being valid identifiers?

2013-12-04 Thread rusi
On Wednesday, December 4, 2013 4:03:14 PM UTC+5:30, Chris Angelico wrote:
 On Wed, Dec 4, 2013 at 9:09 PM, rusi  wrote:
  OP wants attribute identifiers like 
  outer_fieldset-inner_fieldset-third_field.
  Say I have a python expression:
  obj.outer_fieldset-inner_fieldset-third_field

 I don't think so. What the OP asked for was:

 my_object.'valid-attribute-name-but-not-valid-identifier'

 Or describing it another way: A literal string instead of a token.

This is just pushing the issue one remove away.
Firstly a literal string is very much a token -- lexically.
Now consider the syntax as defined by the grammar.

Let Ident = Set of strings* that are valid python identifiers -- 
something like [a-zA-Z][a-zA-Z0-9]*

Let Exp = Set to strings* that are python expressions

* Note that I am using string from the language implementers pov not language
user ie the python identifier var is the implementers string var whereas
the python string literal var is the implementer's string \var\

Now clearly Ident is a proper subset of Exp.

Now what is the proposal?
You want to extend the syntactically allowable a.b set.
If the b's can be any arbitrary expression we can have
var.fld(1,2) with the grammatical ambiguity that this can be
(var.fld)(1,2)   -- the usual interpretation
Or
var.(fld(1,2)) -- the new interpretation -- ie a computed field name.

OTOH if you say superset of Ident but subset of Exp, then we have to determine
what this new limbo set is to be. ie what is the grammatical category of 
'what-follows-a-dot' ??

Some other-language notes:
1. In C there is one case somewhat like this:
#include string
the string cannot be an arbitrary expression as the rest of C.  But then this 
is not really C but the C preprocessor

2. In lisp the Ident set is way more permissive than in most languages -- 
allowing operators etc that would be delimiters in most languages.
If one wants to go even beyond that and include say spaces and parenthesis -- 
almost the only delimiters that lisp has -- one must write |ident with spaces|
ie for identifiers the bars behave somewhat like strings' quote marks.
Because the semantics of identifiers and strings are different -- the lexical
structures need to reflect that difference -- so you cannot replace the bars
by quotes.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why is there no natural syntax for accessing attributes with names not being valid identifiers?

2013-12-04 Thread rusi
On Wednesday, December 4, 2013 3:59:06 PM UTC+5:30, Antoon Pardon wrote:
 Op 04-12-13 11:09, rusi schreef:
  I used the spaces case to indicate the limit of chaos. 
  Other characters (that
  already have uses) are just as problematic.

 I don't agree with the latter. As it is now python can make the
 distinction between

 from A import Band fromAimportB.

 I see no a priori reason why this should be limited to letters. A
 language designer might choose to allow a bigger set of characters
 in identifiers like '-', '+' and others. In that case a-b would be
 an identifier and a - b would be the operation. Just as in python
 fromAimportB is an identifier and from A import B is an import
 statement.

Im not sure what you are saying.
Sure a language designer can design a language differently from python.
I mentioned lisp. Cobol is another behaving exactly as you describe.

My point is that when you do (something like) that, you will need to change the
lexical and grammatical structure of the language.  And this will make 
for rather far-reaching changes ALL OVER the language not just in 
what-follows-dot.

IOW: I dont agree that we have a disagreement :-)
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why is there no natural syntax for accessing attributes with names not being valid identifiers?

2013-12-04 Thread rusi
On Wednesday, December 4, 2013 6:02:18 PM UTC+5:30, Antoon Pardon wrote:
 Op 04-12-13 13:01, rusi schreef:
  On Wednesday, December 4, 2013 3:59:06 PM UTC+5:30, Antoon Pardon wrote:
  Op 04-12-13 11:09, rusi schreef:
  I used the spaces case to indicate the limit of chaos. 
  Other characters (that
  already have uses) are just as problematic.
 
  I don't agree with the latter. As it is now python can make the
  distinction between
 
  from A import Band fromAimportB.
 
  I see no a priori reason why this should be limited to letters. A
  language designer might choose to allow a bigger set of characters
  in identifiers like '-', '+' and others. In that case a-b would be
  an identifier and a - b would be the operation. Just as in python
  fromAimportB is an identifier and from A import B is an import
  statement.
  
  Im not sure what you are saying.
  Sure a language designer can design a language differently from python.
  I mentioned lisp. Cobol is another behaving exactly as you describe.
  
  My point is that when you do (something like) that, you will need to change 
  the
  lexical and grammatical structure of the language.  And this will make 
  for rather far-reaching changes ALL OVER the language not just in 
  what-follows-dot.

 No you don't need to change the lexical and grammatical structure of
 the language. Changing the characters allowed in identifiers, is not a
 change in lexical structure. The only difference in lexical structuring
 would be that '-', '=' and other similars symbols would have to be
 treated like keyword like 'from', 'as' etc instead of being recognizable
 by just being present.

Well I am mystified…
Consider the string a-b in a program text.
A Cobol or Lisp system sees this as one identifier.
Python, C (and most modern languages) see this ident, operator, ident.

As I understand it this IS the lexical structure of the language and the lexer
is the part that implements this:
- in cobol/lisp keeping it as one
- in python/C breaking it into 3

Maybe you understand in some other way the phrase lexical structure?

 And the grammatical structure of the language wouldn't change at all.
 Sure a-b would now be an identifier and not an operation but that is
 of no concern for the parser.

About grammar maybe what you are saying will hold: presumably if the token-set
is the same, one could keep the same grammar, with the differences being 
entirely inter-lexeme ones.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why is there no natural syntax for accessing attributes with names not being valid identifiers?

2013-12-04 Thread rusi
On Thursday, December 5, 2013 8:13:49 AM UTC+5:30, Ian wrote:
 On Wed, Dec 4, 2013 at 3:09 AM, rusi  wrote:
  On Wednesday, December 4, 2013 2:27:28 PM UTC+5:30, Ian wrote:
  On Tue, Dec 3, 2013 at 11:31 PM, rusi  wrote:
   Its a more fundamental problem than that:
   It emerges from the OP's second post) that he wants '-' in the 
   attributes.
   Is that all?
  
   Where does this syntax-enlargement stop? Spaces? Newlines?
 
  At non-strings.
 
   setattr(foo, 21+21, 42)
  Traceback (most recent call last):
File stdin, line 1, in module
  TypeError: attribute name must be string, not 'int'
 
  Not sure what's your point.

 There was no point.  My comment was only meant to be amusing.

Duh! Im dense!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: extracting a heapq in a for loop - there must be more elegant solution

2013-12-03 Thread rusi
On Tuesday, December 3, 2013 5:48:59 PM UTC+5:30, Helmut Jarausch wrote:
 Hi,

 I'd like to extracted elements from a heapq in a for loop.
 I feel my solution below is much too complicated.
 How to do it more elegantly? 
 I know I could use a while loop but I don't like it.

How about

def in_sequence(h):
  for i in range(len(h)):
yield heapq.heappop(h)

Yeah its a bit fiddly:
1. i needed for for but not used
2. The range in the for loop -- normally a python 'smell'

If python3

def ins3(h):
   yield from (heapq.heappop(h) for i in range(len(h)))

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: The input and output is as wanted, but why error?

2013-12-03 Thread rusi
On Tuesday, December 3, 2013 9:18:43 PM UTC+5:30, geez...@gmail.com wrote:
 I am trying to solve this problem:

 http://codeforces.com/problemset/problem/71/A

 The input and output is as wanted, but my answer keep rejected, here is my 
 source code http://txt.do/1smv

 Please, I need help.

I suggest you take your problem one step at a time, like this:

1. You need to convert a string like localization to l10n
Write a function that takes strings like localization and RETURNS strings
like l10n. The function SHOULD NOT use print.

2. Now you need to convert a list of strings like
[word, localization, internationalization,
pneumonoultramicroscopicsilicovolcanoconiosis ]
to a list like
[word, l10n, i18n, p43s]
You can use the above function (1). NO PRINTS

3. Use the function in 2 above to solve the problem.
Here you may use print
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-03 Thread rusi
On Wednesday, December 4, 2013 6:10:05 AM UTC+5:30, Cameron Simpson wrote:
  Dennis Lee Bieber  writes:
   [NNTP] clients provide full-fledged editors
 and conversely full-fledged editors provide
 NNTP clients
   GNU Emacs is a LISP operating system disguised as a word processor.
 - Doug Mohney, in comp.arch


In a similar vein, most phones nowadays are just computers
with a pocket-size form-factor and some wireless networking.

So when you say…

 My first act on joining any mailing list is to download the entire
 archive into my local mail store. I have a script for this, for
 mailman at least.

and you happen to own 1 thingys that have general computing
functionality -- phones, laptops, desktops, etc -- do you sync
all your mailing-lists with all of them?

I know friends who have installed a home-data-store…

[Ive been resisting getting something like a NAS because each new
thingabob I own is one more thing to maintain. I also know from
past experience that such luddite battles are in the end always
lost -- Im no technophile but I expect to live and die a techie]

And inspite of all that it still sometimes happens that one has
to work on a 'machine' that is not one's own.  What then?

The unfortunate and inexorable conclusion is that when the 
(wo)man - computer relation goes from 1-1 to 1-many, data and
functionality will move away from 'own-machine' to the cloud.

Will the data be subject to privacy-abuse and worse? Sure
Will the functionality be as good as something one can fine-tune
on one's own computer? heck no!

But in the end, uniform access will trump all that -- compare the 
number of vi+emacs+eclipse users with google-doc users…

So to come back full-circle:

Earlier (your quote paraphrased)
Emacs is a full-blown OS -- only lacks a good editor.
Now: replace 'emacs' with 'firefox'.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Why is there no natural syntax for accessing attributes with names not being valid identifiers?

2013-12-03 Thread rusi
On Wednesday, December 4, 2013 11:15:05 AM UTC+5:30, Tim Roberts wrote:
 Piotr Dobrogost  wrote:
 
 Attribute access syntax being very concise is very often preferred 
 to dict's interface. 

 It is not very concise.  It is slightly more concise.

 x = obj.value1
 x = dct['value1']

 You have saved 3 keystrokes.  That is not a significant enough savings to
 create new syntax.  Remember the Python philosophy that there ought to be
 one way to do it.

Its a more fundamental problem than that:
It emerges from the OP's second post) that he wants '-' in the attributes.
Is that all?

Where does this syntax-enlargement stop? Spaces? Newlines?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Managing Google Groups headaches

2013-12-02 Thread rusi
On Monday, December 2, 2013 7:34:33 PM UTC+5:30, Neil Cerutti wrote:
 On 2013-12-02, Roy Smith  wrote:
  The current situation does force a lot of technology-focused
  people, progammers in particular, into a low opinion of Google.
  The crappy usenet portal is poor marketing.
 
  If you think, The set of people who are still trying to use
  usenet groups for anything serious is a lot of people, you
  don't understand the scale on which Google operates.

 It's probably hard to even visualize.

I was dreaming about in an alternate surreal world…
And now you guys have crashed me back to planet-earth-2013

   !MEAN!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: using ffmpeg command line with python's subprocess module

2013-12-02 Thread rusi
On Tuesday, December 3, 2013 6:45:42 AM UTC+5:30, iMath wrote:
 so is there any way to create a temporary file by Python here ?

http://docs.python.org/2/library/tempfile.html
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: [OT] Managing Google Groups headaches

2013-12-02 Thread rusi
On Tuesday, December 3, 2013 7:13:03 AM UTC+5:30, Roy Smith wrote:
  Michael Torrie  wrote:
  I wish Google hadn't bought a lot of things.  Seems like they bye up a
  lot of cool, nerd-centric apps and companies and then turned them into
  apps that do less and do it poorly, but in a slick way that appeals to
  the unwashed masses.  And add social to it.  Great for their bottom
  line, but horrible for those of us that actually use things as tools.
 And this is surprising, why?

Something floating around here (was it Ben Finney's footer??) went
something like: 

We must expect it; else we would be surprised

Put differently: One evidence of being awake (and not in dreamland) is 
surprise

A directly related piece by Nicholas Carr
http://www.theatlantic.com/magazine/archive/2008/07/is-google-making-us-stupid/306868/

Relevant at a deeper level is his IT doesn't matter
http://www.roughtype.com/?p=644

We software professionals cannot agree with this and keep our 
self-respect/sanity/identity. However its true; so denial remains the
only option.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: [OT] Managing Google Groups headaches

2013-12-02 Thread rusi
On Tuesday, December 3, 2013 8:39:02 AM UTC+5:30, Michael Torrie wrote:
 On 12/02/2013 06:43 PM, Roy Smith wrote:
  And this is surprising, why?

 Well back when Google was a young hip company they billed themselves as
 a bunch of nerds making stuff for nerds.  But yes we should have seen
 this coming.

So were Bill Gates and Jobs -- nerdy youths.
We tend to not think them so because they are an earlier generation.
-- 
https://mail.python.org/mailman/listinfo/python-list


  1   2   3   4   5   6   7   8   9   10   >