From Arthinator@aol.com Sat Jun 2 15:38:52 2001 From: Arthinator@aol.com (Arthinator@aol.com) Date: Sat, 2 Jun 2001 10:38:52 EDT Subject: [Edu-sig] Intermediate Python Message-ID: <9c.ed8b412.284a547c@aol.com> Rainy weekend on the East Coast has given me the opportunity to curl up abit with my newly acquired Programming Python 2nd Edition. Finding it a great text for the intermediate Pythoneer. Ran into a lot of "so that's how to do that"s in the first few chapters. Stuff I should have known considering the time I've spent with Python, but somehow never focused on, or didn't have the patience, will to find on my own. And enjoyed Guido's intro. ART From humbert@hagen.de Sat Jun 2 19:37:04 2001 From: humbert@hagen.de (L. Humbert) Date: Sat, 02 Jun 2001 20:37:04 +0200 Subject: [Edu-sig] Re: Intermediate Python References: Message-ID: <3B193250.3F2AB60C@hagen.de> > From: Arthinator@aol.com > Date: Sat, 2 Jun 2001 10:38:52 EDT > To: edu-sig@python.org > Subject: [Edu-sig] Intermediate Python > > Rainy weekend here (in Germany), too -- but rain is gardeners gold (;-) > on the East Coast has given me the opportunity to > curl up abit with my newly acquired Programming Python 2nd Edition. > Finding it a great text for the intermediate Pythoneer. you are quite right. We should mention, there are some resources online available: At http://nickel.as.arizona.edu/~barg/pp2e/ you'll find the examples of this book. http://www.oreilly.com/catalog/python2/ A sample Chapter: http://www.oreilly.com/catalog/python2/chapter/ch15.html Chapter 15 Advanced Internet Topics "Surfing on the Shoulders of Giants" Ludger From rhseabrook@mail.aacc.cc.md.us Sat Jun 2 18:34:13 2001 From: rhseabrook@mail.aacc.cc.md.us (Seabrook, Richard) Date: Sat, 02 Jun 2001 16:34:13 -0100 Subject: [Edu-sig] Python and serial port In-Reply-To: <3B193250.3F2AB60C@hagen.de> References: Message-ID: <5.1.0.14.0.20010602162751.009e9ba0@mail.aacc.cc.md.us> Does anyone on this list happen to know if there are Python modules for communicating through a serial port with external devices? Linux and Windoze, please. Thanks, Dick S. - Richard H. C. Seabrook Anne Arundel Community College Arnold, Maryland, USA 21012 http://enterprise.aacc.cc.md.us/~rhs/ From dyoo@hkn.eecs.berkeley.edu Sun Jun 3 06:43:24 2001 From: dyoo@hkn.eecs.berkeley.edu (Daniel Yoo) Date: Sat, 2 Jun 2001 22:43:24 -0700 (PDT) Subject: [Edu-sig] Python and serial port In-Reply-To: <5.1.0.14.0.20010602162751.009e9ba0@mail.aacc.cc.md.us> Message-ID: On Sat, 2 Jun 2001, Seabrook, Richard wrote: > Does anyone on this list happen to know if there are Python modules > for communicating through a serial port with external devices? Linux > and Windoze, please. Dear Richard, You might get a better response from the main newsgroup at comp.lang.python. Edu-sig is many focused on K-12 education issues, so most of us don't touch the serial port too much. If you're using the serial port on Windows, try: http://starship.python.net/crew/roger/ There are a few more modules listed under the Vaults of Parnassus: http://www.vex.net/parnassus/apyllo.py?find=serial which might help you get started. Good luck! From Jason Cunliffe" <5.1.0.14.0.20010602162751.009e9ba0@mail.aacc.cc.md.us> Message-ID: <000b01c0ec21$0de71da0$c3090740@megapathdsl.net> > Does anyone on this list happen to know if there are Python modules for > communicating through a serial port with external devices? Linux and > Windoze, please. > Thanks, > Dick S. No experience myself with this, but coinciedentally may need to very soon for a project. So please let me know if you find how to do this The Vaults of Parnassus is your best bet but it may be worth to look at PyGame http://www.pygame.org/ I know they have Joystick device API in there for example http://pygame.seul.org/docs/ref/pygame_joystick.html and PyGame is cross platform. PyGame is aiming at higher level device stuff, but perhaps you want lower level. People on the PyGame forums could help you better I imagine Also there is some MIDI Python code. Alas not too much decent Python MIDI stuff out there but what there is probably helpful. http://taz3.hyperreal.org/~est/python/MIDI/ http://www2.hku.nl/~simon2/python/ This is more recent [17-Jan-2001 01:18] To enable midi->python for driving Blender I think but no python source code - cpp and pyd only. Crosspatform serialsupport appears to be messy in Pyhon. Needs different libraries for each implementation I suspect. People working with GPS have no doubt trodden this serial i/o path already. The only link I can find about this at Parnasus is old and dead :-( http://www.vex.net/parnassus/apyllo.py?i=43251746 But it mention's Roger Burnhams work: http://starship.python.net/crew/roger/ Last but not least there's recent thread starting at http://groups.yahoo.com/group/python-list/message/122108 which mentions this posix python module ftp://ftp.visi.com/users/grante/python/PosixSerial.py and also Roger Burnhams page :-) good luck ./Jason From humbert@hagen.de Sun Jun 3 14:19:00 2001 From: humbert@hagen.de (L. Humbert) Date: Sun, 03 Jun 2001 15:19:00 +0200 Subject: [Edu-sig] The Great Computer Language Shootout Message-ID: <3B1A3944.D1746C27@hagen.de> Hi, after all it's worth to take a look at: http://www.bagley.org/~doug/shootout/ There you'll find a benchmark comparison of a number of programming languages, done by Doug Bagley Yes, Python is mentioned and compared there, too. python: ackermann ary ary2 echo except fibo hash hash2 heapsort lists matrix methcall moments nestedloop objinst prodcons random regexmatch reversefile sieve spellcheck strcat sumcol wc wordfreq All the source code is included (;- Ludger From rnd@onego.ru Sun Jun 3 15:35:13 2001 From: rnd@onego.ru (Roman Suzi) Date: Sun, 3 Jun 2001 18:35:13 +0400 (MSD) Subject: [Edu-sig] The Great Computer Language Shootout In-Reply-To: <3B1A3944.D1746C27@hagen.de> Message-ID: On Sun, 3 Jun 2001, L. Humbert wrote: >Hi, > >after all it's worth to take a look at: >http://www.bagley.org/~doug/shootout/ > >There you'll find a benchmark comparison of a number of programming >languages, done by >Doug Bagley > >Yes, Python is mentioned and compared there, too. > >python: >ackermann ary ary2 echo except fibo hash hash2 >heapsort lists matrix methcall moments nestedloop >objinst prodcons random regexmatch reversefile sieve >spellcheck strcat sumcol wc wordfreq > >All the source code is included (;- My observations are : 1. Programs were optimized for speed of execution, not size 2. ocaml is very promising language: - usually it's preformance is compared to c/c++ but it uses much less lines of code 3. Python usually is slower than Java and is in the same category as Ruby, Tcl, ... (and Perl for non-text tasks) 4. Java programs sizes are times larger than those of Python 5. Python is less gibberish than most of languages ;-) while not the most compact. 6. There were no APL in the contest to compete in code size category ;-) Seriously, Python doesn't shine according to this comparison :-( I expected it to be ahead of Java in most categories, expecially IO-related ones... Sincerely yours, Roman Suzi -- _/ Russia _/ Karelia _/ Petrozavodsk _/ rnd@onego.ru _/ _/ Sunday, June 03, 2001 _/ Powered by Linux RedHat 6.2 _/ _/ "To a cat, "NO!" means "Not while I'm looking."" _/ From pdx4d@teleport.com Sun Jun 3 18:00:29 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sun, 03 Jun 2001 10:00:29 -0700 Subject: [Edu-sig] The Great Computer Language Shootout In-Reply-To: References: <3B1A3944.D1746C27@hagen.de> Message-ID: <3.0.3.32.20010603100029.014d7070@pop3.norton.antivirus> At 06:35 PM 6/3/2001 +0400, you wrote: >On Sun, 3 Jun 2001, L. Humbert wrote: > >>Hi, >> >>after all it's worth to take a look at: >>http://www.bagley.org/~doug/shootout/ >> >>There you'll find a benchmark comparison of a number of programming >>languages, done by >>Doug Bagley >> >>Yes, Python is mentioned and compared there, too. >> >>python: >>ackermann ary ary2 echo except fibo hash hash2 >>heapsort lists matrix methcall moments nestedloop >2. ocaml is very promising language: agreed. in caml interactive you can write a function to compose two functions, i.e. build r(x) from f(g(x)) or g(f(x)). #let compose f g = function x -> f(g(x));; val compose : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b = #let cos2 = compose square cos;; val cos2 : float -> float = Drawing a blank this AM re how to do this in Python, trying various things with little lambda. Clues? Kirby From pdx4d@teleport.com Sun Jun 3 18:25:08 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sun, 03 Jun 2001 10:25:08 -0700 Subject: [Edu-sig] composing functions (was Great Computer Shootout) In-Reply-To: <3.0.3.32.20010603100029.014d7070@pop3.norton.antivirus> References: <3B1A3944.D1746C27@hagen.de> Message-ID: <3.0.3.32.20010603102508.014e8548@pop3.norton.antivirus> >Drawing a blank this AM re how to do this in Python, trying >various things with little lambda. > >Clues? > >Kirby If I write in a module, I can do it like this: Module: proto2.py ====== from __future__ import nested_scopes def compose(f,g): return lambda x: f(g(x)) ====== >>> def f(x): return x*x >>> def g(x): return x+2 >>> from proto2 import compose >>> h = compose(f,g) >>> h at 0123593C> >>> h(10) 144 However, I can't get a similar compose to work interactively be entering the function in IDLE, even if I import nested_scopes. This relates to an earlier post, where I was having difficulty getting the nested feature to work in top-level IDLE.0.8. Kirby From liao@sandiego.edu Sun Jun 3 18:17:13 2001 From: liao@sandiego.edu (Luby Liao) Date: Sun, 3 Jun 2001 10:17:13 -0700 (PDT) Subject: [Edu-sig] The Great Computer Language Shootout In-Reply-To: <3.0.3.32.20010603100029.014d7070@pop3.norton.antivirus> References: <3B1A3944.D1746C27@hagen.de> <3.0.3.32.20010603100029.014d7070@pop3.norton.antivirus> Message-ID: <15130.28953.677377.228353@holycow.acusd.edu> Kirby, > >2. ocaml is very promising language: > > agreed. > > in caml interactive you can write a function to compose > two functions, i.e. build r(x) from f(g(x)) or g(f(x)). > > #let compose f g = function x -> f(g(x));; > val compose : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b = > > #let cos2 = compose square cos;; > val cos2 : float -> float = > > Drawing a blank this AM re how to do this in Python, trying > various things with little lambda. > > Clues? How about: def compose(f,g): global _f, _g _f = f _g = g return lambda x: _f(_g(x)) if __name__ == '__main__': from math import * print compose(sin, sqrt)(3) print sin(sqrt(3)) 0.98702664499 0.98702664499 cheers, Luby From pdx4d@teleport.com Sun Jun 3 19:33:43 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sun, 03 Jun 2001 11:33:43 -0700 Subject: [Edu-sig] The Great Computer Language Shootout In-Reply-To: <15130.28953.677377.228353@holycow.acusd.edu> References: <3.0.3.32.20010603100029.014d7070@pop3.norton.antivirus> <3B1A3944.D1746C27@hagen.de> <3.0.3.32.20010603100029.014d7070@pop3.norton.antivirus> Message-ID: <3.0.3.32.20010603113343.014edddc@pop3.norton.antivirus> >How about: > > def compose(f,g): > global _f, _g > _f = f > _g = g > return lambda x: _f(_g(x)) > > if __name__ == '__main__': > from math import * > print compose(sin, sqrt)(3) > print sin(sqrt(3)) > > 0.98702664499 > 0.98702664499 > > >cheers, Luby The problem with this is if I want to save successive composed functions, the 2nd will corrupt the 1st, e.g. >> def f(x): return x*x >> def g(x): return x+2 >> def r(x): return r-100 >> h = compose(f,g) >> h(10) 144 >> z = compose(f,r) >> h(10) 8100 The compose method in proto2 has the advantage of not depending on global definitions of the original functions remaining elsewhere in memory, i.e. you can go: >> from proto2 import compose >> def k(x): return x**3 >> def j(x): return x-7 >> h = compose(k,j) >> del k # destroy k >> del j # destroy j >> h(10) # still works! 27 Kirby From dustin@cs.uchicago.edu Sun Jun 3 19:45:53 2001 From: dustin@cs.uchicago.edu (Dustin Mitchell) Date: Sun, 3 Jun 2001 13:45:53 -0500 (CDT) Subject: [Edu-sig] The Great Computer Language Shootout In-Reply-To: <15130.28953.677377.228353@holycow.acusd.edu> Message-ID: On Sun, 3 Jun 2001, Luby Liao wrote: Here's a better way to pass extra variables to a lambda, without globals: def compose(f,g): return lambda x,_f=f,_g=g : _f(_g(x)) That is the closest to a lambda binding you're going to get. Python doesn't automatically slurp up local variables when it creates a lambda, but it can be easily simulated using default arguments, as above. I read about this in an article -- I think by Guido -- a while ago, but I don't have time to look it up right now. Enjoy. Dustin > How about: > > def compose(f,g): > global _f, _g > _f = f > _g = g > return lambda x: _f(_g(x)) > > if __name__ == '__main__': > from math import * > print compose(sin, sqrt)(3) > print sin(sqrt(3)) > > 0.98702664499 > 0.98702664499 > > > cheers, Luby > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > --------------------------------------------------------------------- | Dustin Mitchell )O( | --------------------------------------------------------------------- From liao@sandiego.edu Sun Jun 3 19:13:43 2001 From: liao@sandiego.edu (Luby Liao) Date: Sun, 3 Jun 2001 11:13:43 -0700 (PDT) Subject: [Edu-sig] The Great Computer Language Shootout In-Reply-To: References: <15130.28953.677377.228353@holycow.acusd.edu> Message-ID: <15130.32343.464571.186729@holycow.acusd.edu> Dustin and Kirby, thank you for the insight. cheers, Luby > On Sun, 3 Jun 2001, Luby Liao wrote: > > Here's a better way to pass extra variables to a lambda, without globals: > > def compose(f,g): > return lambda x,_f=f,_g=g : _f(_g(x)) > > That is the closest to a lambda binding you're going to get. Python > doesn't automatically slurp up local variables when it creates a lambda, > but it can be easily simulated using default arguments, as above. > > I read about this in an article -- I think by Guido -- a while ago, but I > don't have time to look it up right now. > > Enjoy. > > Dustin > > > How about: > > > > def compose(f,g): > > global _f, _g > > _f = f > > _g = g > > return lambda x: _f(_g(x)) > > > > if __name__ == '__main__': > > from math import * > > print compose(sin, sqrt)(3) > > print sin(sqrt(3)) > > > > 0.98702664499 > > 0.98702664499 > > > > > > cheers, Luby > > > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig@python.org > > http://mail.python.org/mailman/listinfo/edu-sig > > > > --------------------------------------------------------------------- > | Dustin Mitchell )O( | > --------------------------------------------------------------------- From Arthur_Siegel@rsmi.com Mon Jun 4 01:00:23 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Sun, 3 Jun 2001 19:00:23 -0500 Subject: [Edu-sig] programming for artists Message-ID: <0074C9D9.N22121@rsmi.com> Jason writes - >Among the multimedia Python goodies I recommend: >-Blender >-LightFlow >-PyGame >-Snack >-Poser4ProPack etc. And - >Other artist/programmers using Python: >Disney Imagineering >Larry Cuba >http://www.well.com/user/cuba/ I would add significantly, if my understasnding is correct,` Industrial Light & Magic - sort the THE 3d animation studio. A comprehensive list of multi-media apps - including commerical ones - using Python in some manner could go on significantly. The point is that the market is speaking in a clear way by finding a significant niche for Python in this kind of work. Interestingly, it's all pretty far off to the side of the things happening closer to the inside of the Python community. I think it safe to guess that there are 100 posts to comp.lang.python related to to Web based technologies for every one related to multimedia. All this is mostly random observation. Except that I am surprised the 'inside' Python community hasn't better embraced these developments. A cgi related question on comp.lang.python will always seem appropriate - a Blender related one always off-key. I am unable to even attempt to articulate what it is in the design of Python that makes it particularly well suited for this kind of work. But I do very much believe it is, and the reasons could probably be described in technical terms by someone more literate in CS than myself. I believe the easy ability to form and iterate lists of heterogenous objects is one such language feature - but don't really know how distinctive that is among languages. It is also interesting to note that in a recent interview (I think from IPC9), Guido mentioned that he was particularly proud/appreciative of some of the artistic work done with Python. The context led me to conclude he was probably referring to Larry Cuba's work. The little marketing man in my head says that Python should show off a little better in this arena. The standard distribution does not give any real hint that Python is a player in the world of multi-media. The facts are it very much is. I do think that VPython is still the easiest way to show off things a bit, but understand the complexities related to the IDLE versions, the necessity for Numeric, etc. So I do come a bit to a dead end in trying to come to any specific ideas. ART From Jason Cunliffe" Message-ID: <001e01c0eca7$34df0ae0$c3090740@megapathdsl.net> wrote: > I would add significantly, if my understasnding is correct,` > Industrial Light & Magic - sort the THE 3d animation > studio. Yes. Art Thanks for catching that one.. > A comprehensive list of multi-media apps - including commerical ones - > using Python in some manner could go on significantly. > > The point is that the market is speaking in a clear way by finding > a significant niche for Python in this kind of work. Gets the job done quickly, pragmatically, is readable by people working under insane deadlines etc..The Film + TV bussiness udnerstand that most of what they do need only last as long as the illusion needs to. Many artists and technicians aworking in film are amazingly quick to adapt. Less preoccupied in theory and rigour, they need to experiment, model extend and combine. Python fits their heads I guess. > Interestingly, it's all pretty far off to the side of the things happening > closer > to the inside of the Python community. > > I think it safe to guess that there are 100 posts to comp.lang.python > related to to Web based technologies for every one related to > multimedia. I think one reason is that many people working in commerical media do not tend to spend time online very much during projects unless they are in research stage of jobs or simply really get stuck. Many Artists are often quite private. When was the last time Larry Cuba posted to comp.lang.python? Perhaps he had no need, perhaps not his style.. I know he is not interested in Python for Python's sake, but as a tool to realize his artistic ideas. comp.lang.python is well populated by people for whom Python is a world unto itself as are many [most] other newsgroups. I have also found that most lists and newsgroups tend to be rather design-blind [programmer-oriented] in a creative media sense. So those type of discussions don't happen adn people neednig that dialogue go elsewhere, often using private email between a small group. Thus many users fly under a nd over the obvious 'radar'. For example I worked a few years ago in the UK at a very busy CDRMOM multimedia house. They had _no_ time to be online. The best they could do was to go across the room and ask someone else. Once they a had a basic set of working tools/techniques, they just kept on extending them as each project demanded. At lunchtime they might discuss a 'better' way, but for presetnation next morning at 9am they would use whatever worked, whihc was also what they knew would work. > All this is mostly random observation. > > Except that I am surprised the 'inside' Python community hasn't > better embraced these developments. A cgi related question on > comp.lang.python will always seem appropriate - a Blender related > one always off-key. Right. For example almost never do you see Blender, Lightflow, related questions. But you know there are people out there learning and using these tools, The handful of gurus act as magnets for newbies interested in those \, so they gather around those sites and lisst, only rarely surfacing to ask some {dict} or debug some module installation question. ALso Python is quite easy and often people don't need to do very complicated things at all - hence no posts. OTOH Artists struggling with programming are overwhelmed or bored by technical groups. They tend to gather in forums with others working from similar artistic perspective. Also many use Macs in preference to Win32 or *nuix because that is what their art schools got them started on. How many times have you seen a post about Alice, or VPython or even the work discussed here? How many times have you seen people from Disney or ILM posting to the list? Pehasp they do under a different name. Often there are strict NDA[non-disclosure agreements] in FX business. This is the same in WallStreet to. Some people simply don't like to tip their hand, while others are embarrassed about the quality of their code, even though it does 'work' for them, they feel thre is nothing to publicize or that would be useful to others, so they keep quiet. Just like many lists have many listening and learning but not posting. A friend presently works on the specialFX crew for the mega 'Lord of the Rings' trilogy being made in New Zealand. He uses ML because he sys he doesnt have so many 'surprises'. He writes most of his own code becuase he knows what it does, and takes it with him. He started out as an architecture student who fell in love with radiosity early on. That dragged him into Unix programming and he never looked back. > The little marketing man in my head says that Python should show off a little > better in this arena. The standard distribution does not give any real hint > that > Python is a player in the world of multi-media. The facts are it very much is. And growing rapidly.. There is a book project I would like to work with people here on: Programming for Artists with Python. PIL LightFlow PoserPro Blender etc.. A shame though there is not yet any category and encouragement to highlight creative work in this area on either python.org or The Vaults. It would be great to see how art+media+architecture schools might benefit from CP4E more oriented to their needs and sensibilities.. ./Jason From agauld@crosswinds.net Mon Jun 4 08:10:04 2001 From: agauld@crosswinds.net (Alan Gauld) Date: Mon, 04 Jun 2001 08:10:04 +0100 Subject: [Edu-sig] programming for artists Message-ID: <3b1b35ba.634d.0@crosswinds.net> >And growing rapidly.. There is a book project I would > like to work with people here on: >Programming for Artists with Python. > >PIL >LightFlow >PoserPro >Blender >etc.. > I know nothing about multi media programming (except a very little in Haskell coz thats what my Haskell book uses for examples!). But I'd almost certainly buy such a book if you ever get round to writing it :-) Alan G. From Jason Cunliffe" Message-ID: <004801c0ed23$3ed8ae80$c3090740@megapathdsl.net> "Alan Gauld" wrote > I know nothing about multi media programming (except > a very little in Haskell coz thats what my Haskell > book uses for examples!). > > But I'd almost certainly buy such a book > if you ever get round to writing it :-) Speaking of which.. might you be interested in contributing? Seriously, I think there is a book to be written. I would be happy to act as general editor for it. I believe such a book would best be an anthology of writers, perspectives and applications. I am certainly no Python expert, but I see where Python 'fits' in ways that perhaps others don't. Nor am I a teacher, but I am a student [not formally enrolled, except permanently at the School-of-Life U.] An interetsing editorial question is how to balance general techniques against application-specific API uses. There are now several good Python books out there - so no need to repeat those. But ther is the matter of focus, metaphor and the language suitable for multimedia. The two main axes are multimedia-oriented people wnting to extend their skills via Python vs. people interested in programming with Python who may not be familiar or aware of multimedia. The anthology approach is popular now for a number specialized programming books and also mutlimedia.For example Flash5 now has several new books out where various designers and programmers discuss their approach plus specific techniques. These books are more like "Thinking Flash5". Unfortunately the contents tends to be rapidly outdated by software updates and the speed at which the authors themselves improve. What would you like to see? I would love to hear from any EDU-SIG contributors interested in this. ./Jason From humbert@hagen.de Mon Jun 4 17:30:22 2001 From: humbert@hagen.de (L. Humbert) Date: Mon, 04 Jun 2001 18:30:22 +0200 Subject: [Edu-sig] Let's talk about something like abstraction? But take a look first ... Message-ID: <3B1BB79E.978CD332@hagen.de> Hi, there are several programmers out there and they do stuff like asked here before a) There is a tool, called parrot (;-) to produce GUIs out of formal description http://www.vision25.demon.co.uk/prog/parrot.html b) there are frameworks to simple write computer games pyui http://pyui.sourceforge.net/ http://prdownloads.sourceforge.net/pyui/pyui_0.3.zip but you need to get pygame http://pygame.seul.org/ c) an explorer for Python ... named Boa http://boa-constructor.sourceforge.net/ you will be able to handle not only Python-Source (and produce nice UML), but Zope SSH FTP too Ludger From pdx4d@teleport.com Mon Jun 4 17:44:59 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 04 Jun 2001 09:44:59 -0700 Subject: [Edu-sig] implementing summation notation (in Scheme & Python) In-Reply-To: <004801c0ed23$3ed8ae80$c3090740@megapathdsl.net> References: <3b1b35ba.634d.0@crosswinds.net> Message-ID: <3.0.3.32.20010604094459.014fc550@pop3.norton.antivirus> The generic sigma notation concept is presented in Scheme by authors Abelson and Sussman [1] as follows [2]: (define (sum term a next b) (if (> a b) 0 (+ (term a) (sum term (next a) next b)))) a and b are start, end values, with (term a) giving the actual term to be summed -- which might be a itself -- and (next a) giving the next value for a. In other words, both term and next are functions, not numbers. Here's the same thing in Python: def sum(term, a, next, b): if a>b: return 0 return term(a) + sum(term,next(a),next,b) And a non-recursive version: def sum2(term, a, next, b): total = 0 while ab: output.append(a) a = next(a) return output return reduce(add,[term(x) for x in indexlist(a,next,b)]) Recursively: from __future__ import nested_scopes from operator import add def sum4(term,a,next,b): def indexlist(a,next,b): if a>b: return [] else: return [a] + indexlist(next(a),next,b) return reduce(add,[term(x) for x in indexlist(a,next,b)]) If working in IDLE, you need to save the above in a new window, then do CTRL-F5 to add it into to your namespace. This is because the from __future__ thing doesn't work in the shell window. There's another problem with sum4 though -- it doesn't take advantage of locally scoped bindings, i.e. there's no need to pass next and b as parameters to indexlist if these are fixed within the outer function. So a rewrite of sum4 might be: def sum4(term,a,next,b): def indexlist(s=a): if s>b: return [] else: return [s] + indexlist(next(s)) return reduce(add,[term(x) for x in indexlist(a)]) I've introduced s to show that it changes through iterations and only initializes to a. sum3 could similarly benefit from local bindings: def sum3(term,a,next,b): def indexlist(): s=a output = [] while not s>b: output.append(s) s = next(s) return output return reduce(add,[term(x) for x in indexlist()]) although again, if in IDLE, this will involve transfering the def to a saved module/window and executing it with CTRL-F5. If you want to sum consecutive integers, term(a) is just a, so the authors write ident: (define (identity x) x) and another function to increment by 1: (define (inc n) (+ n 1)) We'll do the same in Python and find 1+2+3+...+10: def ident(a): return a def inc(a): return a+1 >>> sum(ident, 1, inc, 10) 55 >>> sum2(ident, 1, inc, 10) 55 >>> sum3(ident, 1, inc, 10) 55 >>> sum4(ident, 1, inc, 10) 55 Scheme: (define (pi-sum a b) (define (pi-term x) (/ 1.0 (* x (+ x 2)))) (define (pi-next x) (+ x 4)) (sum pi-term a pi-next b)) > (* 8 (pi-sum 1 1000)) 3.139592655589783 Python: def pi_sum(a,b): def pi_term(x): return 1.0/(x * (x+2)) def pi_next(x): return x+4 return sum(pi_term,a,pi_next,b) >>> 8 * pi_sum(1,1000) 3.1395926555897828 -- the above summation converges to pi. Kirby [1] http://mitpress.mit.edu/sicp/full-text/book/book.html [2] http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html From Brent.Burley@disney.com Mon Jun 4 17:48:54 2001 From: Brent.Burley@disney.com (Brent Burley) Date: Mon, 04 Jun 2001 09:48:54 -0700 Subject: [Edu-sig] Re: Edu-sig digest, Vol 1 #316 - 6 msgs References: Message-ID: <3B1BBBF6.63538F13@fa.disney.com> Roman Suzi said: > On Sun, 3 Jun 2001, L. Humbert wrote: > >http://www.bagley.org/~doug/shootout/ > > ... > Seriously, Python doesn't shine according to > this comparison :-( > I expected it to be ahead of Java in most categories, > expecially IO-related ones... I'm not sure this is the right forum for this discussion, but lest any educators shy away from Python because of this, I'm offering this rebuttal. First, I don't think these benchmarks reflect real-world usage. Second, I don't think they have all been optimized equally. Third, some of languages bend the definition of the test or cheat using knowledge of the nature of the test. That said, I think the benchmarks are interesting and do a reasonable job of reflecting the relative overall performance of the languages involved (within a factor of 2 or so); it's just hard to do an accurate benchmark. But, my biggest criticism of the benchmark is that runtime speed isn't always (or even very often) the most important quality of a language. While I do think performance is the weakest aspect of Python, it's more than fast enough (especially on today's PC's) for most tasks. And if you're doing something performance critical you're most likely going to use C or C++. The beauty of Python is that is mixes very well with C/C++. I working on a very large project where I'm trying to do everything I can get away with in Python. The Python parts are developed more quickly, are easier to modify, and tend to be more robust. I rewrite modules (or portions of them) in C++ when performance becomes an issue. I think the performance of Python could be quite a bit better, and I think there has been more effort to focus on improving Python's performance recently. But the dynamic nature of Python puts a limit on how much can be achieved. I think the addition of optional type declarations on variables would help a lot with computations. And the cost of name lookups (especially methods and members) seems an obvious target for a big payback. I looked at one of the benchmarks, strcat, as an example. The goal is to build a large string by incremental concatenation. Unfortunately (for this benchmark) because of the immutable nature of Python strings, Python doesn't support direct concatenation. The Python implementation instead builds a list of strings and then calls string.join on the list. This seems like cheating to me, especially since it just puts the same string in the list n times. But even so, it is not the best implementation. I tried preallocating the list rather than using append() and cut the time in half. I then tried using (string * n) to replicate the string and cut the time by an additional 95%! This is even more cheating, but it achieves the correct program result. My point is that the benchmarks are too oriented towards implementing a very small program fragment in a very particular way. If it were possible to benchmark programmer productivity objectively, I think Python would rate very high. I've been a professional programmer for roughly 13 years and I've used Fortran, Pascal, C, Lisp, Assembly, Perl, C++, and Python on the job (for at least 2 years each). I would definately say that Python gives me the most productivity by a significant margin. Brent Burley From Brent.Burley@disney.com Mon Jun 4 18:05:57 2001 From: Brent.Burley@disney.com (Brent Burley) Date: Mon, 04 Jun 2001 10:05:57 -0700 Subject: [Edu-sig] Why Women Avoid Computer Science Message-ID: <3B1BBFF5.E9F88B94@fa.disney.com> There's an interesting opinion piece in this month's Communications of the ACM by Paul De Palma, a professor at Gonzaga University in Spokane, WA. His theory is that young men are attracted to the tinkering, hobbyist aspects of programming and that these same aspects and the ill-defined nature of computing drive young women away. Paul points out in contrast that women have always received a significant percentage of undergraduate math degrees and suggests that if programming were taught in the same manner as mathematics, more women would be attracted to it. Paul recommends keeping things simple and as close to pure logic as possible and keeping programs short and focused on determinate problems similar to math exercises. He also suggests that choice of programming language is insignificant and that it should only be treated as a notational system. (On this last point, I expect a lot of you would disagree). Brent Burley From pdx4d@teleport.com Mon Jun 4 18:06:30 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 04 Jun 2001 10:06:30 -0700 Subject: [Edu-sig] implementing summation notation (in Scheme & Python) In-Reply-To: <3.0.3.32.20010604094459.014fc550@pop3.norton.antivirus> References: <004801c0ed23$3ed8ae80$c3090740@megapathdsl.net> <3b1b35ba.634d.0@crosswinds.net> Message-ID: <3.0.3.32.20010604100630.015046f8@pop3.norton.antivirus> >And a non-recursive version: > > def sum2(term, a, next, b): > total = 0 > while a b, as a may indeed equal b on the final loop. I had that in the version of sum2 actually running at the command line, which confuses things further, as anyone who cuts and pastes my code won't get the same result. Such is life. * * * In doing this post, I discovered what I consider rather strange behavior in the nested scopes department and posted about it to comp.lang.python. Here's a copy of that post. Maybe someone here can help rationalize this behavior: ========= I don't get why the following two functions, each with internal functions that take advantage of lexical scoping (new in 2.1), behave so differently: from __future__ import nested_scopes def spam(a,b): def bar(): output = [] print b print a output.append(a+1) return output return [x for x in bar()] def foo(a,b): def bar(): output = [] print b print a a += 1 output.append(a) return output return [x for x in bar()] >>> spam(1,10) 10 1 [2] >>> foo(1,10) 10 Traceback (most recent call last): File "", line 1, in ? foo(1,10) File "d:\program files\python21\ocn\test.py", line 38, in foo return [x for x in bar()] File "d:\program files\python21\ocn\test.py", line 34, in bar print a UnboundLocalError: local variable 'a' referenced before assignment I can fix foo() by assigning a to s and doing the increment on s: def foo(a,b): def bar(): output = [] print b print a s = a # added this line s += 1 # added this line output.append(s) return output return [x for x in bar()] But should a=a+1 (or a += 1) really break the initial binding of a to the outer scope? Is this intended? Given a and b initialize to the outer scope values just fine in spam(), it seems odd to unbind an already initialized variable at "compile time" just because we add 1 to it. Seems too subtle for its own good. a=a+1 would seem a runtime operation on a variable that is already initialized at compile time thanks to lexical scoping. Kirby CC replies/insights to pdx4d@teleport.com and/or above address please ========= From list-python-edu@ccraig.org Mon Jun 4 18:52:58 2001 From: list-python-edu@ccraig.org (list-python-edu@ccraig.org) Date: 04 Jun 2001 13:52:58 -0400 Subject: [Edu-sig] implementing summation notation (in Scheme & Python) In-Reply-To: <3.0.3.32.20010604100630.015046f8@pop3.norton.antivirus> References: <004801c0ed23$3ed8ae80$c3090740@megapathdsl.net> <3b1b35ba.634d.0@crosswinds.net> <3.0.3.32.20010604100630.015046f8@pop3.norton.antivirus> Message-ID: <878zj85dz9.fsf@elbereth.ccraig.org> Kirby Urner writes: > In doing this post, I discovered what I consider rather strange > behavior in the nested scopes department and posted about it to > comp.lang.python. Here's a copy of that post. Maybe someone here > can help rationalize this behavior: > [problem with name binding in nested scopes] >From PEP227: The name binding operations are argument declaration, assignment, class and function definition, import statements, for statements, and except clauses. Each name binding occurs within a block defined by a class or function definition or at the module level (the top-level code block). If a name is bound anywhere within a code block, all uses of the name within the block are treated as references to the current block. (Note: This can lead to errors when a name is used within a block before it is bound.) augmented assignment is a 'name binding operation', which causes the name 'a' to be used a a local variable in 'bar' rather than included from the containing scope ('foo'). Note that this is done at compile time, not runtime as you suggested (there isn't much of a difference in Python, but there is one), because the function bar (like all functions) was fully compiled before the call to it in foo. -- Christopher A. Craig "Bah! Puny, weak newsreaders!"- GNUS info, in reference to 'global' kills From Brent.Burley@disney.com Mon Jun 4 18:53:34 2001 From: Brent.Burley@disney.com (Brent Burley) Date: Mon, 04 Jun 2001 10:53:34 -0700 Subject: [Edu-sig] Re: The Great Computer Language Shootout References: <3B1BBBF6.63538F13@fa.disney.com> Message-ID: <3B1BCB1E.76D815C@fa.disney.com> > > >http://www.bagley.org/~doug/shootout/ > 2. ocaml is very promising language: > - usually it's preformance is compared to c/c++ > but it uses much less lines of code Not to knock ocaml, but this is one of the worst cases of cheating in these benchmarks. ocaml has a built-in 'currying' capability where you can tell it to record the results of a function and it will cache the result away in a hash table. The Ackerman function in particular is supposed to test how well a language handles recursion. By saving previous results, the recursion is avoided and the whole purpose of this test is defeated. Many of the ocaml entries use currying. Currying can be easily added to the Python versions too, but then what's the point of the benchmark? Brent Burley (Sorry for goofing the subject line on my previous post.) From delza@alliances.org Mon Jun 4 19:10:31 2001 From: delza@alliances.org (Dethe Elza) Date: Mon, 04 Jun 2001 11:10:31 -0700 Subject: [Edu-sig] programming for artists In-Reply-To: <004801c0ed23$3ed8ae80$c3090740@megapathdsl.net> Message-ID: I would love to see a book like this. If I can figure out an appropriate chunk, I'd be interested in contributing as well. I think the application of Python to multimedia is key to "Programming for the Fun of It." -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies >> But I'd almost certainly buy such a book >> if you ever get round to writing it :-) > > Speaking of which.. might you be interested in contributing? From Arthur_Siegel@rsmi.com Mon Jun 4 20:11:49 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Mon, 4 Jun 2001 14:11:49 -0500 Subject: [Edu-sig] re: Why Women Avoid Computer Science Message-ID: <00751037.N22121@rsmi.com> This actually rings much truer to me than an earlier thread on this subject. There the argument seemed to be being made (my us guys mostly) that women are more comfortable in the verbal world, so that a programming curricula that emphasized math was somehow exclusionary. Clearly I have the tinkerers, trial and error approach to learning. My refusal to learn to use a debugger is probably the programming equivalent to refusing to ask for directions when lost. On the other hand I have always needed to play off against something hard and concrete - math. I at least need a clear indication when it is I'm lost. Implementing mathematical concepts at least gives me that. Adding a visual element , in 3d - but 3d math, not picture book stuff - has brought another degree of concreteness to the feedback cycle. Apparently there is some empirical evidence out there that the approach I came to, stumbled upon, has some measurable merit. ART >There's an interesting opinion piece in this month's Communications of >the ACM by Paul De Palma, a professor at Gonzaga University in Spokane, >WA. His theory is that young men are attracted to the tinkering, >hobbyist aspects of programming and that these same aspects and the >ill-defined nature of computing drive young women away. Paul points out >in contrast that women have always received a significant percentage of >undergraduate math degrees and suggests that if programming were taught >in the same manner as mathematics, more women would be attracted to it. >Paul recommends keeping things simple and as close to pure logic as >possible and keeping programs short and focused on determinate problems >similar to math exercises. He also suggests that choice of programming >language is insignificant and that it should only be treated as a >notational system. (On this last point, I expect a lot of you would >disagree). Brent Burley From pdx4d@teleport.com Mon Jun 4 19:36:57 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 04 Jun 2001 11:36:57 -0700 Subject: [Edu-sig] implementing summation notation (in Scheme & Python) In-Reply-To: <878zj85dz9.fsf@elbereth.ccraig.org> References: <3.0.3.32.20010604100630.015046f8@pop3.norton.antivirus> <004801c0ed23$3ed8ae80$c3090740@megapathdsl.net> <3b1b35ba.634d.0@crosswinds.net> <3.0.3.32.20010604100630.015046f8@pop3.norton.antivirus> Message-ID: <3.0.3.32.20010604113657.01510e84@pop3.norton.antivirus> >augmented assignment is a 'name binding operation', which causes the >name 'a' to be used a a local variable in 'bar' rather than included >from the containing scope ('foo'). Note that this is done at compile >time, not runtime as you suggested (there isn't much of a difference >in Python, but there is one), because the function bar (like all >functions) was fully compiled before the call to it in foo. > Thanks for quoting the relevant PEP. Helpful. Kirby From Arthur_Siegel@rsmi.com Mon Jun 4 21:41:49 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Mon, 4 Jun 2001 15:41:49 -0500 Subject: [Edu-sig] re: programming for artists Message-ID: <00751DC5.N22121@rsmi.com> Jason writes - >Seriously, I think there is a book to be written. I would be happy to act as >general editor for it. I believe such a book would best be an anthology of >writers, perspectives and applications. I am certainly no Python expert, but >I see where Python 'fits' in ways that perhaps others don't. Nor am I a >teacher, but I am a student [not formally enrolled, except permanently at >the School-of-Life U.] An interetsing editorial question is how to balance >general techniques against application-specific API uses. My issue is sorting out CP4E goals from the multi-media thrust. My own recent posts sort of speak to this confusion, at least my own. One encouraging the use of simplified Web technologies as a basis for a CP4E curricula. One noticing (complaining) that Pythons Web technologies are well-known and promoted whereas its multimedia facility confined to its own Python underground. One lobbying for keeping math in a central place in CP4E efforts, and seeing 3D visualization as a tool, but subserviant tool, in a curricla designed around mathematical concepts. On the other hand, nobody who finds programming fun can argue with a Programming for the Fun of It approach. Just think it should be kept clearly separate from Python in Education. Well done, it will serve some purpose toward that end. But it should be free-wheeling enough that it need not be burdened with any serious intent, or pretensions to same. If we are promoting Fun, and programming as a means to that end, I'm in. But at some point it may not be fair to burden Edu-Sig as the forum for the effort, it seems to me. ART From Brent.Burley@disney.com Mon Jun 4 20:48:14 2001 From: Brent.Burley@disney.com (Brent Burley) Date: Mon, 04 Jun 2001 12:48:14 -0700 Subject: [Edu-sig] Re: The Great Computer Language Shootout References: <3B1BBBF6.63538F13@fa.disney.com> <3B1BCB1E.76D815C@fa.disney.com> Message-ID: <3B1BE5FE.BD7511E1@fa.disney.com> Brent Burley wrote: > Not to knock ocaml, but this is one of the worst cases of cheating in > these benchmarks.... OK, before I get flamed to death (or maybe I already have and don't know since I only get the daily digest ;-) ... I was confusing currying and memoizing - Monday morning brain vacation. In Bagley's discussion of Ackermann's function, he says that languages that perform automatic tail-recursion elimination (which ocaml does) will perform significantly better. He also mentions that some functional languages implement a feature similar to automatic memoization (though he doesn't mention ocaml explicitly in this regard). Ocaml is clearly an impressive language, and I withdraw my accusation of cheating on the benchmark - there's no fault on ocaml or the ocaml programs. However, if a language can bypass a function call on a test that's meant to measure function call overhead, then the test isn't doing its job (IMHO). This adds more to the argument that it's hard to make a meaningful benchmark. Brent From Jason Cunliffe" Message-ID: <001101c0ee0b$771fd640$c3090740@megapathdsl.net> "Dethe Elza" wrote: > I would love to see a book like this. If I can figure out an appropriate > chunk, I'd be interested in contributing as well. I think the application > of Python to multimedia is key to "Programming for the Fun of It." Great! What is closest to your passion and skill? What would you like like most to learn/teach? What do your think are important questions? What would you want to see in a table of Contents? If possibele, for the time being, would like to keep this discussion thread going here on EDU-SIG, because I agree multimedia is a key part of CPFF/CP4f [for fun].... unless/until people object, in which case we can go off-list as Art anticipated. An interesting point Art raised was: ..One lobbying for keeping math in a central place in CP4E efforts, and seeing 3D visualization as a tool, but subserviant tool, in a curricla designed around mathematical concepts. I see it a little differently. Perhaps because I tend to think structurally/spatially+visually much of the time, perhaps because I am not very 'good' at Math even though I really love it - [something which always perplexed my teachers in high school. I spent a lot of time folding paper and using scissors from an early age]. I think it is important and helpful to distinguish between Structural relationships and Math.. in order to show how they are also the same. Teaching object-orientation can be done as well, arguably better, using for example: architectural models, lighting attribuets, or choregraphy of digital human puppets. For the same reason LOGO was based on fundamental heads-up 'psychology' Computer programming is symbolic model making and experimentation. At some zen momements contrally to much popular wisdom, 'the world does become the map' and vice versa. This is seems truer in Math than almost any other domain. Visualiztion/simulation, 3d modelling and computer graphics tools are appropriate candidates, becuase they high-level abstractions/illusions, but also implicitly made from other abstractions. Object-oriented APIs empower and reveal this facet. Thus simple code both hides the comlextity and also reveals how simple some things are, depending upon the context. In any event, as species we are tuned to be especially good at certain kinds of pattern recognition. Any use of multimedia for CP4E/CP4F shoudl kepe this in mind IMHO. For example using various #D softawer will make one very aware of object tree herieacrchies, geometric transformations etc. One might get lazy or tke teh tolls for granted. But pure or common underlying abstractions and patterns can be explored, as Kirby regularly demonstrates. The Greeks I always imagine spent a lot of time on the beach at sunset with sticks, strings and seashells. I would like to extract the patterns within multimedia just as one might do for 'Math'. I am far from convinced that Math is central. Essential yes, but I follow the line that it is pattern recognition and structural [=clear] thinking which are the heart of CP4E. CP4E msut help people to recognize the patterns as well as to create them. The more perspectives [points of view], the better. Hoping some of you will pick up on where these ideas go and help improve upon it. ./Jason From Jason Cunliffe" Message-ID: <006901c0ee12$d40e41a0$c3090740@megapathdsl.net> http://www.wirednews.com/news/culture/0,1284,42210,00.html From ajs@ix.netcom.com Tue Jun 5 21:38:04 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Tue, 5 Jun 2001 16:38:04 -0400 Subject: [Edu-sig] RE: programming for artists Message-ID: <000f01c0edff$7055f9e0$a9e1fea9@carol> >I see it a little differently. Perhaps because I tend to think >structurally/spatially+visually much of the time, perhaps because I am not >very 'good' at Math even though I really love it - [something which always >perplexed my teachers in high school. I spent a lot of time folding paper >and using scissors from an early age. But my math is core 'rap' from another angle: Can one use the Python interface to Blender in any significant way without a decent grasp of certain mathematical concepts - trig is basic to defining paths for animation, for example. Or defining shapes. Or, I would argue, in talking to Blender in any significant way at all. Given that ones interests are artistic at their core, why bother to learn programming in pursuit of those interests if not to have more control, to interface with available tools at a lower level, to remove barriers and limits set by others. At a very practical level, math proficiency becomes key and fundamental to removing such barriers. Can one do good raytracing - true artwork - without being armed with the right mathematical concepts. One might argue yes, but a good artist it seems to me won't settle for work_arounds and canned tools to achieve effects he might want to achieve. He'll go straight at it, acquiring the full range of skills necessary. In about everything I've seen with computer generated graphics, if one wants to work with freedom, at a low level of interface to one's tools - that means a good degree of math proficiency in addition to the ability the write code, scripts, whatever. I for one both learned the math to draw the pictures and drew the pictures to learn the math, never really knowing or particularly caring which goal was primary. Does that count as right side /left side brain dynamics? Certainly the experience has been exhilarating. And perhaps more than anything its that exhilaration I am trying to communicate - not as might sound, trying to come at other people ideas, sensibilities. Python/Numeric/VPython kind of rule (as a starting point), IMO. If I got where I am now 25 years earlier, I'd be dangerous - eventually. ART From delza@alliances.org Tue Jun 5 22:14:57 2001 From: delza@alliances.org (Dethe Elza) Date: Tue, 05 Jun 2001 14:14:57 -0700 Subject: [Edu-sig] programming for artists In-Reply-To: <001101c0ee0b$771fd640$c3090740@megapathdsl.net> Message-ID: on 01/6/5 03:04 PM, Jason Cunliffe at jasonic@panix.com wrote: > What is closest to your passion and skill? > What would you like like most to learn/teach? > What do your think are important questions? > What would you want to see in a table of Contents? Hrmm. Well, I've been struggling with computers since 1977 and I still have this crazy idea they could be easier to use. In the course of my struggles I found myself with a BS in computer science and an MS in electrical and computer engineering. For the past couple of years I have taken a couple of stabs at writing a book called "Programming for the Fun of It (PFI)," but keep finding I need more research -- some of which led me to Python. When I think about PFI, I try to think of it as, "Programming for the Daniela of It," in other words, what can be expressed in a computer program that my wife would be interested enough to learn it? So far, multimedia seems like a good bet for raw potential to capture and hold interest. As far as my skills, I've been playing around with python for a couple of years now, but I'm just starting to use it for my day-to-day work (via Zope). I've coded in a bunch of languages for a bunch of systems, but I try to avoid C++ and Windows, for similar reasons. Given my choice I work with Python on a Mac or Linux box. In my work experience, most of the past few years have been spent on the server-side, execpt for a brief foray into 3D plugins for the web (I was lead developer for Antarcti.ca, you can see the results at http://map.net). On my own time I'm interested in damn near everything (which makes it hard to finish some of my projects %-) Right now I teach XML through continuing ed. classes at UBC, but I really want to develop a series of classes using Python to develop modern network-savvy, multi-threaded, graphical software. As they say, you teach best what you most need to learn. I also have a dream of seperating the GUI language from the implementation language, so designers can design the interactions in some XML dialect (what I'm calling "AmbiGUI") and the programmers can code the functionality in whatever language Python is most appropriate to the job. Like what is being done with so-called webapps, but for software in general. How does all this fit into the "Programming for Artists." I dunno, but I know it does. I want to learn some of these tools myself, and I enjoy making toys (programs) for my kids (currently age 4 years and 9 months), like the turtle-draw program I posted here last month. Somewhere in there is a pattern. > If possibele, for the time being, would like to keep this discussion thread > going here on EDU-SIG, because I agree multimedia is a key part of CPFF/CP4f > [for fun].... unless/until people object, in which case we can go off-list > as Art anticipated. I agree that we should continue on Edu-sig for now. If we begin laying out a book in earnest we can move that offline with occasional progress reports here, but what we're talking about now is an approach to education which certainly qualifies for this group. As for the Math aspect, I think visual tools can only make math easier to learn. Some of the concepts are pretty tough going, and being able to interact with something that lets you see changes as you make them would be really helpful. I just discovered the graphing calculator that came with Mac OS9 and have been having fun plugging 3D formulae into it, even pulled out my old calculus book to dig out more equations. And there's always the Bucky Fuller/Synergetics side. That stuff is mind-bogglingly complicated to read, but could be expressed quite nicely with interactive software. HTH -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From Jason Cunliffe" Message-ID: <016101c0ee23$57993ba0$c3090740@megapathdsl.net> "Arthur Siegel" wrote > But my math is core 'rap' from another angle: > > Can one use the Python interface to Blender in any significant way > without a decent grasp of certain mathematical concepts - trig is > basic to defining paths for animation, for example. Or defining shapes. > Or, I would argue, in talking to Blender in any significant way at all. > > Given that ones interests are artistic at their core, why bother to learn > programming in pursuit of those interests if not to have more control, > to interface with available tools at a lower level, to remove barriers > and limits set by others. Art, I don't disagree with you. [is that the same as agreeing?? I'm not sure ;-)] Like I said Math is essential. I guess what I am trying to get at are the basic construct and habit of programming "for everyone" may need be particularly related to obviously Mathematical stuff. Such as: -opening and closing files, -navigating dicts, lists and data structures -parsing and formating results -formats adn protocols -passing parmaters for API class methods -reading + writing code -piping, processing and linking -looping and conditionals -interfaces: what are they, how do they work? etc Literacy in these and more I consider almost completely un-mathematical, depending on your context. If you want to get very mathematical with them you can. Getting a basic handle on these as early as possible will help one go much further whether one is very math inclined or not. Having a confidence and set of techniques to describe / model these with and without Mathematics also seems 'core'. There is quite a lot of Blender Python which is about navigating objects and contructs, files and API documentation. I argue for learning early on, some core skills to handle tools and equipment[this includes software], without fear or mystery. You know: 'learning how to learn'. The reality is that learning how to work what exists is as important as how to create it from scratch. Like I said there are pattersn in all this. Having the pattersn pointed out, will reinforce the value and essential-ness of the math. "Use ordinary language when you analyze or debate a concept. When the image becomes so clear that anyone can understand it, that is the time to start thinnking of an applicable formula for it." - Werner Heisenberg to his students Of course, first you must havea full command of the language of Mathemtics in orr order to do this. Mathetmics is nothing less than a powerful language for the purpose of describing natural phenomena. [..and good for un-natural phenomena too..] > At a very practical level, math proficiency becomes key and fundamental > to removing such barriers. Can one do good raytracing - true artwork - > without > being armed with the right mathematical concepts. One might argue yes, but > a good artist it seems to me won't settle for work_arounds and canned tools > to achieve effects he might want to achieve. He'll go straight at it, > acquiring > the full range of skills necessary. Most 3D modelling and animation and graphics software offers sophisticated user interfaces, because most of the time those interfaces are much more efficient, 'readable'and better than miles of numbers in brackets and quotes. Let me try and scale it: To use basic 3dmodelling and Graphics software, a little math goes a long way To generate algorthmic or 'generative art' Math is very essential. To write your own higher level math and programming contructs are needed. Among the essential patterns, I think one is the prime illusion of spatial representation. Graphing ideas, sequences and motions. Loci.. Spatial+Geomtric transformatation. As long as we are looking at 2 space [paper or screen] and thinking about 3 or 4 space we must go through matrix transformation and trignometry calculus. As you say left brain/right brain.. as long as it whole brain! > Python/Numeric/VPython kind of rule (as a starting point), IMO. Yes. as I said, I don't disagree.. But also teach as a starting point: context, connectivity, and patterns cheers ./Jason From Arthur_Siegel@rsmi.com Wed Jun 6 16:58:57 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Wed, 6 Jun 2001 10:58:57 -0500 Subject: [Edu-sig] re: programming for artists Message-ID: <0075EFBF.N22121@rsmi.com> Jason - And I don't disagree much with you, either. I certainly agree with you that there is fun and merit in a multimedia oriented Python book/project. I in fact raised the issue. Here, mostly because this seems to be a default forum for non-technical Python advocacy issues, but also because I do see a CP4E aspect to it. But I am being stubbornly a bit school marmish by asking you to be precise/mathematical in flushing out what it is you are suggesting - if you are advocating a CP4E thrust. Or asking you to be less ambiguous about it. Because I fear that some one else could pick up your approach/suggestions and run with it in the wrong direction - from my perspective, that is. Achieving CP4E is easy. Just define 'programming' broadly enough and we're home. Kind of what I sense the Scheme folks worst gloss on what we are about here. The argument goes that none of us are writing machine language code. The argument can be made that clicking Blenders GUI buttons is just another level up the high level language chain. One is programming the Blender API in using its GUI. The argument is not out and out ridiculous, which is why I think it needs to be addressed head on. And why I am scared of a media/game focused approached that doesn't have its definitions and intentions in a row upfront. Computer literacy is a worthy and practical educational pursuit. But it is fundamentally a different pursuit in my mind than programming education. I guess I'm advocating coming to some defintions. I do significant VBA work. By my lights, its not programming. In the end I think we need to respect the fact that programming education has always been closely tied to mathematical education - generally coming out of the same department in institutes of higher education. The availability/use of Python changes the equation only very slightly, if at all, and only at the margins. It has been intersting to watch Kirby developing a grasp of the more technical and arcane aspects of Python. Damn it if I can follow him much anymore. Will happen naturally with his approach. He is a synergist who I think understands the math/programming synergies. Yes, I would love to see a Python forum/project with a multimedia thrust. I do see the potential for a great book. Just suggesting that you would be adding another level of complexity/ contentiousness by tying it in any significant way to CP4E goals, objectives. Suggesting, I guess, the course of least resistance. Let it be what it is. I don't think it requires any other justification. ART From Jason Cunliffe" Message-ID: <000901c0eec6$ee773920$c3090740@megapathdsl.net> wrote: > But I am being stubbornly a bit school marmish by asking you > to be precise/mathematical in flushing out what it is you are suggesting - > if you are advocating a CP4E thrust. Or asking you to be > less ambiguous about it. Very glad for the critique. It is hard for me to be Mathematical about it because I am not very good at a math. I need some help. I have several overlapping motives here: - To help others like me full of curiosity and will, but frustrated by their schooling. To add to the valuable resources for a CP4E vision. - To expand the Python's multimedia horizons and culture. This is selfish in the advocacy sense that I am the #1 guineapig who wants to see more people implementing, thinking and sharing use of Python. This includes women of course, many of whom are not alienated by male-geekdom but have love of science and art. - To dissolve hard distinctions between artist and engineer. To encourage peopl to be have fun and be creative in ways they may not have been trainded in. this works in both directions.. - To meet the needs of artists to develop their engineering selves and get deeper control to do more out-of-the-box work. This is turn till can feed the pool of resources for CP4E/CP4F. > The argument goes that none of us are writing machine language code. > The argument can be made that clicking Blenders GUI buttons is > just another level up the high level language chain. One is programming > the Blender API in using its GUI. The argument is not out and out > ridiculous, which is why I think it needs to be addressed head on. > And why I am scared of a media/game focused approached that > doesn't have its definitions and intentions in a row upfront. Yes all good points. I believe any tools which give one interactive visualization of abstractions are valuable: algebra, string, paper, Python, Blender.. How one uses them is crucial and I agree this must be done with clarity and conviction. My thrust is to help people develop the skills to think abstractly and to express those ideas in code. Python in the first instance, but versions of this tree could be developed for JavaScript etc.. > Computer literacy is a worthy and practical educational pursuit. But it > is fundamentally a different pursuit in my mind than programming education. Yes good point. > I guess I'm advocating coming to some defintions. > > I do significant VBA work. By my lights, its not programming. > > In the end I think we need to respect the fact that programming education > has > always been closely tied to mathematical education - generally > coming out of the same department in institutes of higher education. > The availability/use of Python changes the equation only very slightly, > if at all, and only at the margins. Aha! This strikes at one key question: Why not also introdcuce Python in the art class? > Just suggesting that you would be adding another level of complexity/ > contentiousness by tying it in any significant way to CP4E > goals, objectives. > > Suggesting, I guess, the course of least resistance. > > Let it be what it is. I don't think it requires any other justification. Indeed, what emerges let it be.. Meanwhile the ambitious promoter/designer wonk in my head says: - create a CP4E logo - set up a simple web site to gather the resources, present the congruence and diverstity of ideas - draft a book foreward length CP4E 'intro_manifesto' - Logo + Foreward are used as minimal ID on works which develop through these channels & meeting with reasonable group approval agree to agree [and disagree]. - Do the above gently and respectfully, Try not to distract but signal that there are common threads here which deserve expressing to a broader public in simple ways. Thanks for all your replies ./Jason From Arthur_Siegel@rsmi.com Wed Jun 6 21:28:27 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Wed, 6 Jun 2001 15:28:27 -0500 Subject: [Edu-sig] re: programming for artists Message-ID: <00761784.N22121@rsmi.com> >Indeed, what emerges let it be.. >Meanwhile the ambitious promoter/designer wonk in my head says: >- create a CP4E logo >- set up a simple web site to gather the resources, present the congruence >and diverstity of ideas >- draft a book foreward length CP4E 'intro_manifesto' >- Logo + Foreward are used as minimal ID on works which develop through >these channels & meeting with reasonable group approval agree to agree [and >disagree]. >- Do the above gently and respectfully, Try not to distract but signal that >there are common threads here which deserve expressing to a broader public >in simple ways. I must be a pretty terrible polemicist. Your suggestion is exactly 180 degrees at odds with everything I have suggested. So it goes. I'll try not to get in your way. ART From Jason Cunliffe" Message-ID: <00c901c0eedd$e61b3620$c3090740@megapathdsl.net> From: > >Meanwhile the ambitious promoter/designer wonk in my head says: > >- create a CP4E logo > >- set up a simple web site to gather the resources, present the congruence > >and diverstity of ideas > >- draft a book foreward length CP4E 'intro_manifesto' > >- Logo + Foreward are used as minimal ID on works which develop through > >these channels & meeting with reasonable group approval agree to agree [and > >disagree]. > >- Do the above gently and respectfully, Try not to distract but signal that > >there are common threads here which deserve expressing to a broader public > >in simple ways. > > I must be a pretty terrible polemicist. Your suggestion is exactly 180 degrees > > at odds with everything I have suggested. So it goes. > > I'll try not to get in your way. oh dear. I'm not honestly sure if what I suggested above adhoc is terribly good or bad idea. Prbobably a bad idea.. but hoepfully leads to a better one But it is useful to throw it up the air to get some reaction. I am reaching for something here. I don't want it to be crass or disturb anyone. Hope it can tie implicity or explicitly to EDU-SIG work. There is so much work to do, but I cannot help wondering how one might have some sort of expression of CP4E identity which would help us all get projects developed, funded and published. The Web is of course free. One mechanism which I think works very well are Webrings. I guess I am jsut asking what is the equivalent of web rings for book publshing? Publishers do it all the time for their own 'series'. Does it even matter? Thinking out loud, against a constant background on Zope and Python lists about awareness etc. ./Jason From delza@alliances.org Wed Jun 6 21:44:13 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 06 Jun 2001 13:44:13 -0700 Subject: [Edu-sig] re: programming for artists In-Reply-To: <00c901c0eedd$e61b3620$c3090740@megapathdsl.net> Message-ID: on 01/6/6 04:10 PM, Jason Cunliffe at jasonic@panix.com wrote: > There is so much work to do, but I cannot help wondering how one might have > some sort of expression of CP4E identity which would help us all get > projects developed, funded and published. The Web is of course free. One > mechanism which I think works very well are Webrings. I guess I am jsut > asking what is the equivalent of web rings for book publshing? Publishers do > it all the time for their own 'series'. Does it even matter? I see a lot of book development work happening on Wikis of various types. I could probably set us up a ZWiki if that's desired. Here's my proposal for an agenda, if not a manifesto: 1. We each take one of the multimedia libraries available (VPython, PyGame, Blender, et al). 2. We write a "getting started" for our chosen library. 3. We write a series of full examples of increasing complexity. 4. We read each others work continuously to provide feedback and get ideas for our own. This may also bring a similar "tone" to the work. Or maybe not. 5. We team up for the intro: here's what you need to know if you've never touched Python before. 6. We team up for the closing: finding synergies between the tools, multi-tool examples. 7. We test it all on Linux, Windows, Mac and burn a CD with Python, all libraries, and examples. If I'm off base here, please tell me. Frankly I'm a bit lost, not sure what the disagreement is between Art and Jason, or if there is one. -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From Jason Cunliffe" Message-ID: <000b01c0eef1$8f333240$c3090740@megapathdsl.net> From: > Dethe writes - > > >Here's my proposal for an agenda, if not a manifesto: > > >1. We each take one of the multimedia libraries available (VPython, PyGame, > >Blender, et al). > >2. We write a "getting started" for our chosen library. > >3. We write a series of full examples of increasing complexity. > >4. We read each others work continuously to provide feedback and get ideas > >for our own. This may also bring a similar "tone" to the work. Or maybe > >not. > >5. We team up for the intro: here's what you need to know if you've never > >touched Python before. > >6. We team up for the closing: finding synergies between the tools, > >multi-tool examples. > >7. We test it all on Linux, Windows, Mac and burn a CD with Python, all > >libraries, and examples. > > Sounds absolutely great, and what I would expect from a Mad > Scientist. I agree. Dethe this is excellent. Thank you. Zwiki seems fine as collaborative online bookdev environment. I have not used it myself yet. The only thing whicc bothers me about other peoples Zwikis [mainly Zope ones] are that they seem to gemereate many more unfulfilled links than content. If only there were better feedback indicators agaisnt links _before_ you jump, it would be less frustrating to browse. This maybe is a reason to use them - we might be motivated to improve the tool. I like the simplicity of structured text very much. Curious about import and export between ST and other text media [email,msword docs etc] > >If I'm off base here, please tell me. Frankly I'm a bit lost, not sure what > >the disagreement is between Art and Jason, or if there is one. > > I feel strongly that the CP4E angle should be played down, not up. How does one measure a CP4E angle? > For a number of reasons. Not least of which I would prefer an effort > that was irreverent and "mad" at its inception - not having to worry about > any serious intent. Purely for the fun of it - hopefully some contagious fun. 'Contagious Fun' - like it. could be good title. ./Jason From delza@alliances.org Wed Jun 6 23:37:06 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 06 Jun 2001 15:37:06 -0700 Subject: [Edu-sig] re: programming for artists In-Reply-To: <000b01c0eef1$8f333240$c3090740@megapathdsl.net> Message-ID: on 01/6/6 06:31 PM, Jason Cunliffe at jasonic@panix.com wrote: > Zwiki seems fine as collaborative online bookdev environment. OK, I'll see what I can do about setting this up. > I have not used it myself yet. The only thing whicc bothers me about other > peoples Zwikis [mainly Zope ones] are that they seem to gemereate many more > unfulfilled links than content. If only there were better feedback > indicators agaisnt links _before_ you jump, it would be less frustrating to > browse. Oh, I have a great many reservations against Wikis, they're limited in all kinds of ways. It's just that I haven't finished coding my replacement yet %-) > This maybe is a reason to use them - we might be motivated to improve the > tool. I like the simplicity of structured text very much. Curious about > import and export between ST and other text media [email,msword docs etc] You can always generate HTML from the structured text and import that to word, mail, etc. Theoretically you could also generate DocBook, PDF, etc., but I don't know if the good Zope folk have implemented that yet. >>> If I'm off base here, please tell me. Frankly I'm a bit lost, not sure > what >>> the disagreement is between Art and Jason, or if there is one. >> >> I feel strongly that the CP4E angle should be played down, not up. OK, I agree with Art, mainly in that CP4E is a) very focussed on getting Python into schools, and b) less focussed on having fun. No problems there. > How does one measure a CP4E angle? It's the square root of the hippopatamus. >> For a number of reasons. Not least of which I would prefer an effort >> that was irreverent and "mad" at its inception - not having to worry > about >> any serious intent. Purely for the fun of it - hopefully some contagious > fun. > > 'Contagious Fun' - like it. could be good title. "Aachooo!" "By George, I think you've got it." -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From delza@alliances.org Thu Jun 7 00:39:11 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 06 Jun 2001 16:39:11 -0700 Subject: [Edu-sig] Contagious Fun Wiki In-Reply-To: <000b01c0eef1$8f333240$c3090740@megapathdsl.net> Message-ID: I've created a Wiki for Contagious Fun (aka "Programming for Artists", aka "Programming for the Fun of It"). http://www.zope.org/Members/DaddyGravity/ContagiousFun/FrontPage Anyone can view, but you have to join Zope.org (free) and login to edit. See you in WikiLand! -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From pdx4d@teleport.com Thu Jun 7 02:55:39 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 06 Jun 2001 18:55:39 -0700 Subject: [Edu-sig] re: programming for artists In-Reply-To: References: <000b01c0eef1$8f333240$c3090740@megapathdsl.net> Message-ID: <3.0.3.32.20010606185539.012f6524@pop3.norton.antivirus> Just wanted to input that I'm reading all these, have looked at the Zwiki, and am feeling somewhat overwhelmed. Python is one thing, but multimedia is a vast set of partially overlapping knowledge domains, each of which fills several shelves of books (we have Powell's Technical downtown, with its miles of only-technical books). You could probably write an API to the Boeing 747 in Python, such that you could go: while instruments.Airspeedindicator.current() >= toofast: controls.Throttle.setslower(1) It'd come with a really thick 3-ring binder. But even though I could puzzle through the Python examples, I'd be clueless as to how to write a safe autopilot program, because I can't fly a 747, nor even a Cessna twin engine jobber. Knowing Python doesn't get me any closer to having a pilot's license. When it comes to multimedia, I'm mostly overwhelmed by how little I know. The fact that a lot of these tools have a Python API is encouraging, but I'm no closer to really understanding the core concepts. That'll require a lot of study outside of Python per se. When it comes to multimedia, where I've gotten most focused is (a) working with Povray and (b) going through some of the NumTut and pygame type tutorials which expose graphics files as giant arrays you can manipulate using Numerical Python. That makes some sense and starts to scratch the surface of a huge world. That's visual pixels. About audio I know even less. What's the format of an MP3 file? I have no clue. Would I like to learn? Yes. Will I be the one to write the book -- I suspect not. Kirby From Jason Cunliffe" <3.0.3.32.20010606185539.012f6524@pop3.norton.antivirus> Message-ID: <000901c0ef22$25ff78c0$c3090740@megapathdsl.net> Kirby. Yes thanks All really good and true points. It is not easy but I really believe there is a manageable middle ground here. One worth exploring. ..would you really recommend starting to learn to fly by scripting a 747! Wow I knew Python was cool but I didn't know Python could do that!! ;-) No you might start with paper planes, kites, model gliders, perhaps a model sailing boat.. work up. But that should not stop one looking at 747 and asking - what is common aeronautic design patterns here?.. How does it fly? Waht kind of control s does it have.. and then later perhaps boot a flight simulator etc.. It seems to work for for American Airlines, Boing and NASA. Meanwhile, please take a look at the sample Bucky Ball Generator script which comes with Poser. It is crying out for your touch: http://www.zope.org/Members/DaddyGravity/ContagiousFun/GeomBucky ./Jason ----- Original Message ----- From: "Kirby Urner" To: Sent: Wednesday, June 06, 2001 6:55 PM Subject: Re: [Edu-sig] re: programming for artists > > Just wanted to input that I'm reading all these, have looked > at the Zwiki, and am feeling somewhat overwhelmed. > > Python is one thing, but multimedia is a vast set of partially > overlapping knowledge domains, each of which fills several > shelves of books (we have Powell's Technical downtown, with its > miles of only-technical books). > > You could probably write an API to the Boeing 747 in Python, > such that you could go: > > while instruments.Airspeedindicator.current() >= toofast: > controls.Throttle.setslower(1) > > It'd come with a really thick 3-ring binder. But even though > I could puzzle through the Python examples, I'd be clueless as > to how to write a safe autopilot program, because I can't fly > a 747, nor even a Cessna twin engine jobber. Knowing Python > doesn't get me any closer to having a pilot's license. > > When it comes to multimedia, I'm mostly overwhelmed by how > little I know. The fact that a lot of these tools have a Python > API is encouraging, but I'm no closer to really understanding > the core concepts. That'll require a lot of study outside of > Python per se. > > When it comes to multimedia, where I've gotten most focused is > (a) working with Povray and (b) going through some of the NumTut > and pygame type tutorials which expose graphics files as giant > arrays you can manipulate using Numerical Python. That makes > some sense and starts to scratch the surface of a huge world. > That's visual pixels. About audio I know even less. What's > the format of an MP3 file? I have no clue. Would I like to > learn? Yes. Will I be the one to write the book -- I suspect > not. > > Kirby From delza@alliances.org Thu Jun 7 05:28:27 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 06 Jun 2001 21:28:27 -0700 Subject: [Edu-sig] re: programming for artists In-Reply-To: <3.0.3.32.20010606185539.012f6524@pop3.norton.antivirus> Message-ID: Kirby, Don't try to convince us you are scared of multimedia, you've been doing this longer than most of us. I am clueless around PovRay. I know VPython can output PovRay files, but what if I want to tweak them? Or if I wanted to create a series of PovRay visualizations and stitch them together into a cross-platform animation of some kind? I don't know how to do this, but you do. And it would be a most excellent chapter, might I add. I would love to learn PyGame and Snack and Piddle and Blender and all the rest, but I'll never have time. I installed Blender once and it totally intimidated me. But if we can interest enough contributors then we can each take one of these library/toolkits and document it: here's the api, here's how you get started, here's some cool things you can do, here's a complete project. If the API is too complex, we can write a simplified, more Pythonesque wrapper (kind of like GLUT does for OpenGL). Heck, I'd like to see more of Python's existing libraries written to be more like Python and less like thin wrappers around unix C calls. So, I'm willing to revel in my ignorance and learn at least one new library, play with it, point to the good documentation I find, and supplement it when necessary. I hope you will come play too. -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies (Sorry for the repeat, meant to send this to the list first time) From ajs@ix.netcom.com Thu Jun 7 12:23:45 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Thu, 7 Jun 2001 07:23:45 -0400 Subject: [Edu-sig] re: programming for artists Message-ID: <000b01c0ef44$52275d60$a9e1fea9@carol> >So, I'm willing to revel in my ignorance and learn at least one new library, >play with it, point to the good documentation I find, and supplement it when >necessary. Another __| I'd like to explore/contribute is Jython access to some Java media APIs - J3D, GL4Java (openGL for Java), something called Graphico which I had some fun with a while back (if its still around), etc. Where does one go for wiki lessons? ART From ajs@ix.netcom.com Thu Jun 7 12:31:38 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Thu, 7 Jun 2001 07:31:38 -0400 Subject: [Edu-sig] re: programming for artists Message-ID: <001501c0ef45$6ad99480$a9e1fea9@carol> I wrote - >Another __| I'd like to explore/contribute is Jython access to some >Java media APIs - J3D, GL4Java (openGL for Java), something called Graphico >which I had some fun with a while back (if its still around), etc. And of course there is PyOpenGL - which is again being actively developed. Maybe I can be the OpenGL guy - and get at it both via PyOpenGL and GL4Java, demonstrating the same Python code running against both. And the ability to get at lower level APIs as well as higher level ones. ART From fred@ontosys.com Thu Jun 7 14:59:54 2001 From: fred@ontosys.com (Fred Yankowski) Date: Thu, 7 Jun 2001 08:59:54 -0500 Subject: [Edu-sig] re: programming for artists In-Reply-To: <000b01c0ef44$52275d60$a9e1fea9@carol>; from ajs@ix.netcom.com on Thu, Jun 07, 2001 at 07:23:45AM -0400 References: <000b01c0ef44$52275d60$a9e1fea9@carol> Message-ID: <20010607085954.A30012@enteract.com> On Thu, Jun 07, 2001 at 07:23:45AM -0400, Arthur Siegel wrote: > Where does one go for wiki lessons? Follow the HelpPage link on the FrontPage. Better yet, just use the ViewSource link to see the source text for any given page. -- Fred Yankowski fred@OntoSys.com tel: +1.630.879.1312 Principal Consultant www.OntoSys.com fax: +1.630.879.1370 OntoSys, Inc 38W242 Deerpath Rd, Batavia, IL 60510, USA From Jason Cunliffe" Message-ID: <003301c0ef7c$b7371f00$c3090740@megapathdsl.net> "Arthur Siegel" > Another __| I'd like to explore/contribute is Jython access to some > Java media APIs - J3D, GL4Java (openGL for Java), something called Graphico > which I had some fun with a while back (if its still around), etc. Good idea about Jython.. especially now that Java is getting good press again. People all over for the past couple of years writing better and better Java media stuff, much of it quietly in the background. I would love to be able to use Jython. Need better, motivating examples. A parallel to this whole discussion is the increased role of Javascript beyond web browsers. Actionscript in Flash5 is ECMAScript. I just discovered that Adobe After Effects now has very powerful scripting API, using Javascript. There is a [slightly abandoned] Javascript interpreter called Rhino. http://www.mozilla.org/rhino/ Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. It is entirely feasible to develop programming literacy with Pythonand then apply that knowledge to Javascript. I have been studying Python, Zope, Javascript, and Actionscript at the same time over these past few months and mostly find they are very compatible. Python is the nicest base:-) > Where does one go for wiki lessons? Not sure if you mean wiki Jython lessons, or wiki contributor lessons.. Assuming the latter right now, some starter tips: 1. http://www.zope.org 2. "Join Zope.org" >>> http://www.zope.org/Register/register.html [gives you edit rights. later just 'login'] 3. http://www.zope.org/Members/DaddyGravity/ContagiousFun/ 4. http://www.zope.org/Members/DaddyGravity/ContagiousFun/FrontPage/map#FrontPa ge 5. lesson guides there for example: http://www.zope.org/Members/DaddyGravity/ContagiousFun/TextFormattingRules You can enter some text for example JythonGraphico After saving your edit it will automatically appear as new Zwiki link, evident with a hyperlinked ? added to the end of JythonGraphico. Click on this link and it will open a new edit page. You can edit directly there and save or upload a file frmo your own machine which will be linked and rendered whenever you use the expression JythonGraphico. Same is true for images.. - Create a Zwiki name, for example: JGImage1 - Click JGImage1? - Upload an image [select Image radio button] - To directly display your image within a Zwiki page, insert There is also a Sandbox for raw learning&experimenting http://www.zope.org/Members/DaddyGravity/ContagiousFun/SandBox The default behavior of Zwiki is to generate links for every word which is a recognizable URL or includes SquashedTogetherCapitalization: DaddyGravity, FunSandBox, FrontPage Image1 etc.. This magic can quickly get out of hand. To suppress this feature, prefix the wiki word with an exclamation point ! or surround with ' single-quotes. hth: very new to this myself ./Jason From rzantow@usa.net Thu Jun 7 22:29:13 2001 From: rzantow@usa.net (Dick Zantow) Date: 7 Jun 2001 17:29:13 EDT Subject: [Edu-sig] Contagious Fun, etc. Message-ID: <20010607212913.3382.qmail@nwcst340.netaddress.usa.net> [Decloaking] To all: I have to say that the recent threads are the most exciting developments = I've seen in relation to Python since before 2.0. I'm aiming to teach my art-l= oving daughter Python this summer (or, more selfishly, have myself learn it bet= ter), and the resources you've been bringing up strike me as just the wedge to unleash her energy on the project. It may or may not be 4E, but 4Some it = could be what opens the floodgates. One of Python's strengths is that it can be extended in so many ways. The= weakness of that approach is that there wind up being so many diffuse thr= eads that it's hard to see how they all fit together. It seems that this proje= ct would help bind a bunch of theminto an extremely useful fabric. And (to m= ix metaphors) it would provide a framework to hang a lot of other threads fr= om. I'm looking forward to the product, and I would certainly like to see oth= ers like it -- groupings of related packages with tutorials and examples to s= how how they fit together. And who knows? Amid the other projects there might= even be one I'd have something to contribute to. = [...fades to black] ____________________________________________________________________ Get free email and a permanent address at http://www.netaddress.com/?N=3D= 1 From Brent.Burley@disney.com Thu Jun 7 23:55:37 2001 From: Brent.Burley@disney.com (Brent Burley) Date: Thu, 07 Jun 2001 15:55:37 -0700 Subject: [Edu-sig] Interactive tutorial Message-ID: <3B200669.BFEAEBA9@fa.disney.com> I stumbled onto this today: TclTutor : Interactive Computer Aided Instruction for Tcl http://www.msen.com/~clif/TclTutor.html It has 43 short lessons, each of which presents a discussion, some sample code that needs fixing, and an output area for running the code. The lesson text is formatted with a terseness setting that can be set to beginner, user, or expert. The lessons themselves are coded as a marked-up subset of html. Does anything like this exist for python? Would it be useful? It seems like it would be fairly easy to create this in python. The work of course would be in creating decent lessons; a good starting point might be to adapt Jeff Elkner's text (presuming the open documentation license would allow such usage). Brent Burley From cmeyers@guardnet.com Fri Jun 8 02:20:06 2001 From: cmeyers@guardnet.com (Chris Meyers) Date: Thu, 07 Jun 2001 17:20:06 -0800 Subject: [Edu-sig] Interactive tutorial Message-ID: This looks really interesting. I'm sure Jeff would have no objections. With (hopefully) teaching a Python class this summer I would be happy to both contribute and use material. Here's an idea. How about a cgi web page that delivers the explanations and maybe the code that needs correcting. The cgi program is written in Python of course. It would take the users correction and "eval" it, returning either the answer or an error message (capturing any errors traps and stdout). That way people could play with Python without actually going thru the installation process. One would have to guard against sabotoge. A timer to keep infinite loops at bay, maybe a dummy "os" module to fingers out of where they don't belong. redefine "open". Although isn't there a reduced execution mode like Java has? Or come to think of it, could such a page be done in Jython for local interpretation of expressions or program snipplets and links for new material? Chris Meyers 06/07/2001 4:55:37 PM, Brent Burley wrote: >I stumbled onto this today: > >TclTutor : Interactive Computer Aided Instruction for Tcl >http://www.msen.com/~clif/TclTutor.html > >It has 43 short lessons, each of which presents a discussion, some >sample code that needs fixing, and an output area for running the code. >The lesson text is formatted with a terseness setting that can be set to >beginner, user, or expert. The lessons themselves are coded as a >marked-up subset of html. > >Does anything like this exist for python? Would it be useful? It seems >like it would be fairly easy to create this in python. The work of >course would be in creating decent lessons; a good starting point might >be to adapt Jeff Elkner's text (presuming the open documentation license >would allow such usage). > > Brent Burley > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig > From Jason Cunliffe" Message-ID: <001d01c0efdb$43614ba0$c3090740@megapathdsl.net> > Or come to think of it, could such a page be done in Jython for > local interpretation of expressions or program snipplets and links > for new material? There has been a growing thread recently on the Zope lists to use wxPython as an IDE. Some experiemtnes already done. This was mentioned here also I think. Advantages of wxPython based 'Tutorializer' in this context: - can run off-line by itself from CD etc. - can connect to web site via various protocols [Python library, embeded browsers on Win32, XML-RPC etc] - already embeds Scintilla [same as used by PythonWin shell] - crossplatform ./JASON From jeff@elkner.net Fri Jun 8 12:18:22 2001 From: jeff@elkner.net (Jeffrey Elkner) Date: 08 Jun 2001 07:18:22 -0400 Subject: [Edu-sig] Interactive tutorial In-Reply-To: <3B200669.BFEAEBA9@fa.disney.com> References: <3B200669.BFEAEBA9@fa.disney.com> Message-ID: <991999122.6451.0.camel@mdeicaza> Hi Brent! "How to think like a computer scientist" is licensed under the GNU Free Document License (FDL), so you are certainly free to use it as you describe, provided the new work offers the same freedom. I will also have time this summer to help you if you would like. Thanks for your interest in developing educational materials for Python! jeff elkner On 07 Jun 2001 15:55:37 -0700, Brent Burley wrote: > I stumbled onto this today: > > TclTutor : Interactive Computer Aided Instruction for Tcl > http://www.msen.com/~clif/TclTutor.html > > It has 43 short lessons, each of which presents a discussion, some > sample code that needs fixing, and an output area for running the code. > The lesson text is formatted with a terseness setting that can be set to > beginner, user, or expert. The lessons themselves are coded as a > marked-up subset of html. > > Does anything like this exist for python? Would it be useful? It seems > like it would be fairly easy to create this in python. The work of > course would be in creating decent lessons; a good starting point might > be to adapt Jeff Elkner's text (presuming the open documentation license > would allow such usage). > > Brent Burley From Brent.Burley@disney.com Fri Jun 8 18:33:59 2001 From: Brent.Burley@disney.com (Brent Burley) Date: Fri, 08 Jun 2001 10:33:59 -0700 Subject: [Edu-sig] Interactive tutorial References: Message-ID: <3B210C87.1E463BCC@fa.disney.com> Chris Meyers wrote: > Here's an idea. How about a cgi web page that delivers the > explanations and maybe the code that needs correcting. The cgi > program is written in Python of course. It would take the users > correction and "eval" it, returning either the answer or an error > message (capturing any errors traps and stdout). That way people > could play with Python without actually going thru the installation > process. I like that idea. How about this variation: The lesson text is an ordinary html doc. In fact, Jeff's text could be used as is; it would merely be augmented with a bunch of "try it" links (a little icon of some sort would be nice). These would be linked to exercises that would come up in a frame below the main document. These forms could have anything in them, but would at a minimum have a text area initialized with a python code fragment and an button which would evaluate the code and place the results in the same frame. If you make a mistake, just click the back button, edit, and re-evaluate. The python evaluation would be done by a server which could be running anywhere, even on the local machine. How about a server that's running on the teacher's machine? It could write to a log window every time a student submits some code so the teacher can see how everyone is doing. The public python server could be useful for other purposes as well. It could for example provide access to a number of different python versions to allow people to try out new features, compare performance, etc., without having to download and install anything. I'm not sure how to deal with the fact that the url for the python eval server needs to be hard-coded into the lesson forms. If there were a well-known, reliable server, hard-coding the url might not be so bad. Anyone have any ideas on how to make the server url configurable? Any volunteers for running the python eval server? How about www.python.org/cgi-bin/eval/python ;-) ? Brent From jeff@elkner.net Fri Jun 8 21:33:12 2001 From: jeff@elkner.net (Jeffrey Elkner) Date: 08 Jun 2001 16:33:12 -0400 Subject: [Edu-sig] Interactive tutorial In-Reply-To: <3B210C87.1E463BCC@fa.disney.com> References: <3B210C87.1E463BCC@fa.disney.com> Message-ID: <992032398.6632.0.camel@mdeicaza> This is way too cool!! I like the idea of www.python.org/cgi-bin/eval/python, but if that isn't practical, Yorktown High School (as one of the major beneficiaries of this project ;-) would be glad to donate a server to it. Just let me know. jeff elkner yorktown high school arlington, va On 08 Jun 2001 10:33:59 -0700, Brent Burley wrote: > Chris Meyers wrote: > > Here's an idea. How about a cgi web page that delivers the > > explanations and maybe the code that needs correcting. The cgi > > program is written in Python of course. It would take the users > > correction and "eval" it, returning either the answer or an error > > message (capturing any errors traps and stdout). That way people > > could play with Python without actually going thru the installation > > process. > > I like that idea. How about this variation: > > The lesson text is an ordinary html doc. In fact, Jeff's text could be > used as is; it would merely be augmented with a bunch of "try it" links > (a little icon of some sort would be nice). These would be linked to > exercises that would come up in a frame below the main document. These > forms could have anything in them, but would at a minimum have a text > area initialized with a python code fragment and an button > which would evaluate the code and place the results in the same frame. > If you make a mistake, just click the back button, edit, and > re-evaluate. > > The python evaluation would be done by a server which could be running > anywhere, even on the local machine. How about a server that's running > on the teacher's machine? It could write to a log window every time a > student submits some code so the teacher can see how everyone is doing. > The public python server could be useful for other purposes as well. It > could for example provide access to a number of different python > versions to allow people to try out new features, compare performance, > etc., without having to download and install anything. > > I'm not sure how to deal with the fact that the url for the python eval > server needs to be hard-coded into the lesson forms. If there were a > well-known, reliable server, hard-coding the url might not be so bad. > Anyone have any ideas on how to make the server url configurable? > > Any volunteers for running the python eval server? How about > www.python.org/cgi-bin/eval/python ;-) ? > > Brent > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > From cmeyers@guardnet.com Sat Jun 9 00:08:03 2001 From: cmeyers@guardnet.com (Chris Meyers) Date: Fri, 08 Jun 2001 15:08:03 -0800 Subject: [Edu-sig] Interactive tutorial Message-ID: Brent and Jeff, Your ideas here are great. Running on the server would give a lot of great feedback on usage, problems, hard bits, etc. I can imagine the book being continuously tuned with ever better examples and explanations. If this flies I would love to include my "Python for Fun" case studies in the same format. This could work best if the evaluator did a sequence of statements/expressions. Or could the cgi keep track of the users with a cookie or readonly form field and "shelve" their namespace between calls? So that they could submit a single statement or expression at a time? Details, details. I think we could have file I/O included by automatically importing an "open" class that looks just like files except they only work in a designated directory and let you write only so much stuff. Chris 06/08/2001 5:33:12 PM, Jeffrey Elkner wrote: >This is way too cool!! I like the idea of >www.python.org/cgi-bin/eval/python, but if that isn't >practical, Yorktown High School (as one of the major beneficiaries of >this project ;-) would be glad to donate a server to it. Just let me >know. > >jeff elkner >yorktown high school >arlington, va > >On 08 Jun 2001 10:33:59 -0700, Brent Burley wrote: >> Chris Meyers wrote: >> > Here's an idea. How about a cgi web page that delivers the >> > explanations and maybe the code that needs correcting. The cgi >> > program is written in Python of course. It would take the users >> > correction and "eval" it, returning either the answer or an error >> > message (capturing any errors traps and stdout). That way people >> > could play with Python without actually going thru the installation >> > process. >> >> I like that idea. How about this variation: >> >> The lesson text is an ordinary html doc. In fact, Jeff's text could be >> used as is; it would merely be augmented with a bunch of "try it" links >> (a little icon of some sort would be nice). These would be linked to >> exercises that would come up in a frame below the main document. These >> forms could have anything in them, but would at a minimum have a text >> area initialized with a python code fragment and an button >> which would evaluate the code and place the results in the same frame. >> If you make a mistake, just click the back button, edit, and >> re-evaluate. >> >> The python evaluation would be done by a server which could be running >> anywhere, even on the local machine. How about a server that's running >> on the teacher's machine? It could write to a log window every time a >> student submits some code so the teacher can see how everyone is doing. >> The public python server could be useful for other purposes as well. It >> could for example provide access to a number of different python >> versions to allow people to try out new features, compare performance, >> etc., without having to download and install anything. >> >> I'm not sure how to deal with the fact that the url for the python eval >> server needs to be hard-coded into the lesson forms. If there were a >> well-known, reliable server, hard-coding the url might not be so bad. >> Anyone have any ideas on how to make the server url configurable? >> >> Any volunteers for running the python eval server? How about >> www.python.org/cgi-bin/eval/python ;-) ? >> >> Brent >> >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig@python.org >> http://mail.python.org/mailman/listinfo/edu-sig >> > > > > From dustin@cs.uchicago.edu Fri Jun 8 23:23:21 2001 From: dustin@cs.uchicago.edu (Dustin Mitchell) Date: Fri, 8 Jun 2001 17:23:21 -0500 (CDT) Subject: [Edu-sig] Interactive tutorial In-Reply-To: <992032398.6632.0.camel@mdeicaza> Message-ID: On 8 Jun 2001, Jeffrey Elkner wrote: > This is way too cool!! I like the idea of > www.python.org/cgi-bin/eval/python, but if that isn't > practical, Yorktown High School (as one of the major beneficiaries of > this project ;-) would be glad to donate a server to it. Just let me > know. Just a warning: this is asking for trouble. Even with rexec, imagine typing 'while 1: pass' and clicking 'eval'. There's countless security problems with putting something like this on a server. They're all soluble, but you'd better be sure you spotted *all* of them :-) Sorry to rain on the parade. Keep marching :-) Dustin --------------------------------------------------------------------- | Dustin Mitchell )O( | --------------------------------------------------------------------- From alan.gauld@freenet.co.uk Sat Jun 9 00:31:18 2001 From: alan.gauld@freenet.co.uk (Alan Gauld) Date: Fri, 08 Jun 2001 23:31:18 +0000 Subject: [Edu-sig] Interactive tutorial In-Reply-To: <3B200669.BFEAEBA9@fa.disney.com> Message-ID: <3.0.1.32.20010608233118.00720808@mail.freenet.co.uk> At 15:55 07/06/01 -0700, Brent Burley wrote: >I stumbled onto this today: > >TclTutor : Interactive Computer Aided Instruction for Tcl >http://www.msen.com/~clif/TclTutor.html > >It has 43 short lessons, each of which presents a discussion, some >sample code that needs fixing, and an output area for running the code. >The lesson text is formatted with a terseness setting that can be set to >beginner, user, or expert. The lessons themselves are coded as a >marked-up subset of html. THis is a grewat Tcl resource and I included it on the CD ROM with my book. I actiually considered trying to do the same with my web tutor in Python but the effort was just too much and I gave up on the idea. BUT I still think it would be a great resource for the Python community and since the Tcl/Tk code is available it should be translatable into Tkinter without too much technical difficulty - just a lot of effort! Indeed, in principle you could leave it in Tcl but that's not good marketing :-) Alan G http;//www.crosswinds.net/~agauld From cmeyers@guardnet.com Sat Jun 9 01:06:19 2001 From: cmeyers@guardnet.com (Chris Meyers) Date: Fri, 08 Jun 2001 16:06:19 -0800 Subject: [Edu-sig] Interactive tutorial Message-ID: 06/08/2001 6:23:21 PM, Dustin Mitchell wrote: > >Just a warning: this is asking for trouble. Even with rexec, imagine >typing 'while 1: pass' and clicking 'eval'. There's countless security >problems with putting something like this on a server. They're all >soluble, but you'd better be sure you spotted *all* of them :-) > You're right of course. A lot can be avoided by having a dedicated server cpu (if you hang it up, no HUGE deal), a controlled import path, special class for "open", and a thread to act as a timer for the above problem. We should brainstorm other possibilities to plug. Finally a "break me" contest for Jeff's students ;-) Chris From Brent.Burley@disney.com Sat Jun 9 00:24:26 2001 From: Brent.Burley@disney.com (Brent Burley) Date: Fri, 08 Jun 2001 16:24:26 -0700 Subject: [Edu-sig] Interactive tutorial References: <3B210C87.1E463BCC@fa.disney.com> <992032398.6632.0.camel@mdeicaza> Message-ID: <3B215EAA.98B774DF@fa.disney.com> Jeffrey Elkner wrote: > This is way too cool!! I like the idea of > www.python.org/cgi-bin/eval/python, but if that isn't > practical, Yorktown High School (as one of the major beneficiaries of > this project ;-) would be glad to donate a server to it. Just let me > know. Great! The minimum to get started is a cgi script that can execute python in a restricted environment. Here's a condensed version of the one from David Beazley's book: eval.py: -------- #!/usr/local/bin/python import rexec, cgi, sys, string, resource code = cgi.FieldStorage()['code'].value code = string.replace(code, '\015', '') + '\n' sys.stderr = sys.stdout print 'Content-type: text/plain\nResult:\n' class CGIExec(rexec.RExec): def r_open(*args): raise SystemError, 'open not supported' r = CGIExec() # limit to 4mb and 10 cpu secs resource.setrlimit(resource.RLIMIT_DATA, (4000000,4000000)) resource.setrlimit(resource.RLIMIT_CPU, (10,10)) r.s_exec(code) It has everything you need to be secure including cpu and memory limits. This can be tested locally using CGIHTTPServer. Make a directory called cgi-bin and put the above script in it. Then from the directory containing cgi-bin run: 'python -c import CGIHTTPServer; CGIHTTPServer.test()'. It should also be installable into any http server that supports python cgi scripts. You'll need an html form to post the python code to the server. This one is sufficient: codeform.html: -------------- Python Evaluator


And you'll eventually want to wrap it up in a frameset with the tutorial: pytutor.html: ------------- ThinkCSpy Interactive Version <body>Sorry, your browser doesn't support frames</body> The exercises will all be variants on codeform.html that are linked into the main document. The links should specify "target=exercise" to bring them up in the exercise frame. Of course, there's a lot of improvements that would need to be made. The output of eval.py could be enhanced a lot. Ideally, it would execute the script a block at a time and interleave the code with the results. It should also automatically print the result of expressions like the interactive interpreter does. Syntax coloring would be nice. Error handling could be friendlier. Tracebacks should be truncated down to a meaningful level and perhaps eliminated altogether as they are somewhat intimidating and probably not needed for this kind of tutorial. And the output could use some pretty printing too. As for functionality, the pseudo-files Chris suggested are a neat idea (hard to teach file I/O otherwise). All this could be done with a modest effort. And then there's the content... Once a functional eval server is up for everyone to play with, I can post more examples and I imagine the rest will come together fairly quickly. ;-) Brent From delza@alliances.org Sat Jun 9 00:35:11 2001 From: delza@alliances.org (Dethe Elza) Date: Fri, 08 Jun 2001 16:35:11 -0700 Subject: [Edu-sig] Interactive tutorial In-Reply-To: Message-ID: on 01/6/8 05:06 PM, Chris Meyers at cmeyers@guardnet.com wrote: > 06/08/2001 6:23:21 PM, Dustin Mitchell > wrote: > >> >> Just a warning: this is asking for trouble. Even with rexec, > imagine >> typing 'while 1: pass' and clicking 'eval'. There's countless > security >> problems with putting something like this on a server. They're > all >> soluble, but you'd better be sure you spotted *all* of them :-) >> > > You're right of course. A lot can be avoided by having a dedicated > server cpu (if you hang it up, no HUGE deal), a controlled import > path, special class for "open", and a thread to act as a timer for > the above problem. We should brainstorm other possibilities to > plug. Finally a "break me" contest for Jeff's students ;-) Or we could revive the Python plugin and run code locally in the browser (which would also allow some really powerful web-applications to be built around it). Unfortunately, this would require a LOT more work. -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From Jason Cunliffe" The recent thread on Programming for Artists folowed by the Tcl-insprired LivePythonTutorializer reminded me of 'dbn' by John Maeda & co at MIT: http://dbn.media.mit.edu/ You can download a very simple java program and examples. Basically a LOGO meets Postscript idea. Fun annoying provoking elegant simple... MIT press have recently published a beautiful lavish book. This is kinf of liek programming packaged for coffee tables in glass houses. Would like to hear some of your reactions to it ./Jason From my_galuh@yahoo.com Sat Jun 9 06:53:52 2001 From: my_galuh@yahoo.com (syariful anwar) Date: Fri, 8 Jun 2001 22:53:52 -0700 (PDT) Subject: [Edu-sig] i'm a stupid beginner Message-ID: <20010609055352.85327.qmail@web14104.mail.yahoo.com> --0-1649760492-992066032=:83324 Content-Type: text/plain; charset=us-ascii i'm a stupid beginner...anybody can teach me about python...?? please..?!?? --------------------------------- Do You Yahoo!? Yahoo! Mail Personal Address - Get email at your own domain with Yahoo! Mail. --0-1649760492-992066032=:83324 Content-Type: text/html; charset=us-ascii i'm a stupid beginner...anybody can teach me about python...?? please..?!??



Do You Yahoo!?
Yahoo! Mail Personal Address - Get email at your own domain with Yahoo! Mail. --0-1649760492-992066032=:83324-- From wilson@visi.com Sat Jun 9 07:34:03 2001 From: wilson@visi.com (Timothy Wilson) Date: Sat, 9 Jun 2001 01:34:03 -0500 (CDT) Subject: [Edu-sig] Python resources CD available Message-ID: Hi everyone, I mentioned a week or two ago that one of my students was developing a CD with copies of Python tutorials, software, etc. for my course next fall. It's also got a copy of "How To Think Like a Computer Scientist" which will be my text. We're going to give a copy of the CD to each student. I'd like to offer everyone a copy. It's very raw (actually .iso ) and I would certainly welcome suggestions. I would be willing to coordinate improvements if this sig were interested in making this a semi-official product. Perhaps a name tying it in with CP4E would be appropriate. I'm open to suggestions. The most complete feature by far is the collection of Python tutorials and documentation culled from many Web sites. As far as we know, there should be no copyright problems. I'm sure someone knows more about than I, however, and I would appreciate any comments along those lines. We figured that a lot of my students would want to install Python at home and that their parents wouldn't be thrilled if they were tying up the family phone constantly consulting the Internet for their textbook or other documentation. We definitely need to improve the software section of the CD to make it more complete and uniform in its presentation. We've include Pysol and VPython in addition to the Python 2.1 distributions for Win, Linux, and Mac. There are certainly many more third-party programs and modules that could be added. The iso is called pyresources.py and weighs in at around 60 MB. It's available via anonymous ftp from isd197.org. Happy downloading. I look forward to some feedback. I'd really like this to be a great resource for my students and anyone else who'd like to give it a whirl. -Tim -- Tim Wilson | Visit Sibley online: | Check out: Henry Sibley HS | http://www.isd197.org | http://www.zope.org W. St. Paul, MN | | http://slashdot.org wilson@visi.com | | http://linux.com From dyoo@hkn.eecs.berkeley.edu Sat Jun 9 07:36:02 2001 From: dyoo@hkn.eecs.berkeley.edu (Daniel Yoo) Date: Fri, 8 Jun 2001 23:36:02 -0700 (PDT) Subject: [Edu-sig] i'm a stupid beginner In-Reply-To: <20010609055352.85327.qmail@web14104.mail.yahoo.com> Message-ID: On Fri, 8 Jun 2001, syariful anwar wrote: > i'm a stupid beginner...anybody can teach me about python...?? > please..?!?? You don't need to say such terrible things about yourself; too many people associate beginnerhood as if it were a permanent and shameful state, but it's not so! We are all beginners at first --- how else do we gain wisdom? You don't need to put yourself down like that at all. That being said, we'd be glad to talk with you as you learn Python. Do you know about the tutor mailing list: http://mail.python.org/mailman/listinfo/tutor already? We have this mailing list set up so you can talk to other people who are learning the language. We come from all levels: beginners and experts, tutors and students who become tutors. Personally, I think it's a lot of fun! Feel free to subscribe and ask your questions about Python there. I hope to hear from you there! From dyoo@hkn.eecs.berkeley.edu Sat Jun 9 07:41:40 2001 From: dyoo@hkn.eecs.berkeley.edu (Daniel Yoo) Date: Fri, 8 Jun 2001 23:41:40 -0700 (PDT) Subject: [Edu-sig] Python resources CD available In-Reply-To: Message-ID: On Sat, 9 Jun 2001, Timothy Wilson wrote: > We definitely need to improve the software section of the CD to make it more > complete and uniform in its presentation. We've include Pysol and VPython in > addition to the Python 2.1 distributions for Win, Linux, and Mac. There are > certainly many more third-party programs and modules that could be added. Is it practical and possible to have pydoc's help() function autoloaded by bundling a modified interpreter? There was some discussion about a feature like this on the tutor mailing list. Having help() autoloaded like this would be helpful for students: they'd be able to look at the Python documentation more easily, without always having to type: from pydoc import help all the time. From wilson@visi.com Sat Jun 9 07:47:15 2001 From: wilson@visi.com (Timothy Wilson) Date: Sat, 9 Jun 2001 01:47:15 -0500 (CDT) Subject: [Edu-sig] Python resources CD available In-Reply-To: Message-ID: On Fri, 8 Jun 2001, Daniel Yoo wrote: > On Sat, 9 Jun 2001, Timothy Wilson wrote: > > > We definitely need to improve the software section of the CD to make it more > > complete and uniform in its presentation. We've include Pysol and VPython in > > addition to the Python 2.1 distributions for Win, Linux, and Mac. There are > > certainly many more third-party programs and modules that could be added. > > Is it practical and possible to have pydoc's help() function autoloaded by > bundling a modified interpreter? There was some discussion about a > feature like this on the tutor mailing list. Having help() autoloaded > like this would be helpful for students: they'd be able to look at the > Python documentation more easily, without always having to type: > > from pydoc import help > > all the time. Yes, I've followed that discussion on the tutor list too. I think some sort of interactive help would be great. I'm afraid modifying the interpreter is a bit beyond me at this point, however. Making the CD more interactive would be very cool, no doubt. -Tim -- Tim Wilson | Visit Sibley online: | Check out: Henry Sibley HS | http://www.isd197.org | http://www.zope.org W. St. Paul, MN | | http://slashdot.org wilson@visi.com | | http://linux.com From dyoo@hkn.eecs.berkeley.edu Sat Jun 9 08:06:10 2001 From: dyoo@hkn.eecs.berkeley.edu (Daniel Yoo) Date: Sat, 9 Jun 2001 00:06:10 -0700 (PDT) Subject: [Edu-sig] Python resources CD available [getting help() as a builtin] In-Reply-To: Message-ID: >> Is it practical and possible to have pydoc's help() function >> autoloaded by bundling a modified interpreter? > Yes, I've followed that discussion on the tutor list too. I think some > sort of interactive help would be great. I'm afraid modifying the > interpreter is a bit beyond me at this point, however. Making the CD > more interactive would be very cool, no doubt. Yahoo! We don't need to recompile at all: we just need to append the following to site.py within the library : ### ## (within site.py) ## Added by dyoo from pydoc import help __builtin__.help = help del help ### That will do it! Afterwards, help() will appear to be a builtin. I'll crosspost this to the tutor list; people were wondering about this one. This should definitely make things nicer for people. From lha2@columbia.edu Sat Jun 9 08:18:56 2001 From: lha2@columbia.edu (Lloyd Hugh Allen) Date: Sat, 09 Jun 2001 03:18:56 -0400 Subject: [Edu-sig] Re: while 1: pass References: Message-ID: <3B21CDE0.385D2EF3@mail.verizon.net> Of course, we would also have to watch for the infamous while 2: pass If I'm not mistaken, the halting problem suggests that it's impossible to watch for every infinite loop. We could sacrifice some performance by only allowing n iterations of any particular control structure (or x amount of time), but that would kill many prime #, and fibonacci and other series algorithms. It would not sacrifice hello world. Alternatively, perhaps each user gets a cycle in turn, in which case a user running an infinite loop would only affect everyone else to the same degree that a user running some other very long program would, if that makes sense, if it applies. I believe in {li,u}nix terms it means that each person gets her/his own process running at nice 10 or something. From ajs@ix.netcom.com Sat Jun 9 15:06:52 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Sat, 9 Jun 2001 10:06:52 -0400 Subject: [Edu-sig] Fw: [Visualpython-users] Advice? Message-ID: <000801c0f0ed$6f824e60$a9e1fea9@carol> Can anyone here help Bruce with this?? ----- Original Message ----- From: "Bruce Sherwood" To: Sent: Friday, June 08, 2001 9:14 PM Subject: [Visualpython-users] Advice? > Can anyone give us advice on what changes there were in going from Python > 2.0 to Python 2.1 that could lead to the following problem in Visual? > > The following code running on VPython 2.1 for Windows shows that p.color is > a Numeric array, but that it is not possible to assign a Numeric array to > p.color. The problem evidently is in the C++ code for the Visual module, > but in order to understand how to fix it it would be wonderful if someone > happens to know what is changed in Python 2.1 (or Numeric) that would > invalidate the Visual handling of assigning a Numeric array to a Visual > object attribute. The existence of this bug is what is preventing us from > releasing Visual for Python 2.1 > > Bruce Sherwood > > from visual import * > p = convex() > print type(p.color) > c = [.1, .2, .3] > d = array(c) > p.color = d > print p.color > ---------------------------------------- > > Traceback (innermost last) > File "Untitled", line 6, in ? > p.color = d > TypeError: function not supported for these types, and can't coerce to > supported types > > P.S. Attempting to assign p.color = p.color gives the same error. > > > _______________________________________________ > Visualpython-users mailing list > Visualpython-users@lists.sourceforge.net > http://lists.sourceforge.net/lists/listinfo/visualpython-users From pdx4d@teleport.com Sat Jun 9 15:21:33 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sat, 09 Jun 2001 07:21:33 -0700 Subject: [Edu-sig] Fw: [Visualpython-users] Advice? In-Reply-To: <000801c0f0ed$6f824e60$a9e1fea9@carol> Message-ID: <3.0.3.32.20010609072133.013d80d4@pop3.norton.antivirus> At 10:06 AM 6/9/2001 -0400, you wrote: >Can anyone here help Bruce with this?? > Interesting. Plain 'ol simple objects don't have this problem in 2.1 -- something special about these convex objects? >>> class Test: def __init__(self,value): self.color = value >>> type(d) >>> j = Test(d) >>> j.color array([ 0.1, 0.2, 0.3]) >>> j.color = p.color >>> j.color array([ 1., 1., 1.]) Kirby From pobrien@orbtech.com Sat Jun 9 15:52:03 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sat, 9 Jun 2001 09:52:03 -0500 Subject: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] In-Reply-To: Message-ID: Cool idea. Could I suggest a small change, though? The documentation for site says this: "After these path manipulations, an attempt is made to import a module named sitecustomize, which can perform arbitrary additional site-specific customizations. If this import fails with an ImportError exception, it is silently ignored." So would it make more sense to create a sitecustomize.py file with your code? I'm going to give it a try, as soon as I have another cup of coffee. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Daniel Yoo Sent: Saturday, June 09, 2001 2:06 AM To: Timothy Wilson Cc: Python-Edu SIG; tutor@python.org Subject: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] >> Is it practical and possible to have pydoc's help() function >> autoloaded by bundling a modified interpreter? > Yes, I've followed that discussion on the tutor list too. I think some > sort of interactive help would be great. I'm afraid modifying the > interpreter is a bit beyond me at this point, however. Making the CD > more interactive would be very cool, no doubt. Yahoo! We don't need to recompile at all: we just need to append the following to site.py within the library : ### ## (within site.py) ## Added by dyoo from pydoc import help __builtin__.help = help del help ### That will do it! Afterwards, help() will appear to be a builtin. I'll crosspost this to the tutor list; people were wondering about this one. This should definitely make things nicer for people. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor From pobrien@orbtech.com Sat Jun 9 16:18:41 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sat, 9 Jun 2001 10:18:41 -0500 Subject: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] In-Reply-To: Message-ID: Here is the code in site.py that attempts to load sitecustomize.py. As you can gather, sitecustomize.py will have to be on the PYTHONPATH in order to be found, which limits where the file can be located. # # Run custom site specific code, if available. # try: import sitecustomize except ImportError: pass Site.py lives in the Lib directory, so that might be one place to put sitecustomize.py. I don't like that because I like to keep customizations separate from standard Python stuff. So I will probably put this into one of my own personal directories. But that doesn't work as a standard approach. Now that I've played with this I actually like Daniel Yoo's original suggestion the best. Maybe someone should suggest to Guido and company that Daniel's change to site.py be added to the standard distribution. There is something of a precedent in that site.py includes some code to define responses to some other terms (see code below). Anyone know how to submit a PEP? --- snipped from site.py as support for PEP XXXXX --- # Define new built-ins 'quit' and 'exit'. # These are simply strings that display a hint on how to exit. if os.sep == ':': exit = 'Use Cmd-Q to quit.' elif os.sep == '\\': exit = 'Use Ctrl-Z plus Return to exit.' else: exit = 'Use Ctrl-D (i.e. EOF) to exit.' import __builtin__ __builtin__.quit = __builtin__.exit = exit del exit --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Patrick K. O'Brien Sent: Saturday, June 09, 2001 9:52 AM To: Python-Edu SIG; tutor@python.org Subject: RE: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] Cool idea. Could I suggest a small change, though? The documentation for site says this: "After these path manipulations, an attempt is made to import a module named sitecustomize, which can perform arbitrary additional site-specific customizations. If this import fails with an ImportError exception, it is silently ignored." So would it make more sense to create a sitecustomize.py file with your code? I'm going to give it a try, as soon as I have another cup of coffee. --- Patrick K. O'Brien Orbtech "I am, therefore I think." From ajs@ix.netcom.com Sat Jun 9 16:28:57 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Sat, 9 Jun 2001 11:28:57 -0400 Subject: [Edu-sig] re: programming for artists References: <000b01c0ef44$52275d60$a9e1fea9@carol> <003301c0ef7c$b7371f00$c3090740@megapathdsl.net> Message-ID: <001001c0f0f8$e695b360$a9e1fea9@carol> Jason - Checked out the wiki. My favorite so far - The barriers to learning programming - as per Jason, point one - IT IS INHERENTLY COMPLEX The multimedia project I conceive is not tutorial based or related. Among other things, that would be largely duplicative of much else out there - most recently and significantly the Resources CD. The multi-media/ for artists project should be a collection of showoff demos - some of the gold at the end of the rainbow - motivating folks who might not otherwise know why they would undertake the struggle to learn to program. I relate it to math only it that same sense. "I am interested in being an animation artist". My carreer counseling - pay attention in math class. The message, "don't worry someone else will build a high-level tool to protect you from math, just develop your sensibilities" - is a counter revolutionary message IMO. Much better - as per a prior thread here - to give a flavor of the tremendous evidence that math and art have been walking hand-in-hand from day one and that any conception that the disclipines are unrelated, even in opposition, is a peculiarity of our particular time and place. Something we'll get over sooner or later. With the help of these kinds of projects, hopefully sooner. Not accusing you of it. But my input on this kind of project would be very much to try to make this point. Not sure it fits in with your conception/sensibilities as to where the project goes. ART From delza@alliances.org Sat Jun 9 16:57:10 2001 From: delza@alliances.org (Dethe Elza) Date: Sat, 09 Jun 2001 08:57:10 -0700 Subject: [Edu-sig] re: programming for artists In-Reply-To: <001001c0f0f8$e695b360$a9e1fea9@carol> Message-ID: on 01/6/9 08:28 AM, Arthur Siegel at ajs@ix.netcom.com wrote: > My carreer counseling - pay > attention in math class. I find it's interesting that kids are teaching each other linear algebra (at least matrix manipulation) to use in animation after finding math too boring in school. I think that even if math isn't a focus for the Contagious Fun project, there should at minimum be a chapter devoted to the math you need for multimedia. Perhaps you'd be interested in taking this on? I like the idea of creating a showcase to inspire kids to learn more (math and other things). I don't see it as duplicative of the Resources CD, rather I would hope that as our project matures it might be included on the Resources CD. "We are all resources, so we might as well get good at it." -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From pobrien@orbtech.com Sat Jun 9 17:16:21 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sat, 9 Jun 2001 11:16:21 -0500 Subject: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] In-Reply-To: Message-ID: I gave this a try (Adding Daniel's code to sitecustomize.py) and it didn't quite work. Some stuff did and some didn't. As you can see from the sample session below, help on a specific function works, but help with no parameters does not. Weird. Daniel's code works when entered interactively but not when loaded from sitecustomize.py. So then I tried the original suggestion to add it to site.py and I get the same behavior. Can anyone else confirm this? Daniel? I ran this on Win98SE with Python 2.1. --- >>> help Traceback (most recent call last): File "", line 1, in ? File "c:\python21\lib\pydoc.py", line 1276, in __repr__ self() File "c:\python21\lib\pydoc.py", line 1285, in __call__ self.interact() File "c:\python21\lib\pydoc.py", line 1297, in interact self.output.flush() IOError: [Errno 9] Bad file descriptor >>> help(len) Help on built-in function len: len(...) len(object) -> integer Return the number of items of a sequence or mapping. >>> --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Patrick K. O'Brien Sent: Saturday, June 09, 2001 9:52 AM To: Python-Edu SIG; tutor@python.org Subject: RE: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] Cool idea. Could I suggest a small change, though? The documentation for site says this: "After these path manipulations, an attempt is made to import a module named sitecustomize, which can perform arbitrary additional site-specific customizations. If this import fails with an ImportError exception, it is silently ignored." So would it make more sense to create a sitecustomize.py file with your code? I'm going to give it a try, as soon as I have another cup of coffee. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Daniel Yoo Sent: Saturday, June 09, 2001 2:06 AM To: Timothy Wilson Cc: Python-Edu SIG; tutor@python.org Subject: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] >> Is it practical and possible to have pydoc's help() function >> autoloaded by bundling a modified interpreter? > Yes, I've followed that discussion on the tutor list too. I think some > sort of interactive help would be great. I'm afraid modifying the > interpreter is a bit beyond me at this point, however. Making the CD > more interactive would be very cool, no doubt. Yahoo! We don't need to recompile at all: we just need to append the following to site.py within the library : ### ## (within site.py) ## Added by dyoo from pydoc import help __builtin__.help = help del help ### That will do it! Afterwards, help() will appear to be a builtin. I'll crosspost this to the tutor list; people were wondering about this one. This should definitely make things nicer for people. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig From pobrien@orbtech.com Sat Jun 9 17:34:53 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Sat, 9 Jun 2001 11:34:53 -0500 Subject: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] In-Reply-To: Message-ID: Just to be thoroughly anal about this whole thing, I added the following code to my .pythonrc.py PYTHONSTARTUP file: import __builtin__ from pydoc import help __builtin__.help = help del help del __builtin__ When I go into an IDE that honors PYTHONSTARTUP, such as IDLE with the -s command line switch, help is added to builtin and works completely fine (see below for sample output). I must admit, I'm not sure I understand the advantage of having help be a builtin versus having it be just 'from pydoc import help' except that the latter did nothing when I tried it as part of site.py. So I imagine there are namespace things going on that I don't fully understand. --- Here is what 'help' at the python prompt should look like: --- >>> help Welcome to Python 2.1! This is the online help utility. If this is your first time using Python, you should definitely check out the tutorial on the Internet at http://www.python.org/doc/tut/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type "quit". To get a list of available modules, keywords, or topics, type "modules", "keywords", or "topics". Each module also comes with a one-line summary of what it does; to list the modules whose summaries contain a given word such as "spam", type "modules spam". help> --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Patrick K. O'Brien Sent: Saturday, June 09, 2001 11:16 AM To: Python-Edu SIG; tutor@python.org Subject: RE: [Tutor] Re: [Edu-sig] Python resources CD available [getting help() as a builtin] I gave this a try (Adding Daniel's code to sitecustomize.py) and it didn't quite work. Some stuff did and some didn't. As you can see from the sample session below, help on a specific function works, but help with no parameters does not. Weird. Daniel's code works when entered interactively but not when loaded from sitecustomize.py. So then I tried the original suggestion to add it to site.py and I get the same behavior. Can anyone else confirm this? Daniel? I ran this on Win98SE with Python 2.1. --- >>> help Traceback (most recent call last): File "", line 1, in ? File "c:\python21\lib\pydoc.py", line 1276, in __repr__ self() File "c:\python21\lib\pydoc.py", line 1285, in __call__ self.interact() File "c:\python21\lib\pydoc.py", line 1297, in interact self.output.flush() IOError: [Errno 9] Bad file descriptor >>> help(len) Help on built-in function len: len(...) len(object) -> integer Return the number of items of a sequence or mapping. >>> --- Patrick K. O'Brien Orbtech "I am, therefore I think." From ajs@ix.netcom.com Sat Jun 9 18:16:14 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Sat, 9 Jun 2001 13:16:14 -0400 Subject: [Edu-sig] re: programming for artists Message-ID: <001c01c0f107$e40d0ee0$a9e1fea9@carol> >I think that even if math isn't a focus for the Contagious Fun >project, there should at minimum be a chapter devoted to the math you need >for multimedia. Perhaps you'd be interested in taking this on? Never suggested it as a focus. Lobbying for it as an element. A chapter works. And yes, probably the best way for me to contribute. I should get something down while the struggle - and it was a struggle for me - to get a grasp of it is still fresh. Probably will do something along the lines suggested by VPython's crossproduct demo - using VPython and making the 'lessons' dynamic and visually interesting. Focus in on the basics of 3d graphics math. Perhaps I shall now shut up. Start 3d graphics math chapter? Finish some documentation for PyGeo so I can put it out there? Or do I dive in over my head and see if I figure out something about where VPython is having problems? David Scherer? Or devise an outing on a beautiful Spring day in NY? ART From Jason Cunliffe" This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C0F121.27E1D420 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit http://www.zopezen.org/ZopeZen/SDot/992060859 ------=_NextPart_000_0005_01C0F121.27E1D420 Content-Type: application/octet-stream; name="Squishdot.url" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Squishdot.url" [DEFAULT] BASEURL=http://www.zopezen.org/ZopeZen/SDot/992060859 [InternetShortcut] URL=http://www.zopezen.org/ZopeZen/SDot/992060859 Modified=A04FCAA95BF1C0016F ------=_NextPart_000_0005_01C0F121.27E1D420-- From humbert@hagen.de Sun Jun 10 09:53:07 2001 From: humbert@hagen.de (L. Humbert) Date: Sun, 10 Jun 2001 10:53:07 +0200 Subject: [Edu-sig] modelling objectoriented grapical user interface with and for beginners? Message-ID: <3B233573.1DD1C0DF@hagen.de> Please, let's try to put things together. At first: as mentioned earlier, I'm a teacher in informatics -- not primary in mathematics (;-) There is a little misunderstanding in what to teach and how to teach elements in computer science, I think. Many of us(?) believe that you have to know already "something" about handling a computer, before getting started Modelling in informatics. But this is not quite right. We should teach informatics to the beginner, so - everyone gets a "right" mental model of working with a computer (special with a GUI), (s|he) is teached to get a clear understanding of whats going on and *how* this can be expressed *instead of* click here and click there and acitvate this button and scroll this area and ... I believe: it should be possible to build up the process of getting a clear imagination of GUIs capabilities in expressing and producing them with a little help from Python (or other languages) Something like: import ... .. myDesktop=GUI(thisInformaticSytem, thisNetworkEnvironment, ..?) myHomedirectory= myDesktop.showDirectory(thisNetworkEnvironment.home, "collapsed") while not thisInformaticSytem.shutdown(): if thisInformaticSystem.getUserAction(): myDesktop.broadcastAction(allElements_on_Desktop) It should be possible to (re|construct) *simple* handling elements *and* to compare them with "the real" OS-functions. By this, a novice learner should get the power of *constructing* some functional elements of her own. An example could be producing a very simple desktop manager within a couple of lessons, I hope. This way, it should be possible to set up a clear understanding of what wents on behind the scene *and* to empower the children in formulating principal understanding for eventdriven applications not only by describing them, but with the power of an interpreted language. Objectoriented Modelling [process] (most elements are done without programming) for beginners (6. Graders) is teached in bavarian (a region in Germay) - you may take a look at http://www-schulen.informatik.tu-muenchen.de/didaktik/material.html But: it isn't done with support of a language, so only the primary elements of modelling are discussed (and "learned") in this courses. Another example: pupils learn to handle presentation and represantion of looking at directories and their content this can (and is) done "IRL" with whathowever GUI I think, it could be done by using a simple class to allow *them* "reconstructing" the functional behavior ... another piece of an experimental GUI-element-handling system class GUIdir(..): def __init__(...): ... def show(self, lookat="collapsed"): ... def sort(self, crit="name", modus="detail", ...): ... It should be possible to realize such rudiments without relying on a special GUI, so the main classes would be gui-independent. The teacher/pupils/students (c|sh)ould decide, which concrete GUI to use in a course, so it could be tkinter, pygame, swing (for using it with jython), wxpython, gtk, ... In trying to realize this project, a teacher is enabled to focus on those elements, which (s|he] wants the pupils/students - to understand and/or - to use when later on projects are planed and realized. Ludger PS: for the artists? a) on the adobe web site, there are filters which are realized in Python http://opensource.adobe.com/ Python action plug-in for Adobe Photoshop. Allows a user to write Photoshop action plug-ins using Python. Has Python interfaces to all the actions APIs. ... b) there are Python Filters for THE GIMP too: http://www.daa.com.au/~james/pygimp/ From ajs@ix.netcom.com Sun Jun 10 11:16:22 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Sun, 10 Jun 2001 06:16:22 -0400 Subject: [Edu-sig] Fw: [Visualpython-users] Problem resolved Message-ID: <000701c0f196$66b06ac0$a9e1fea9@carol> Got the right man for the job. ----- Original Message ----- From: "Bruce Sherwood" To: Sent: Sunday, June 10, 2001 12:09 AM Subject: [Visualpython-users] Problem resolved > Dave Scherer discovered the change in Python 2.1 that made Visual fail. It > is no longer legal to do the direct comparison "numeric_array == None". > Instead, you now have to do essentially "value.is(Nothing())" instead of > "value == Nothing()". We'll make these changes and then be able to move up > to Python 2.1 > > Bruce Sherwood > > > _______________________________________________ > Visualpython-users mailing list > Visualpython-users@lists.sourceforge.net > http://lists.sourceforge.net/lists/listinfo/visualpython-users From ajs@ix.netcom.com Sun Jun 10 17:53:25 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Sun, 10 Jun 2001 12:53:25 -0400 Subject: [Edu-sig] re: modeling Message-ID: <000701c0f1cd$de19db00$a9e1fea9@carol> Ludger writes - >But this is not quite right. >We should teach informatics to the beginner, >so - everyone gets a "right" mental model of working with a computer >(special with a GUI), >(s|he) is teached to get a clear understanding of whats going on and >*how* this can be expressed >*instead of* >click here and click there and acitvate this button and scroll this area etc. Not fully following your suggestion. What I think I like is the concept of modelling to demonstrate how the GUI - whatever it happens to be - fits in to what is happening 'behind the scenes'. Particularly necessary if one is teaching on a Windows/MAC platform. My own enthusiasm for Informatics would have never developed had not the availability of Linux brought me behind the scenes, and beyond the control of a particular GUI. What I would not like is making GUI concerns - beyond their de-mystification/ deconstruction - too central, too early on. GUI is a later stage development of the Informatics discipline and IMO a later stage pedagogical concern. ART From delza@alliances.org Sun Jun 10 18:36:31 2001 From: delza@alliances.org (Dethe Elza) Date: Sun, 10 Jun 2001 10:36:31 -0700 Subject: [Edu-sig] modelling objectoriented grapical user interface with and for beginners? In-Reply-To: <3B233573.1DD1C0DF@hagen.de> Message-ID: Ludger, If you're interested in building a window manager in Python, there is one already which you might want to look at, the Pointless Window Manager Old page: http://brugd.ctrl-c.liu.se/plwm/ New sourceforge page: http://sourceforge.net/projects/plwm/ HTH --Dethe -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From pdx4d@teleport.com Mon Jun 11 07:15:43 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sun, 10 Jun 2001 23:15:43 -0700 Subject: [Edu-sig] modelling objectoriented grapical user interface with and for beginners In-Reply-To: <3B233573.1DD1C0DF@hagen.de> Message-ID: <3.0.3.32.20010610231543.011f3ac8@pop3.norton.antivirus> Thanks for your interesting post to edu-sig. There's always the tension between exposing students to existing paradigms, the way things are done today, vs. trailblazing something new, which may be the wave of the future, but doesn't provide experience in the so-called "real world". Many people today first learn to think in object-oriented terms in connection with writing GUIs. They come to think of screen widgets (controls) as your paradigm "object", which are in turn instantiations either of "foundation classes" (classes which ship with the product/tool) or subclasses thereof, perhaps user-defined. The standard GUI for designing GUIs features a palatte of controls on a floating toolbar, which the developer drags to a canvas. The painting metaphor is uppermost. You don't have to know much programming at this level -- it's more about the aesthetics of screen design. Books like 'About Face: the Essentials of User Interface Design' by Alan Cooper http://www.amazon.com/exec/obidos/ASIN/1568843224/ help to familiarize people with standards and pitfalls (ugly or cumbersome GUIs, e.g. idiosyncratic dialog boxes, are all over the place, including built right into various OSs -- Windows NT springs to mind). However, you have to know your toolset pretty well to realistically plan for the behavior of the various gizmos ('gizmo' is a technical term in Alan's book -- like widget) -- which is where the programming comes in. Typically, the programmer will define behavior by write snippets of code that tuck into labeled compartments associated with specific events (click, resize, lostfocus, interactive change, mouseover, mouseup...). Sometimes this behavior-defining, event-responsive code is bound to a control by means of "event listeners" (Java), or by "callback functions" (Python + Tk). In Microsoft products, the controls come with lists of properties and methods. Among the inherited methods are those automatically triggered by specific events. If you put code in those places, it'll get executed. If you leave 'em blank, the parent class methods (default methods) will take over -- which in many cases means no response at all (e.g. if you don't put code in a 'click event' area, then nothing will happen if you click the button -- other than the graphical/rollover response of a "depressed button" image replacing a raised button as long as the mouse button is depressed -- perhaps with an audible "click sound"). There are a couple of important tends in GUI design. One is to use HTML, and, by extension, XHTML and XML to encode control panel information. The browser then becomes the application interface. IS people like this because the browser itself is the only distributed app, while the look of the panel is controlled on the server side by the various text files. No going around to each workstation to install the latest forms, nor any downloading of the latest application executables over the intranet (with all the versioning problems that entails, if users fail to keep pace). Here's a product which uses the browser as a GUI front end -- the client paints a screen and a generator translates this to HTML: http://www.udms.com/explorer.htm Another trend, in some ways at the other end of the spectrum, is to design highly stylized GUIs which break away from the standard rectilinear canvases and basic control sets. You basically make up the whole look and feel, rather than developing from a canned set of components. Sonique's MP3 players are a good example. http://sonique.lycos.com/customize/ Viewing the details of featured skins at the above URL gives us a sense of where some branches of the growing GUI tree are headed. The availability of multiple XWindows desktops for Linux, e.g. KDE and Gnome, is another example of "skins" which are more than skin deep -- yet open the same door of possibilities: making the front end much more customizable by the end user, with application developers having more responsibility to publish an API plus a default skin, to which API the alternative skins may attach. Which brings us full circle back to object-oriented, event-driven programming. What we might subclass is the functionality of a button or combo box. Our subclass will broadcast the same events to whatever registered listeners (Java model). But the graphical appearance of this gizmo is something we redefine completely, thereby overriding the default shape (if one is even provided). Kirby From agauld@crosswinds.net Mon Jun 11 10:20:55 2001 From: agauld@crosswinds.net (Alan Gauld) Date: Mon, 11 Jun 2001 10:20:55 +0100 Subject: [Edu-sig] re: modeling Message-ID: <3b248e10.10d64.0@crosswinds.net> >>so - everyone gets a "right" mental model of working with a >> computer (special with a GUI), But there's the rub. What is a right mental model for working with a computer. It's certainly got nothing to do with GUIs - the vast majority of computers (in the most general sense) do not have a GUI. And even many of those that do only use it as a gloss over what is really happening. PCs hide that fact and make the GUI assume much more importance than it deserves. I'd suggest instead going back to basics - teach a computer with a minimal interface - a set of LEDs and some switches say - like the ones used in burglar alarms, fire detectors, industrial process controllers, HiFi remote controls etc etc. Then add intelligence bit by bit(sic) to provide first a character based gui, then a screen based on and finally a GUI. As computing moves beyond the PC into devices like set top boxes and WAP{ phones etc the GUI is likely to diminish somewhat in importance again. The really important principles of data/IO and task control remain constant. >GUI - whatever it happens to be - fits in to what > is happening 'behind the scenes'. Absolutely, without this the rest will ultimately lead to disappointment. We are in real danger of breeding a generation who see computing in terms of GUIs and who will then find the move to the next user paradigm just as confusing as their parents did moving from paper to electronic communications. >GUI is a later stage development of the Informatics > discipline and IMO a later stage pedagogical concern. It's also a minor diversion which is both non essential and distracting from the important issues of computing and infomatics (notice the UK sapelling :-) Just my 2 cents, Alan G. Definition: GUI: A device for making easy things trivial and hard things impossible. From pdx4d@teleport.com Mon Jun 11 14:45:43 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 11 Jun 2001 06:45:43 -0700 Subject: [Edu-sig] re: modeling In-Reply-To: <3b248e10.10d64.0@crosswinds.net> Message-ID: <3.0.3.32.20010611064543.014b9e78@pop3.norton.antivirus> >It's also a minor diversion which is both non essential >and distracting from the important issues of computing >and infomatics (notice the UK sapelling :-) > >Just my 2 cents, > >Alan G. >Definition: >GUI: A device for making easy things trivial and hard >things impossible. I well understand the sentiments here. However, we need to be clear on what's meant by GUI, as sometimes a graphical interface will be precisely the kind of LED affair you describe, except painted on screen. We've all seen the "front end" to a music playing app designed to look just like a stereo system, complete with stacked modular units. Basically, if you take the computer away altogether, and just go to the kitchen to fix some eggs, you might find yourself thinking in terms of a virtual reality GUI -- easier if you do the semantic twists which involve your "never having experienced anything outside of your own brain" (given all sensory data is processed there -- according to some models). In video BIOS terms, you have these various screen modes, and to get colored graphics, you have to switch to VGA or SVGA or (in the old days) EGA and CGA. Text mode is something else -- more primitive. So originally, any application or OS interface that was in a graphical model (beyond text -- one of the "GAs") was considered, well, graphical. Since the user used it, and since it was about controlling internals, it was, by definition, also a user interface. The thing is, once in VGA mode, we have the same capability to project letters, i.e. a command line. You can pull up an XTerm window or DOS box and work in character mode, at a command line. But technically, you're still in the GUI, as this "session" is in the context of a graphical front end. What I think is happening with new generations of programmer is a disregard of some of the fine points and distinctions that might have been important earlier. For example, a hardware device, like a cell phone, is still likely to have an LED, a rectangular display unit, and the trend is to pack in more pixels and color depth, while making the physical display thinner. This has the advantage of making the interface programmable. Instead of wiring knobs and buttons at the hardware level, you generate them as visuals. Combine this with touch sensitivity, and you have a standard appliance of the future. Or, perhaps more typically, you might have a few physical buttons, and gain the flexibility by updating the screen contents via software -- again, similar to the cell phones of today (and televisions -- especially those connected to boxes that put menus on screen, making the remote a navigation device). But this is also a description of the standard PC: the monitor and input peripherals (usually mouse and keyboard) are the fixed constants, with the monitor used to keep changing the possibilities (keyboards haven't been entirely static though -- this row of purple keys across the top is new). When I've brainstormed about what I call a "math center" of the future, I've taken this programmable display vis. hardware controls combo to the students: In a math center, kids would be sitting at NASA-style consoles -- calculators handy maybe, but a computer screen, recessed and augmented with controls, would be more the focus. The central server would be stocked with lesson plan software, and if the day's unit were on trig-based oscilloscope functions, kids would net-access Java (or whatever) applications with native ties to twist-knobs or push buttons for changing amplitude, frequency, whatever other parameters. I realize it's perfectly feasible to provide whatever controls on screen and have just a mouse to twiddle the cartoon knobs, click buttons and so on, but I think it would be fun and useful to have these standard math center consoles come pre-equipped with generic bells and whistles that programmers could tie to applications (the kids themselves being programmers in many situations), and also with sockets for receiving input from compatible devices. This is important because we're not just training kids for bizapp cubicles here, but for workbench engineering, wherein a lot of the instrumentation controls are not just screen based, and wherein computers are very much used for realtime data aggregation via sensors of various description. [ http://www.teleport.com/~pdx4d/mathcenter.html 29 Jan 1998 ] Alternatively, many appliances are internalizing a way to serve a web based interface as I described in my previous post. For example, the 3com wireless unit I have sitting on my desk here is designed to communicate with the owner by TCP/IP. I just go http://192.168.2.1 and I'm interacting with this hardware device via colorful GUI via my web browser and ethernet adapter. All that being said, I agree with you that programmers now as well as then, need to look at applications and OSs sideways, and see the whole set of layers, from presentation down through compiled source to OS calls to the hardware APIs (where I'm defining OS to include graphics modules like DirectX, or the C libraries for getting at OpenGL on the video card e.g. Mesa). At that point, you're talking hardware engineering, with video RAM and controller chips for the raster projection of pixels on phosphor or active/passive matrix illumination. You've got that layer whether or not you're talking text mode or VGA or whatever. Or, if it's a chip or appliance, you might just have ports waiting for bytes to come through -- something more like a CPU chip, with its registers referenced directly in machine code (or as alpha bytes in assembly language). Kirby From Arthur_Siegel@rsmi.com Mon Jun 11 16:59:28 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Mon, 11 Jun 2001 10:59:28 -0500 Subject: [Edu-sig] re: modelling Message-ID: <00777196.N22121@rsmi.com> Kirby writes - >I well understand the sentiments here. However, we need to be >clear on what's meant by GUI, as sometimes a graphical interface >will be precisely the kind of LED affair you describe, except >painted on screen. We've all seen the "front end" to a music >playing app designed to look just like a stereo system, complete >with stacked modular units. It seems to me that discussions in this area here often get confused between us as teachers and us as developers/imagineers. What is an optimum GUI for as learning envrionment, versus what do we need to be teaching about GUI at an early stage. As to what is the optimum learning environment GUI, my sense - which I guess I should stop repeating endlessly - is something very very simple. My conclusion here is again very experiential - and does have a 'political' element. Who controls the vertical. Who controls the horizontal. Maybe the issue is more singular to my own sensibilities than I realize. But a complex environment feeding me puts me in passive./ who's pulling the strings/ we are definitely in school now mode. Even a complex environment that can be toggled into simple mode still ends up being a complex environment, though I do at least see possibilities with this kind of approach. A highly structured and fully transparent environment is the ideal. I just don't believe it to be doable. I settle on transparency/simplicity. Perhaps we are at a stage where the most important thing we can explore/come to terms with about information technology is its reasonable limitations. I vote to start here. As to what we should be teaching at the early stages, something very much other than the Microsoft GUI/form/events centric approach, IMO. The thrill of doing your first VB form is definitely there, but is definitely short-lived. Put another way, if that is the approach one thinks is appropriate, than go VB - it certainly has brought the approach full blown to its natural conclusions and would be almost impossible to improve upon. Python it seems to me, fills a void for those of us fundamentally dissastified with the approach. We are a small minority. But are of course right on. ART From pdx4d@teleport.com Mon Jun 11 18:13:21 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 11 Jun 2001 10:13:21 -0700 Subject: [Edu-sig] re: modelling In-Reply-To: <00777196.N22121@rsmi.com> Message-ID: <3.0.3.32.20010611101321.015dc9b8@pop3.norton.antivirus> > Put another way, if that is the approach one thinks is appropriate, > than go VB Not sure I agree with your tendency to equate this style of programming with VB (which I've never used -- except in its VBA form within Office products, e.g. inside of Access). Using screen painter tools to design a front end is an old idea that didn't start with Microsoft, nor is this approach limited to VB. All the so-called Visual products (Visual C++, Visual FoxPro, and yes, the emerging Visual Python) are characterized by the floating toolbar palette of surfaces and controls. But then, so are the Java IDEs from Borland and Sun. I have nothing against these for what they are. They can save a lot of time. I also think we need to get away from the "high level versus low level" to some degree. Projecting images to a monitor and polling for keyboard and mouse events is low-level interfacing to the human through the human's API. We're working to bridge the cell-silicon circuitries with interfaces of sufficient bandwidth to keep both operating with some efficiency. The biological is "low level" too, just that it's not a product of conscious engineering and we're not sure how it works exactly. But we still need to interface with it. I don't regard using eyeball ports, which are optic-nerve endings of the brain, as ipso facto "higher level" than talking to a chip through its various pins. We're dealing with a primitive biological interface devices, highly suited to their functions (devices I don't see a real need to bypass, unless they're broken i.e. a lot of this fantasizing about hard-wiring components directly to the brain, Borg-style, seems a misguided effort to bypass what billions of years of refinement already give us "for free" -- like trying to drill holes in a Pentium chip in order to bypass its pins (why??)). So when it comes to a highly graphical GUI, that's just a way of encoding frequencies in ways our brains have evolved to interpret, over the aeons. Electromagnetic radiation in a narrow band of the spectrum (visible light) is patterned with information that changes at human-sensible rates (vs. supra or infra-tunable speeds e.g. propellor blades when spinning at high speed, or glacial movements, are not directly perceivable, because too fast or too slow respectively -- GUI events need fit between these extremes, although sometimes a Windows progress bar will approach the glacial limit). What we need to be clear about are "walks of life". Some people have no slack for learning the intricacies of something that others groove on full time. We are all "disabled" in one way or another, in the sense that we lack capabilities, skills, capacities, which others have perfected and take for granted. In a lot of ways, this is exactly what interfaces are all about: making allowances for users who do NOT have the time and/or inclination and/or need and/or ability (for whatever reason) to penetrate the layers by other means and appreciate what's inside the black box. I think it's this concealment and encapsulation of functionality that you are tempermentally disposed to challenge, and I think that's healthy. People have this natural curiousity to know "how things work" and like to consult those picture books, exploded diagrams, blueprints, cutaways, showing the innards, the guts, the "what makes it tick" mechanisms. Python is a great language for exposing a layer of mechanism handled by higher level programming languages. Even if you never learn C/C++ or LISP or Assembler (or MMIX), you get a strong dose of what a programming language is all about, how it feels to use one, how it mediates between a GUI front end, and internalized logic or routines. This is fun to find out about, and should be part of the generic K-12 curriculum IMO. You pick up on the idea of an event loop, that's always listening, polling, waiting for changes, and triggered events, which lead to chains of programmed responses, perhaps along various threads each with a namespace, relative priority, and memory allocation. And you learn what people are talking about when they speak of class hierarchies, polymorphism and instantiated objects. This is all good general knowledge to have, even if your walk of life is not programming, not computer science. Because of your exposure to Python "cave paintings" which sketch the gist of a web server, or whatever it is, you have a feel for the role software plays in the world, even if you don't spend a lot of time writing it yourself. You've aquired a kind of generic numeracy a.k.a. literacy that'll help you read and understand technical literatures of various kinds. That's a worthy goal, in and of itself, and is what I aim for in my 'Numeracy + Computer Literacy' materials. What I want to see develop from familiarity with Python, is a common short-hand for exploring various objects. For example, now that this 8th grader knows some Python, and now that we're studying physics, we might write something like: class Atom: def __init__(self,protons,neutrons,electrons): self.protons = protons self.neutrons = neutrons self.fillorbitals(electrons) def valence(self): ... return ion_number Then you'd have carbon, hydrogen and oxygen objects that instantiated this template. Compounds could be defined as assemblies of such. Knowing Python already, kids would see this as a way of capturing some of the essential qualities of an atom. Furthermore, electrons might be a list rather than a number, consisting of Electron objects (same with neutrons and protons), such that we have class composition going on, with objects inside other objects (not in a class hierarchy sense, but in an agglomerative/associational sense). And in a class hierarchy sense, what are Electrons a subclass of? We could have Fermion and Boson classes, from which our various subclasses with descend, their inherent differences manifest at this parent class level). To me, this is more generic OO thinking, taking objects in the real world and expressing their common traits and behaviors in the form of a class template, then maybe subclassing to hardwire various attributes. This kind of thinking about classes and objects should encompass the GUI widgets as a special case. Screen controls may be treated as a elements in a class hierarchy (or instantiations thereof), no question about it, but that's not where to *start* with the idea of objects. That's just one more example to consider. To me, the idea of "modeling" really gets interesting to the extent we free ourselves from just thinking about GUIs in the narrow sense. Kirby From delza@alliances.org Mon Jun 11 22:49:43 2001 From: delza@alliances.org (Dethe Elza) Date: Mon, 11 Jun 2001 14:49:43 -0700 Subject: [Edu-sig] Contagious Fun Message-ID: There are two new pages on the Contagious Fun wiki I wanted to point out: Co-Conspirators http://www.zope.org/Members/DaddyGravity/ContagiousFun/CoConspirators Sub-projects http://www.zope.org/Members/DaddyGravity/ContagiousFun/SubProjects If you're interested in contributing to the cause (you know who you are), please add a note to each page so we can see who's got what and where it's at. Ideas for sub-projects that you're not willing to claim responsibility for are OK too, we can try to recruit more co-conspirators, or some of us can take on more than one. Of course, anyone can contribute to any project, but I figure we'll each be responsible for keeping up with one of them. Of course, this is only a suggestion. Ideas and comments always appreciated. -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From Arthur_Siegel@rsmi.com Tue Jun 12 01:33:54 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Mon, 11 Jun 2001 19:33:54 -0500 Subject: [Edu-sig] modelling Message-ID: <0077B306.N22121@rsmi.com> >All the so-called Visual products (Visual C++, Visual FoxPro, and yes, the >emerging Visual Python) are characterized by the floating toolbar >palette of surfaces and controls. But then, so are the Java IDEs from >Borland and Sun. I have nothing against these for what they are. >They can save a lot of time. No question. And I am not as against the grain as I might sound. Am a fan of Access, for example. Amazing how much I can get done - without knowing much. Nor am I questioning the value of such building environments in the Python world. Efficiency is good, saving time is good, not re-inventing the wheel is good, wizards are good. But my first stab at learning Java for example was to plunk down $99.999999999 for the MS Java environment - whatever it is JBuilder, no , I forget. And while it might be a perfectly reasonable way to develop Java apps, my testimmony is that it was a ridiculous way to try to learn Java. Get a lot further a lot faster in learning Java by pulling up the demos in a plain vanilla text editor and following along. (there was of course the 4 month investment in getting my classpaths set - but that's now improved) So my theorizing is really no more than generalizing/reporting my own very real experiences. And it is because I have no reason to believe that I am other than typical, that I present them as relevant. Perhaps my only atypical aspect was in my willingness to wander a bit off the beaten track in finding alternative tools that work for me. Was only a few interactive sessions into Guido's tutorial before I knew I was on the right track. And I think you are right. While Python doesn't bring me to the real low levels, it does model well for me what is happening at those levels. Which for my purposes has been quite sufficient. ART From Jason Cunliffe" Message-ID: <004301c0f301$10983020$c3090740@megapathdsl.net> From: > text editor and following along. (there was of course the 4 month investment > in > getting my classpaths set - but that's now improved) classpaths -> ahYes.. That's why I am really hoping you'll work on Jython for Fun. ./Jason From Jason Cunliffe" Message-ID: <004f01c0f303$52d95480$c3090740@megapathdsl.net> From: "Dethe Elza" > There are two new pages on the Contagious Fun wiki I wanted to point out: > > Co-Conspirators > http://www.zope.org/Members/DaddyGravity/ContagiousFun/CoConspirators > > Sub-projects > http://www.zope.org/Members/DaddyGravity/ContagiousFun/SubProjects > > If you're interested in contributing to the cause (you know who you are), > please add a note to each page so we can see who's got what and where it's > at. Ideas for sub-projects that you're not willing to claim responsibility > for are OK too, we can try to recruit more co-conspirators, or some of us > can take on more than one. Thanks burning mad tiger scientist ... Intense deadlines here this week. So nothing new from me only means I am a little afraid to connect to the ZWiki. It's contagious and experience teahces me that once I get started might not be able to stop ;-) Along with the backstory of scripting in multimedia APIs, I note that along with Python as best-kept-secrets | secret weapon for the Adobe apps [Photoshop, Illustrator, After Effects ->+ big thanks to Ludger], there are the emerging XML Javascript extension APIs: Flash5 => Actionscript, XML[data transport protocol] Dreamweaver => Javascript, XML After Effects => Javascript, Python also Rhino => Javascript interpreter in Java == {JythonScript:["ouch!"]} ./Jason From pobrien@orbtech.com Tue Jun 12 03:55:05 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Mon, 11 Jun 2001 21:55:05 -0500 Subject: [Edu-sig] Weird error when pydoc.help is added to builtin from site.py Message-ID: Here is a problem we discovered on the python-edu list. We are trying to add pydoc help to the python environment by adding the following code to site.py: from pydoc import help import __builtin__ __builtin__.help = help del help del __builtin__ For the most part this works. For example, in IDLE, you can do help(len) and get the expected information. But try help with no value and you get the following: >>> help Traceback (most recent call last): File "", line 1, in ? File "c:\python21\lib\pydoc.py", line 1276, in __repr__ self() File "c:\python21\lib\pydoc.py", line 1285, in __call__ self.interact() File "c:\python21\lib\pydoc.py", line 1297, in interact self.output.flush() IOError: [Errno 9] Bad file descriptor Any idea what the problem might be? And if we can get it to work, how do you feel about introducing this as a PEP for Python? There is something of a precedent in the existing code that defines "quit" and "exit". So it would seem to make sense to define "help" as well. --- snipped from site.py as support for PEP XXXXX --- # Define new built-ins 'quit' and 'exit'. # These are simply strings that display a hint on how to exit. if os.sep == ':': exit = 'Use Cmd-Q to quit.' elif os.sep == '\\': exit = 'Use Ctrl-Z plus Return to exit.' else: exit = 'Use Ctrl-D (i.e. EOF) to exit.' import __builtin__ __builtin__.quit = __builtin__.exit = exit del exit --- Patrick K. O'Brien Orbtech "I am, therefore I think." From delza@alliances.org Tue Jun 12 04:44:02 2001 From: delza@alliances.org (Dethe Elza) Date: Mon, 11 Jun 2001 20:44:02 -0700 Subject: [Edu-sig] Contagious Fun In-Reply-To: <004f01c0f303$52d95480$c3090740@megapathdsl.net> Message-ID: on 01/6/11 10:48 PM, Jason Cunliffe at jasonic@panix.com wrote: > Thanks burning mad tiger scientist ... Yes, my *other* business is called Living Code, so my wife jokes about Burning Code and Living Tigers. > Intense deadlines here this week. So nothing new from me only means I am a > little afraid to connect to the ZWiki. It's contagious and experience > teahces me that once I get started might not be able to stop ;-) I hear that. The whole Contagious Fun thing is sometimes a tempting way to avoid real work, but I must resist. Until I figure out how to make it my real work, that is. I'm already halfway there -- working in Zope now instead of Java Servlets! > Along with the backstory of scripting in multimedia APIs, I note that along > with Python as best-kept-secrets | secret weapon for the Adobe apps > [Photoshop, Illustrator, After Effects ->+ big thanks to Ludger], there are > the emerging XML Javascript extension APIs: I knew JavaScript was in there, and of course XML is everywhere. It's too bad everyone's standardizing on JavaScript, it's such a moped (a moped combines all the problems of a motorcycle and a bicycle, with none of the benefits of either, see EJB). Python would have been a much better solution, of course. What I'd really like to see is more programs with XML-RPC interfaces, then we can wire them together from Python easily. As far as I know, JavaScript is one of the few languages which doesn't have XML-RPC yet (probably because it has no native networking, among its many limitations). What I find encouraging is how many commercial products are including python APIs: Poser is one of my top two favorite commercial programs (Bryce is the other). Heck, if I'd had a computer with Poser and Bryce when I was a teenager, I'd have gotten in a lot less trouble %-) Encouraging stuff, but what to work on first? --Dethe -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From pdx4d@teleport.com Tue Jun 12 05:39:10 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 11 Jun 2001 21:39:10 -0700 Subject: [Edu-sig] modelling In-Reply-To: <0077B306.N22121@rsmi.com> Message-ID: <3.0.3.32.20010611213910.014f02dc@pop3.norton.antivirus> >Get a lot further a lot faster in learning Java by pulling up the demos in a >plain vanilla text editor and following along. Yes, we're in agreement. Sometimes I forget the progression on my end: learned dBase II, III, IV, FoxPro in plain vanilla world (not even much color). This was the age of the original PC and PC XT. Windows 3.0 wasn't even an option. Later, FoxPro for Windows migrated us to the GUI, but by then we'd already been doing a kind of windowing in DOS -- a lot of the syntax was already built in. There was a Mac version of FoxPro too -- same source ran on both. But MSFT later dropped its commitment to that fork in the road. Then Visual FoxPro phased in the classes and objects. Learning curve steep, for all of us (there's quite a FoxPro community, with magazines, 3rd party vendors, DevCons...). Not just screen widget objects, but real classes you can define however, with inheritance and polymorphism. Plus of course you get that floating toolbar of controls (VBA/Access feels like a whole different can of worms to me -- you have the canned objects to play with, but how to extend a class hierarchy at the template level? -- FoxPro seems way more sophisticated, and you boot to a command window like IDLE's, not to some GUI wherein the "Immediate Window" is hidden away). But I'd already been coding for years without any real IDE to speak of (those dBase's tried with the screen painters in ASCII mode, but they weren't "round trip" -- change the code in any way and your option to screen paint was broken). So when the GUI IDEs came of age, I was by that time a veteran with a text editor (not with Emacs though -- aside from a little work on the a PDP, I wasn't schooled in UNIX at all -- mostly used IBM VMS mainframe type stuff in school, a little JCL -- yech). I dove into Linux with gusto, but after the partition table corrupted and left me booting to GRUB>, I've decided to stick with a uniboot configuration. My first language was APL. Loved it. Python reminds me of it. Again, mostly command line stuff, little scripts. Some use of the Tektronix graphics terminals... PL/1, Assembler, SNOBOL, a little LISP, quite a bit of FORTRAN (one of the few other languages I've actually been paid to write in). So as you can see, I'm quite an old man. Except for APL, I did all of the above on punch cards (!) When it came to Java, I didn't really start to get it until I read Eckel's 'Thinking in Java' -- then the lights came on. I study his 'Thinking in C' too sometimes, but haven't tried writing the stuff since my Turbo C days back in DOS world. At McGraw-Hill in the 1980s, I did curriculum writing for middle schoolers, focusing on Logo and BASIC (not Visual Basic, just plain BASIC). That's the kind of personal experience I call up when doing curriculum writing around Python -- plus my two years as a high school math teacher in Jersey City... Oh wait. My first programming language wasn't APL -- it was whatever you call it they put on the HP65, one of the first programmable calculators. My friend's dad had one, and Mike and I would spend some hours writing little programs for it, just for the fun of it. Kirby From agauld@crosswinds.net Tue Jun 12 07:38:31 2001 From: agauld@crosswinds.net (Alan Gauld) Date: Tue, 12 Jun 2001 07:38:31 +0100 Subject: [Edu-sig] ANN: New tutor translation Message-ID: <3b25ba4f.17790.0@crosswinds.net> Hi gang, I'm happy to announce a new translation of my Web tutor in the Czech language. This is a very professional translation and has revamped the look of the site too. http://www.crosswinds.net/~agauld/czech/ OR to see the home site, where they are using Python in anger: ------------------ The Czech version of your book is displayed on our Czech web site, on http://www.datapartner.cz please go to "Poradna" (something like Guidance) and there on "Jak se naucit programovat" (the name of your book in Czech language.) ------------------ Unfortunately the changes mean it only works in Internet Explorer - I've asked them to fix the problems... While I was at it the downloadable version in all languages is now in tar/gzip format since that is readable in winzip etc as well as Linux. And finally the German version is now completed too. Enjoy, Alan G From smorris@cereva.com Tue Jun 12 13:34:39 2001 From: smorris@cereva.com (Morris, Steve) Date: Tue, 12 Jun 2001 08:34:39 -0400 Subject: [Edu-sig] The Educational Robotics Platform Message-ID: <8010912471E0D41189930090278D4E48E14E93@spawn.cereva.com> > >I've put the call out to moderate an embedded-SIG and form a > >list. There seems to be a lot of interest both on and > offlist. If the > >meta-sigers are vehemently opposed, I'll start one from EGg0's > >SourceForge base. We'll give it a week or two. This way we can get > >back to education here. I'll let the list know when things happen. > > > >-J This this embedded SIG ever get created? From guido@digicool.com Tue Jun 12 15:05:02 2001 From: guido@digicool.com (Guido van Rossum) Date: Tue, 12 Jun 2001 10:05:02 -0400 Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: Your message of "Mon, 11 Jun 2001 21:55:05 CDT." References: Message-ID: <200106121405.f5CE52s25017@odiug.digicool.com> > Here is a problem we discovered on the python-edu list. We are trying to add > pydoc help to the python environment by adding the following code to > site.py: > > from pydoc import help > import __builtin__ > __builtin__.help = help > del help > del __builtin__ > > For the most part this works. For example, in IDLE, you can do help(len) and > get the expected information. But try help with no value and you get the > following: > > >>> help > Traceback (most recent call last): > File "", line 1, in ? > File "c:\python21\lib\pydoc.py", line 1276, in __repr__ > self() > File "c:\python21\lib\pydoc.py", line 1285, in __call__ > self.interact() > File "c:\python21\lib\pydoc.py", line 1297, in interact > self.output.flush() > IOError: [Errno 9] Bad file descriptor Hm, this works for me in Python 2.2a0. Which versions of Python, IDLE and pydoc are you using? Perhaps you have to reserach the problem more to find out what's the matter. Could it be the PAGER environment variable? > Any idea what the problem might be? And if we can get it to work, how do you > feel about introducing this as a PEP for Python? There is something of a > precedent in the existing code that defines "quit" and "exit". So it would > seem to make sense to define "help" as well. > > --- snipped from site.py as support for PEP XXXXX --- > > # Define new built-ins 'quit' and 'exit'. > # These are simply strings that display a hint on how to exit. > if os.sep == ':': > exit = 'Use Cmd-Q to quit.' > elif os.sep == '\\': > exit = 'Use Ctrl-Z plus Return to exit.' > else: > exit = 'Use Ctrl-D (i.e. EOF) to exit.' > import __builtin__ > __builtin__.quit = __builtin__.exit = exit > del exit > > --- > Patrick K. O'Brien There are some problems with doing it this way: the pydoc module is too big to be imported by site.py. Ping has suggested that some kind of lightweight 'bootstrap' code should be included in site.py. I am in favor of that, but I'm waiting for someone else to submit a patch... --Guido van Rossum (home page: http://www.python.org/~guido/) From ping@lfw.org Tue Jun 12 15:18:03 2001 From: ping@lfw.org (Ka-Ping Yee) Date: Tue, 12 Jun 2001 16:18:03 +0200 (CEST) Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: <200106121405.f5CE52s25017@odiug.digicool.com> Message-ID: Patrick K. O'Brien wrote: > Here is a problem we discovered on the python-edu list. We are trying to add > pydoc help to the python environment by adding the following code to > site.py: > > from pydoc import help > import __builtin__ > __builtin__.help = help > del help > del __builtin__ Guido van Rossum wrote: > There are some problems with doing it this way: the pydoc module is > too big to be imported by site.py. Ping has suggested that some kind > of lightweight 'bootstrap' code should be included in site.py. I am > in favor of that, but I'm waiting for someone else to submit a > patch... Did you mean someone other than me? Anyway, for reference, here is the bootstrap code i initially proposed for site.py when pydoc was being checked in: # Define the built-in object "help" to provide interactive help. class Helper: def __repr__(self): import inspect if inspect.stack()[1][3] == '?': # not called from a function self() return '' return '' def __call__(self, arg=None): import pydoc pydoc.help(arg) __builtin__.help = Helper() The check on inspect.stack()[1][3] == '?' is a bit strange-looking, and could also be expressed as sys._getframe().f_code.co_name == '?' The point of this check is to make sure that we go into interactive mode only when "help" is typed directly at the top level. If the representation of "help" is otherwise obtained, for example: def f(): print help f() then the check on f_code.co_name prevents us from going into interactive help. Without this check, you would get a lot of strange behaviour (e.g. the console would hang waiting for input whenever anyone tries to inspect the "help" variable). -- ?!ng "If I have seen farther than others, it is because I was standing on a really big heap of midgets." -- K. Eric Drexler From pobrien@orbtech.com Tue Jun 12 15:57:06 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Tue, 12 Jun 2001 09:57:06 -0500 Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: <200106121405.f5CE52s25017@odiug.digicool.com> Message-ID: Sorry, I should have specified the environment. I'm running the Python, IDLE and pydoc versions that come with the Python 2.1 for windows file from python.org. I'm running under a completely up-to-date Win98SE. (I know, I know, but please don't groan. At least I can still play games. And I do have a Linux partition. ) Python 2.1 (#15, Apr 16 2001, 18:25:49) [MSC 32 bit (Intel)] on win32 Type "copyright", "credits" or "license" for more information. IDLE 0.8 -- press F1 for help I can try to track the problem further if you like, but I feel a bit out of my league compared to those with more Python experience than I have, which is close to zero (but catching on quickly, I hope.). --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Guido van Rossum Sent: Tuesday, June 12, 2001 9:05 AM To: pobrien@orbtech.com Cc: IDLE Developers List; ping@lfw.org; Python Edu SIG Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py Hm, this works for me in Python 2.2a0. Which versions of Python, IDLE and pydoc are you using? Perhaps you have to reserach the problem more to find out what's the matter. Could it be the PAGER environment variable? --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig From guido@digicool.com Tue Jun 12 16:20:18 2001 From: guido@digicool.com (Guido van Rossum) Date: Tue, 12 Jun 2001 11:20:18 -0400 Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: Your message of "Tue, 12 Jun 2001 09:57:06 CDT." References: Message-ID: <200106121520.f5CFKII25370@odiug.digicool.com> > Sorry, I should have specified the environment. I'm running the Python, IDLE > and pydoc versions that come with the Python 2.1 for windows file from > python.org. I'm running under a completely up-to-date Win98SE. (I know, I > know, but please don't groan. At least I can still play games. And I do have > a Linux partition. ) That's similar to what I have on my laptop. > Python 2.1 (#15, Apr 16 2001, 18:25:49) [MSC 32 bit (Intel)] on win32 > Type "copyright", "credits" or "license" for more information. > IDLE 0.8 -- press F1 for help > > I can try to track the problem further if you like, but I feel a bit out of > my league compared to those with more Python experience than I have, which > is close to zero (but catching on quickly, I hope.). Well, but you have one big advantage: access to the machine! It works fine for me. See if this also breaks when you do this in IDLE: >>> import pydoc >>> pydoc.help() That eliminates the manipulation with __builtin__ as the cause of the problem. Then you'll have to step through the code or use pdb.pm() to find out what was wrong... --Guido van Rossum (home page: http://www.python.org/~guido/) From pobrien@orbtech.com Tue Jun 12 16:46:34 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Tue, 12 Jun 2001 10:46:34 -0500 Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: <200106121520.f5CFKII25370@odiug.digicool.com> Message-ID: Import pydoc; pydoc.help definitely works. In fact, adding help to the builtins works from my PYTHONSTARTUP file or interactively, but not from site.py. That's what made it so weird, at least to me. But getting it loaded as part of site was our goal. I'll step through the code when I get a spare hour (or two or three ). >>> import __builtin__ >>> from pydoc import help >>> __builtin__.help = help >>> del help >>> del __builtin__ >>> help Welcome to Python 2.1! This is the online help utility. If this is your first time using Python, you should definitely check out the tutorial on the Internet at http://www.python.org/doc/tut/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type "quit". To get a list of available modules, keywords, or topics, type "modules", "keywords", or "topics". Each module also comes with a one-line summary of what it does; to list the modules whose summaries contain a given word such as "spam", type "modules spam". help> --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: guido@odiug.digicool.com [mailto:guido@odiug.digicool.com]On Behalf Of Guido van Rossum Sent: Tuesday, June 12, 2001 10:20 AM To: pobrien@orbtech.com Cc: Guido van Rossum; IDLE Developers List; ping@lfw.org; Python Edu SIG Subject: Re: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py See if this also breaks when you do this in IDLE: >>> import pydoc >>> pydoc.help() That eliminates the manipulation with __builtin__ as the cause of the problem. Then you'll have to step through the code or use pdb.pm() to find out what was wrong... --Guido van Rossum (home page: http://www.python.org/~guido/) From guido@digicool.com Tue Jun 12 17:21:27 2001 From: guido@digicool.com (Guido van Rossum) Date: Tue, 12 Jun 2001 12:21:27 -0400 Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: Your message of "Tue, 12 Jun 2001 10:46:34 CDT." References: Message-ID: <200106121621.f5CGLRt25590@odiug.digicool.com> > Import pydoc; pydoc.help definitely works. In fact, adding help to the > builtins works from my PYTHONSTARTUP file or interactively, but not from > site.py. That's what made it so weird, at least to me. But getting it loaded > as part of site was our goal. I'll step through the code when I get a spare > hour (or two or three ). > > >>> import __builtin__ > >>> from pydoc import help > >>> __builtin__.help = help > >>> del help > >>> del __builtin__ > >>> help > > Welcome to Python 2.1! This is the online help utility. > > If this is your first time using Python, you should definitely check out > the tutorial on the Internet at http://www.python.org/doc/tut/. > > Enter the name of any module, keyword, or topic to get help on writing > Python programs and using Python modules. To quit this help utility and > return to the interpreter, just type "quit". > > To get a list of available modules, keywords, or topics, type "modules", > "keywords", or "topics". Each module also comes with a one-line summary > of what it does; to list the modules whose summaries contain a given word > such as "spam", type "modules spam". > > help> Thanks, that helps! I think I've nailed your problem now. The problem is that you are importing pydoc in site.py. The site module is imported by Python before IDLE has created its windows. This means that sys.stdin and sys.stdout still point to the default stdin and stdout of the process -- which don't really exist, since IDLE doesn't run in a DOS box. (I predict that if you run IDLE in a DOS box, help() will "work" using the DOS box for its input and output.) One solution would be to fix pydoc so that it doesn't "freeze" the values of sys.stdin and sys.stdout at the time it is imported. But a better solution (I think) is to add this to site.py: class _Helper: def __repr__(self): return "Please type help() for interactive help." def __call__(self, *args, **kwds): import pydoc return pydoc.help(*args, *kwds) help = _helper() This means that you have to type 'help()' instead of 'help' to get help, but it avoids a whole bunch of other issues with the help object as well, and it is consistent with the behavior of 'quit', 'exit' and (especially) 'license'. Note that 'license' faces a similar problem and uses the same solution (the repr() message reminds the user of the proper way to invoke it). I find this much cooler than the hack that Ping proposed. :-) --Guido van Rossum (home page: http://www.python.org/~guido/) From guido@digicool.com Tue Jun 12 17:35:41 2001 From: guido@digicool.com (Guido van Rossum) Date: Tue, 12 Jun 2001 12:35:41 -0400 Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: Your message of "Tue, 12 Jun 2001 12:21:27 EDT." <200106121621.f5CGLRt25590@odiug.digicool.com> References: <200106121621.f5CGLRt25590@odiug.digicool.com> Message-ID: <200106121635.f5CGZku25682@odiug.digicool.com> > But a better solution (I think) is to add this to site.py: > > class _Helper: > def __repr__(self): > return "Please type help() for interactive help." > def __call__(self, *args, **kwds): > import pydoc > return pydoc.help(*args, **kwds) > > help = _helper() Sorry, there are some typos in it, and the message could be friendlier. How about this (insert after the assignment to __builtin__.license in site.py): # Define new built-in 'help'. # This is a wrapper around pydoc.help (with a twist). class _Helper: def __repr__(self): return "Type help() for interactive help, " \ "or help(object) for help about object." def __call__(self, *args, **kwds): import pydoc return pydoc.help(*args, **kwds) __builtin__.help = _Helper() --Guido van Rossum (home page: http://www.python.org/~guido/) From pobrien@orbtech.com Tue Jun 12 17:55:14 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Tue, 12 Jun 2001 11:55:14 -0500 Subject: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py In-Reply-To: <200106121635.f5CGZku25682@odiug.digicool.com> Message-ID: Way cool. Thank you, Guido, for lending the help we needed. (No pun intended, I swear.) I still remember the first time I ran python and typed 'help' at the prompt. Yikes! But not anymore. Now I'll get a friendly response. I feel very good about this. Made it worth all the effort, and I learned a thing or two. Time for a nap. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: guido@odiug.digicool.com [mailto:guido@odiug.digicool.com]On Behalf Of Guido van Rossum Sent: Tuesday, June 12, 2001 11:36 AM To: Guido van Rossum Cc: pobrien@orbtech.com; IDLE Developers List; ping@lfw.org; Python Edu SIG Subject: Re: [Edu-sig] Re: [Idle-dev] Weird error when pydoc.help is added to builtin from site.py > But a better solution (I think) is to add this to site.py: > > class _Helper: > def __repr__(self): > return "Please type help() for interactive help." > def __call__(self, *args, **kwds): > import pydoc > return pydoc.help(*args, **kwds) > > help = _helper() Sorry, there are some typos in it, and the message could be friendlier. How about this (insert after the assignment to __builtin__.license in site.py): # Define new built-in 'help'. # This is a wrapper around pydoc.help (with a twist). class _Helper: def __repr__(self): return "Type help() for interactive help, " \ "or help(object) for help about object." def __call__(self, *args, **kwds): import pydoc return pydoc.help(*args, **kwds) __builtin__.help = _Helper() --Guido van Rossum (home page: http://www.python.org/~guido/) From ajs@ix.netcom.com Wed Jun 13 01:58:34 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Tue, 12 Jun 2001 20:58:34 -0400 Subject: [Edu-sig] re: The Educational Robotics Platform Message-ID: <001701c0f3a3$f97e59c0$a9e1fea9@carol> Steve asked re embedded sig: >>Did this embedded SIG ever get created? Would say no. I had been curious myself. Checked the meta-sig sig. Jonathan Pennington had proposed the sig there in March, almost simultaneously to a change in ownership of the meta-sig sig from Guido to Deirdre Saoirse. I see no evidence his request was ever responded to. Assume he did not pursue it further. Possible his timing was bad. Possible he was responded to privately. Possible a lack of response is a tacit 'no interest' at meta-sig. Possible the issue had been discussed and rejected at some earlier point in time. ART From guess-who@kevin-masako.com Thu Jun 14 04:45:01 2001 From: guess-who@kevin-masako.com (Kevin & Masako Ollivier) Date: Wed, 13 Jun 2001 23:45:01 -0400 Subject: [Edu-sig] Brainstorming and a neat link Message-ID: <00e901c0f484$64318040$6401a8c0@cox.rr.com> Hello everyone, I'm new to this group, so forgive me if I bring up topics already addressed here or babble on a bit! I've signed up because I'm a programmer who has become addicted to Python and think it's a great introductory programming language. I really believe Guido van Rossum is right that it is an ideal first programming language, not just because it's clean code but because at the conceptual level it's abstract enough that things just work like they should. I've often written a Python script only to think "I'm done?" because I'm so used to sweating all the low-level details or dealing with cryptic syntax errors. I also think Guido is right in saying that programming is a skills everyone should learn. I know colleagues who spend much of their time doing repetitive tasks, taking hours or days to do something that a computer could do in seconds or minutes. The problem is, of course, that most of the "learn programming" books out there are not really that good, IMHO. They may teach you to write code in C/Java/Python but they don't teach you how to design a program. They don't teach you how to abstract a problem and break it down; in short, they don't teach you to "think like a programmer." In my experience, learning programming that way can take years. You have to just keep writing bad programs over and over, picking up small lessons about good program design from each failure. It's hard to recommend programming to a colleague or friend knowing it will take them so long to learn how to do it. I think there has to be a better way. So first I'd like to throw out a couple questions, if you don't mind me picking your collective minds: 1) Are there any "best practices" about how to teach programming? What works, and what doesn't? 2) I've read the CP4E project is dormant. Is there any interest in the Python community for reviving this, or have suitable replacement projects sprung up? 3) Is there anyone out there who has had experience teaching Python, or even another language for that matter? I'd be interested in knowing if people agree with the points I mentioned above. Since I've taken your time and asked these questions, I might as well give something back. =) Below is a link to, IMHO, a very interesting Introductory C++ Programming course. The entire course is designed as a simulation, where the learner assumes the role of an employee at a new programming company and receives tasks that start out easy and get more and more difficult. The learner receive "emails" from the "boss" giving them their assignment. The interesting thing is that there is a completely integrated help system. If the learner doesn't feel comfortable with completing a task, the software will point the learner to relevant documents and examples to help get them up to speed. I haven't taken the course (it is quite expensive!) but it certainly seems an innovative way of teaching programming. I thought you all may like to see it. The link is: http://www.as.columbia.edu/exec/guest/courses/course_icplus_overview.cfm You can take a "tour" of the course environment by clicking on "view course demonstration". Worth a click, IMO. Sorry to bother you all with so many questions on my first post, and thanks for taking the time out to read this! Kevin Ollivier From rnd@onego.ru Thu Jun 14 06:28:44 2001 From: rnd@onego.ru (Roman Suzi) Date: Thu, 14 Jun 2001 09:28:44 +0400 (MSD) Subject: [Edu-sig] Brainstorming and a neat link In-Reply-To: <00e901c0f484$64318040$6401a8c0@cox.rr.com> Message-ID: On Wed, 13 Jun 2001, Kevin & Masako Ollivier wrote: Hi! > Hello everyone, > 1) Are there any "best practices" about how to teach programming? What > works, and what doesn't? I'd like to have an answer to it! My personal experience is that it doesn't matter how to teach programming, what to use (a programming calculator or a supercomputer), when to teach (at what grade from 6 to ...), etc. What really does matter is: your student must be highly motivated to learn! If the motivation remains for some time (from 3-12 months, this differs for different people), s/he will suddenly realise that s/he is able to program. After this, the teacher has to treat such person differently: instead of feeding her/his motivation, he must supply good problems to empower student's intellectual muscles, and, at the same time, try to make student's skills/knowledge as systematic as possible. Sincerely yours, Roman A.Suzi -- - Petrozavodsk - Karelia - Russia - mailto:rnd@onego.ru - From pobrien@orbtech.com Thu Jun 14 16:42:06 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Thu, 14 Jun 2001 10:42:06 -0500 Subject: [Edu-sig] RE: [Tutor] a couple of ideas I've been bouncing around In-Reply-To: Message-ID: I like both of these ideas. Maybe there is a way to combine them. Perhaps the only difference is the Trivial Pursuit version gives the answer and the Certification version withholds the answer. The pyDoc module shows what you can do to make the python interpreter even more interactive in terms of presenting a lot of text and responding to requests for information. Perhaps we could piggyback that module and create an interactive trivia/tutor/testing/certification module. I bet the Edu Sig folks might be interested in this as well. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Rob Andrews Sent: Thursday, June 14, 2001 9:58 AM To: tutor@python.org Subject: [Tutor] a couple of ideas I've been bouncing around In my ongoing quest for novel (twisted?) ways to add even more color to the Python universe, I've come up with a few more ideas. I picked up Trivial Pursuit Genus 5 the other day and thought it would be interesting to produce a Python module for it, essentially a collection of questions and answers about Python, broken down by general category (e.g., "Python Mythology", "Data Structures", "Python History", etc.) using a color scheme compatible with the one Trivial Pursuit uses. This could be printed up on some nice card stock and actually used with the boxed game set. The second idea is an actual test. Brainbench (http://www.brainbench.com) offers a $19.95 certification in Python 1.5. With all the keen, experienced minds and nearly inexhaustible number of questions archived on this list, we should be able to come up with a nice test that generates a brief, meaningful report on how one performed on it. """You were strong enough to tutor another person in the areas of "strings" and "exception handling". You seemed competent in "flow control" and "sockets". You should study more on "OOP" and "embedding". You answered 87% correctly, soundly passing Python Tutor Certification.""" I think anything we do along these general lines would help provide another great learning tool and a healthy bit of fun all around. Rob "Perl is worse than Python because people wanted it worse." Larry Wall (Creator of Perl), 14 Oct 1998 Useless Python: http://www.lowerstandard.com/python/ _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor From guess-who@kevin-masako.com Fri Jun 15 01:48:49 2001 From: guess-who@kevin-masako.com (Kevin & Masako Ollivier) Date: Thu, 14 Jun 2001 20:48:49 -0400 Subject: [Edu-sig] RE: [Tutor] a couple of ideas I've been bouncing around Message-ID: <011201c0f534$f1a809c0$6401a8c0@cox.rr.com> Hi Patrick and Rob, I also like both of your ideas! (BTW, thanks Patrick for sharing this with the edu-sig list! I had not realized there was also a Tutor list!) Building on the ideas you presented, what about an software tool (possibly an "enhanced" version of IDLE?) that gives learners a set of successively harder programming tasks? At any point, the learner can jump to a virtual "help center" and view tutorials, the Python references, FAQs/trivia, or even be given a way to ask a question on the lists. As the learner successfully complete the tasks given to them, the software will keep a record and let them know how far they are towards "mastery." (Of course, true mastery comes only with experience, but it's a start!) I think it has elements of everything discussed thus far, trivia, tutor, and testing. While I'm not sure how we could "officially" certify people who complete the training, we can at least give them a list of all the skills they've gathered over the course of the training, along with when they were last assessed. I think making "real-world tasks" would help increase motivation and give them examples of what Python is typically used for. The more real it seems, the more it will be part-game and part-edusoft I think. If we did it well enough, it could even lead to a finished software product, which is at least as good as a certificate IMHO! What do you all think? Kevin Ollivier -------------------------------------------- Reply-To: From: "Patrick K. O'Brien" To: Cc: "Python Edu SIG" Date: Thu, 14 Jun 2001 10:42:06 -0500 Subject: [Edu-sig] RE: [Tutor] a couple of ideas I've been bouncing around I like both of these ideas. Maybe there is a way to combine them. Perhaps the only difference is the Trivial Pursuit version gives the answer and the Certification version withholds the answer. The pyDoc module shows what you can do to make the python interpreter even more interactive in terms of presenting a lot of text and responding to requests for information. Perhaps we could piggyback that module and create an interactive trivia/tutor/testing/certification module. I bet the Edu Sig folks might be interested in this as well. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Rob Andrews Sent: Thursday, June 14, 2001 9:58 AM To: tutor@python.org Subject: [Tutor] a couple of ideas I've been bouncing around In my ongoing quest for novel (twisted?) ways to add even more color to the Python universe, I've come up with a few more ideas. I picked up Trivial Pursuit Genus 5 the other day and thought it would be interesting to produce a Python module for it, essentially a collection of questions and answers about Python, broken down by general category (e.g., "Python Mythology", "Data Structures", "Python History", etc.) using a color scheme compatible with the one Trivial Pursuit uses. This could be printed up on some nice card stock and actually used with the boxed game set. The second idea is an actual test. Brainbench (http://www.brainbench.com) offers a $19.95 certification in Python 1.5. With all the keen, experienced minds and nearly inexhaustible number of questions archived on this list, we should be able to come up with a nice test that generates a brief, meaningful report on how one performed on it. """You were strong enough to tutor another person in the areas of "strings" and "exception handling". You seemed competent in "flow control" and "sockets". You should study more on "OOP" and "embedding". You answered 87% correctly, soundly passing Python Tutor Certification.""" I think anything we do along these general lines would help provide another great learning tool and a healthy bit of fun all around. Rob "Perl is worse than Python because people wanted it worse." Larry Wall (Creator of Perl), 14 Oct 1998 Useless Python: http://www.lowerstandard.com/python/ _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor From rob@jam.rr.com Fri Jun 15 02:56:51 2001 From: rob@jam.rr.com (Rob Andrews) Date: Thu, 14 Jun 2001 20:56:51 -0500 Subject: [Edu-sig] RE: [Tutor] a couple of ideas I've been bouncing around In-Reply-To: <011201c0f534$f1a809c0$6401a8c0@cox.rr.com> Message-ID: # # Hi Patrick and Rob, # # I also like both of your ideas! (BTW, thanks Patrick for sharing this with # the edu-sig list! I had not realized there was also a Tutor list!) # The Tutor list is great! I can't easily think of a more helpful, decent group of people. And some of the answers to newbie coding questions could easily be quoted verbatim in documentation. # Building on the ideas you presented, what about an software tool (possibly # an "enhanced" version of IDLE?) that gives learners a set of successively # harder programming tasks? At any point, the learner can jump to a virtual # "help center" and view tutorials, the Python references, FAQs/trivia, or # even be given a way to ask a question on the lists. As the learner # successfully complete the tasks given to them, the software will keep a # record and let them know how far they are towards "mastery." (Of course, # true mastery comes only with experience, but it's a start!) I think it has # elements of everything discussed thus far, trivia, tutor, and # testing. While # I'm not sure how we could "officially" certify people who complete the # training, we can at least give them a list of all the skills they've # gathered over the course of the training, along with when they were last # assessed. # # I think making "real-world tasks" would help increase motivation and give # them examples of what Python is typically used for. The more real # it seems, # the more it will be part-game and part-edusoft I think. If we did it well # enough, it could even lead to a finished software product, which # is at least # as good as a certificate IMHO! # # What do you all think? # # Kevin Ollivier # Sounds quite interesting, although quite far beyond my skill level. There are probably lots of odd games we could develop using curses, pygame, etc. to reinforce learning. If we came up with enough components, I could even see a Python Learning Lab on sourceforge or similar (or on Useless Python heehee). Rob "Perl is worse than Python because people wanted it worse." Larry Wall (Creator of Perl), 14 Oct 1998 Useless Python: http://www.lowerstandard.com/python/ From kevino@tulane.edu Fri Jun 15 03:13:30 2001 From: kevino@tulane.edu (Kevin Ollivier) Date: Thu, 14 Jun 2001 22:13:30 -0400 Subject: [Edu-sig] Brainstorming and a neat link References: Message-ID: <012801c0f540$c5e67220$6401a8c0@cox.rr.com> Hi Roman, Yeah, I think you are right about the motivation issue! Most of the people I know who are successful at what they do are highly motivated. In fact, they are able to pick new skills up with or without any formal training - they are constantly exploring new areas and trying to learn more about whatever it is they're interested in. The question then becomes: How do you motivate students? =) Can you, or do you just hope you get a motivated crowd who is ready to learn? Thanks for your input! Kevin ----- Original Message ----- From: "Roman Suzi" Cc: Sent: Thursday, June 14, 2001 1:28 AM Subject: Re: [Edu-sig] Brainstorming and a neat link > On Wed, 13 Jun 2001, Kevin & Masako Ollivier wrote: > > Hi! > > > Hello everyone, > > > 1) Are there any "best practices" about how to teach programming? What > > works, and what doesn't? > > I'd like to have an answer to it! > > My personal experience is that it doesn't matter how to teach programming, > what to use (a programming calculator or a supercomputer), when to teach > (at what grade from 6 to ...), etc. > > What really does matter is: your student must be highly motivated to > learn! > > If the motivation remains for some time (from 3-12 months, this differs > for different people), s/he will suddenly realise that s/he is able to > program. After this, the teacher has to treat such person differently: > instead of feeding her/his motivation, he must supply good problems to > empower student's intellectual muscles, and, at the same time, try to make > student's skills/knowledge as systematic as possible. > > > Sincerely yours, Roman A.Suzi > -- > - Petrozavodsk - Karelia - Russia - mailto:rnd@onego.ru - > > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > From rob@jam.rr.com Fri Jun 15 03:40:12 2001 From: rob@jam.rr.com (Rob Andrews) Date: Thu, 14 Jun 2001 21:40:12 -0500 Subject: [Edu-sig] Brainstorming and a neat link In-Reply-To: <012801c0f540$c5e67220$6401a8c0@cox.rr.com> Message-ID: # -----Original Message----- # # Yeah, I think you are right about the motivation issue! Most of # the people I # know who are successful at what they do are highly motivated. In # fact, they # are able to pick new skills up with or without any formal training - they # are constantly exploring new areas and trying to learn more about whatever # it is they're interested in. # # The question then becomes: How do you motivate students? =) Can you, or do # you just hope you get a motivated crowd who is ready to learn? # We hope for motivated students and use techniques such as Reinforcement Schedules and anything else we can think of to encourage motivation. And teachers should maintain their enthusiasm as much as possible, because students model after teachers in many and unpredictable ways. Communicate a vision of what they are accomplishing, because a clearly expressed idea seems to take on an inertia of its own. And establish learning-oriented routines, because a well-cultivated habit can prevent many dilemmas before they even happen. But I could be wrong, Rob "Perl is worse than Python because people wanted it worse." Larry Wall (Creator of Perl), 14 Oct 1998 Useless Python: http://www.lowerstandard.com/python/ From guess-who@kevin-masako.com Fri Jun 15 04:12:55 2001 From: guess-who@kevin-masako.com (Kevin & Masako Ollivier) Date: Thu, 14 Jun 2001 23:12:55 -0400 Subject: [Edu-sig] RE: [Tutor] a couple of ideas I've been bouncing around References: Message-ID: <013a01c0f549$12f77980$6401a8c0@cox.rr.com> ----- Original Message ----- From: "Rob Andrews" To: "Kevin & Masako Ollivier" ; ; Sent: Thursday, June 14, 2001 9:56 PM Subject: RE: [Edu-sig] RE: [Tutor] a couple of ideas I've been bouncing around > # > # Hi Patrick and Rob, > # > # I also like both of your ideas! (BTW, thanks Patrick for sharing this with > # the edu-sig list! I had not realized there was also a Tutor list!) > # > > The Tutor list is great! I can't easily think of a more helpful, decent > group of people. And some of the answers to newbie coding questions could > easily be quoted verbatim in documentation. Actually, I signed up to the Python edu-sig list just yesterday because I was thinking about the very topic you were discussing. I had always wanted to be able to teach family and friends who are computer users Python simply because I often find myself writing little scripts to automate everyday, repetitive tasks I do on the computer. I was hoping to bounce some ideas back and forth through the list, and the same day I sign up I'm getting my wish! =) The classroom courses I've taken and books I've read almost seem to take all the fun out of programming, and focus on learning syntax, not problem solving. I remember in my first C programming class, one of the students whispered to his friend "So when are we going to start learning how to program GAMES?" That stuck with me. They didn't see how the lessons they were learning could be used to create games. And if they don't see that (in other words, they didn't see how what they were learning could accomplish their goal), what are they going to take out of the class? If it's anything like the Trig I learned... Nothing. =) > # Building on the ideas you presented, what about an software tool (possibly > # an "enhanced" version of IDLE?) that gives learners a set of successively > # harder programming tasks? At any point, the learner can jump to a virtual > # "help center" and view tutorials, the Python references, FAQs/trivia, or > # even be given a way to ask a question on the lists. As the learner > # successfully complete the tasks given to them, the software will keep a > # record and let them know how far they are towards "mastery." (Of course, > # true mastery comes only with experience, but it's a start!) I think it has > # elements of everything discussed thus far, trivia, tutor, and > # testing. While > # I'm not sure how we could "officially" certify people who complete the > # training, we can at least give them a list of all the skills they've > # gathered over the course of the training, along with when they were last > # assessed. > # > # I think making "real-world tasks" would help increase motivation and give > # them examples of what Python is typically used for. The more real > # it seems, > # the more it will be part-game and part-edusoft I think. If we did it well > # enough, it could even lead to a finished software product, which > # is at least > # as good as a certificate IMHO! > # > # What do you all think? > # > # Kevin Ollivier > # > > Sounds quite interesting, although quite far beyond my skill level. There > are probably lots of odd games we could develop using curses, pygame, etc. > to reinforce learning. If we came up with enough components, I could even > see a Python Learning Lab on sourceforge or similar (or on Useless Python > heehee). Some of it is beyond my skill level too. Of course I believe you don't learn new skills until you need them, so I like to give myself a challenge every now and then. =) At the same time, there's quite a bit of work, programming and non-programming, to go around! The tutorials would be quite a bit of work, and then there's Trivial Python (errr... different name maybe?), and if we're serious about the real-world scenarios then someone would have to drum those up too. Like good object-oriented programmers, we could develop each component separately then in the end integrate them into the software. The Useless Python Learning Lab, huh? =) I have to admit the thing I don't like about SourceForge is that it sometimes can be dead slow, or down at times. Thanks, Kevin From kevino@tulane.edu Fri Jun 15 04:21:02 2001 From: kevino@tulane.edu (Kevin Ollivier) Date: Thu, 14 Jun 2001 23:21:02 -0400 Subject: [Edu-sig] Brainstorming and a neat link References: Message-ID: <013e01c0f54a$3574b580$6401a8c0@cox.rr.com> ----- Original Message ----- From: "Rob Andrews" To: "Kevin Ollivier" ; "Roman Suzi" Cc: Sent: Thursday, June 14, 2001 10:40 PM Subject: RE: [Edu-sig] Brainstorming and a neat link > # -----Original Message----- > # > # Yeah, I think you are right about the motivation issue! Most of > # the people I > # know who are successful at what they do are highly motivated. In > # fact, they > # are able to pick new skills up with or without any formal training - they > # are constantly exploring new areas and trying to learn more about whatever > # it is they're interested in. > # > # The question then becomes: How do you motivate students? =) Can you, or do > # you just hope you get a motivated crowd who is ready to learn? > # > > We hope for motivated students and use techniques such as Reinforcement > Schedules and anything else we can think of to encourage motivation. And > teachers should maintain their enthusiasm as much as possible, because > students model after teachers in many and unpredictable ways. Communicate a > vision of what they are accomplishing, because a clearly expressed idea > seems to take on an inertia of its own. And establish learning-oriented > routines, because a well-cultivated habit can prevent many dilemmas before > they even happen. Sounds like a plan to me. I really agree with you on the issue with teachers, I remember a couple of teachers who themselves REALLY liked their subject, and their excitement spread to the class, almost like a virus. (You know, the pre-computer kind.) I really wonder why more professors aren't like that... What do you mean by "learning-oriented routines"? That's a new term for me. > But I could be wrong, *Now* you tell me! =) (j/k) Kevin From rob@jam.rr.com Fri Jun 15 04:25:41 2001 From: rob@jam.rr.com (Rob Andrews) Date: Thu, 14 Jun 2001 22:25:41 -0500 Subject: [Edu-sig] Brainstorming and a neat link In-Reply-To: <013e01c0f54a$3574b580$6401a8c0@cox.rr.com> Message-ID: # -----Original Message----- # What do you mean by "learning-oriented routines"? That's a new # term for me. # # > But I could be wrong, # # *Now* you tell me! =) (j/k) # # Kevin # # Routines of any kind have a kind of built-in reinforcement, and I was thinking along the lines of training the students also in the habitual practice of successful learning. I was referring in general to any routine that directly supports the learning process. Rob "Perl is worse than Python because people wanted it worse." Larry Wall (Creator of Perl), 14 Oct 1998 Useless Python: http://www.lowerstandard.com/python/ From fig@monitor.net Fri Jun 15 16:58:34 2001 From: fig@monitor.net (Stephen R. Figgins) Date: Fri, 15 Jun 2001 08:58:34 -0700 Subject: [Edu-sig] Brainstorming and a neat link In-Reply-To: Your message of "Thu, 14 Jun 2001 09:28:44 +0400." Message-ID: <200106151558.f5FFwY307375@localhost.localdomain> Roman writes: > My personal experience is that it doesn't matter how to teach programming, > what to use (a programming calculator or a supercomputer), when to teach > (at what grade from 6 to ...), etc. > > What really does matter is: your student must be highly motivated to > learn! Finding what motivates can be the hard part. One of the things we discussed in an art of mentoring class I took from the Wilderness Awareness School was how we learn best when we are excited, particularly when our adrenelin is flowing. This is one reason memories of frightening events are so vivid. But you don't have to frighten your students into learning, any excitement will do. One key to mentoring is to teach to a student's passions, whatever they are. What we learned in Art of Mentoring was how to profile students, and how to use those profiles to manipulate them into learning. My teachers called this Coyote Teaching, because it involves some trickery. After you find what hooks them, you draw that out, don't give them what they want right away, but dangle it before them some, dragging them through things they might otherwise have avoided. Excite their passions and manipulate them into the right situations and they will pretty much learn on their own. My teachers called this, "creating a vacuum," the empty gap between what they know and what they want to know. Coyote teaching works best one on one, but you could also use it in a small classroom if you can figure out some common passions your students have. Individual projects will also give you an opportunity to tailor things to each student. -Stephen From pdx4d@teleport.com Fri Jun 15 20:27:06 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Fri, 15 Jun 2001 12:27:06 -0700 Subject: [Edu-sig] More brainstorming about teaching Python In-Reply-To: <200106151558.f5FFwY307375@localhost.localdomain> References: Message-ID: <3.0.3.32.20010615122706.014898ac@pop3.norton.antivirus> My own approach to Python teaching, for those new to this list, is to establish it in the context of material that's already required in most schools i.e. in the midst of mathematics teaching. A new math + computer science hybrid would come to displace the mostly computerless math taught in most schools today. This is currently impractical as math classrooms don't have computers. Mostly it's the homeschoolers with access to the internet who already have the necessary tools. Of course many people consider math boring, and/or difficult, but my feeling is an interactive computer language like Python is the secret magic ingredient that transforms a dull subject into a more interesting and relevant one for a lot of people. Plus it takes a subject which sometimes has a hard time connecting to the real world, and swaps in a better springboard to applications and future career options. Since edu-sig is a lot about computer science teachers looking for ways to replace C or Visual Basic or Java with Python, in already- existing courses, I'm mostly posting in other contexts, trying to spread the gospel of Python to the math teaching community more directly, talking up why a general purpose programming language is a better thing to be teaching than a specialized high end graphing calculator language such as the TI's, or even Mathematica's -- not that it's either/or (we can always do both). However, I draw a lot of inspiration from edu-sig, and come here to whine and complain when I only get cold shouldered by math teachers, who simply don't want to hybridize with an alien discipline, even though various great mathematicians were very into inventing computing machinery to the extent permitted by the technology of their day. The division of numeracy into math on one side of the fence and computer science on the other, especially at the introductory level, is a symptom of over-compartmentalization, over-specialization. A Renaissance approach is to integrate what is artifically kept separate, in order to foster synergy (new wholesome developments, way cooler than what any of the parts considered alone would predict). The thing about computer games is that if they're 3D, vs. a flat panel tableux, they probably feature 3D rotation of objects. This requires some linear algebra or even quaternions. Plus there's this newfangled thing in the pipeline called Clifford Algebra, which is making headway as a new source of algorithms. All these topics have many applications in gaming, and represent some of the main areas covered in mathematics courses. So getting more of the math behind computer games into math class, in tandem with the computer power it takes to play with these gizmos, is something of a priority in the kind of curriculum writing I do and share via the web. Another topic I get into a lot is cryptography, because here we have a lot of great historical narratives intersecting with plenty of interesting math. "Math through storytelling" along with "math through programming" are headings under which a file a lot of the major trends and reforms I consider most encouraging, and do my little part to encourage. None of these ideas are particularly novel or revolutionary of course. A lot of writers have adopted similar strategies. This is just the latest chapter in a long story, with the novelty having a lot to do with the fact that before, we didn't have Python, but now we do. That changes things. For example, having easy access to the extended mathematical routines (big number algorithms), which wasn't available in Turbo Pascal (for example), makes it much easier to explore the connections between number theory and group theory -- in ways that don't require college-level background and training, nor years and years of prior programming experience. Python brings all this within range of high or middle schoolers. I'm of course not saying that Python is the *only* language suitable for this approach. There are others. It's just that we've come a long way since the 1980s, when I pondered these questions from the 28th floor of the McGraw-Hill building in Rockefeller Center, Avenue of the Americas, New York City (right across from my favorite sushi bar). Everything I worked for back then is way more doable today, thanks to Guido et al. The spread of hardware, sophisticated operating systems, and the distribution networks has been phenomenal, and has everything to do with their affordability and ease of use. Now, teachers in many walks of life, spread around everywhere, can engage in collaborative curriculum writing and idea testing so easily. Students can ascend the learning curve more quickly, if at all motivated to do so, and turn around to begin teaching themselves. I'm excited by the increasing levels of literacy, including numeracy, that I sense in so many subcultures and communities. Kirby Curriculum writer Oregon Curriculum Network http://www.inetarena.com/~pdx4d/ocn/ From Arthur_Siegel@rsmi.com Fri Jun 15 22:15:54 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Fri, 15 Jun 2001 16:15:54 -0500 Subject: [Edu-sig] re: modelling Message-ID: <0079A17C.N22121@rsmi.com> An effort that seems quite relevant to the modelling thread. http://www.vision25.demon.co.uk/oss/parrot/intro.html >> >1. What is Parrot? >>>Parrot is a text-based GUI builder, written by Philip Hunt. >>>It is intended to be used by programmers writing GUI applications. >>>Parrot is written in Python, and licenced under the GNU GPL. >>> Parrot uses version 0.5 of John Aycock's SPARK parsing framework, >>>which is described in his paper Compiling Little Languages in Python. To me a quite Pythonic approach to the issue of GUI building. The modelling and the implementation are close to being one process. Analagous to Pythonic math - describe the problem and solve it in a fell swoop. And a tool such as this - when more fully developed - will allow one to explore the various GUI alternatives without making a substantial upfront commitment to the learning curve that each's API presents. For me, that has been the beauty of learning Python. The efficiency, as both a learning and implementation tool. Works more and more in the real world as a sort of a meta-API. Efficieny *is* good. As we are all busy folks. To me a quite Pythonic approach to the issue of GUI building. The modelling and the implementation are close to being one process. Analagous to Pythonic math - describe the problem and solve it in a fell swoop. And a tool such as this allows one to explore the various GUI alternatives without making a substantial upfront commitment to tackle the learning curve that each's API presents. For me, that has been the beauty of learning Python. The efficiency, as both a learning and implementation tool. Works more and more in the real world as a sort of a meta-API. ART From pdx4d@teleport.com Mon Jun 18 06:36:01 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Sun, 17 Jun 2001 22:36:01 -0700 Subject: [Edu-sig] Peeking under the hood In-Reply-To: <0079A17C.N22121@rsmi.com> Message-ID: <4.2.0.58.20010617223409.0095cf00@pop3.norton.antivirus> And now for something completely different... Let's help give students a sense of what it means to say "in Python, user-defined functions compile to bytecodes". Here's a silly function to remove an item from a list, or not care if it ain't there. This one's "in place" (returns nothing). >>> def rem(L,i): try: L.remove(i) except ValueError: pass >>> mylist = ['C','A','T'] >>> rem(mylist,'C') >>> mylist ['A', 'T'] >>> rem(mylist,'X') >>> mylist ['A', 'T'] The code object corresponding to this function may be dumped as an attribute of rem: >>> rem.func_code ", line 1> Let's look at the bytecodes: >>> rem.func_code.co_code '\x7f\x01\x00\x7f\x02\x00y\x17\x00\x7f\x02\x00|\x00\x00i \x01\x00d\x01\x00d\x02\x00\x83\x00\x01\x01Wn\x19\x00\x7f \x03\x00\x04t\x02\x00j\n\x00o\n\x00\x01\x01\x01\x01\x7f \x03\x00n\x02\x00\x01Xd\x00\x00S' The dis module lets you disassemble bytecodes into something more readable (if not the original Python source): >>> import dis >>> import pydoc >>> pydoc.help(dis) Help on module dis: NAME dis - Disassembler of Python byte code into mnemonics. FILE d:\program files\python21\lib\dis.py DATA <> >>> dis.disassemble(rem.func_code) 0 SET_LINENO 1 3 SET_LINENO 2 6 SETUP_EXCEPT 23 (to 32) 9 SET_LINENO 2 12 LOAD_FAST 0 (L) 15 LOAD_ATTR 1 (remove) 18 LOAD_CONST 1 ('i') 21 LOAD_CONST 2 (0) 24 CALL_FUNCTION 256 27 POP_TOP 28 POP_BLOCK 29 JUMP_FORWARD 25 (to 57) >> 32 SET_LINENO 3 35 DUP_TOP 36 LOAD_GLOBAL 2 (ValueError) 39 COMPARE_OP 10 (exception match) 42 JUMP_IF_FALSE 10 (to 55) 45 POP_TOP 46 POP_TOP 47 POP_TOP 48 POP_TOP 49 SET_LINENO 3 52 JUMP_FORWARD 2 (to 57) >> 55 POP_TOP 56 END_FINALLY >> 57 LOAD_CONST 0 (None) 60 RETURN_VALUE Now that's something different. Pieces missing in this story. Could be fleshed out. Like Arthur, I like to peek under the hood sometimes. Kirby From mmdell1@home.com Mon Jun 18 14:02:21 2001 From: mmdell1@home.com (Margie Delahan) Date: Mon, 18 Jun 2001 09:02:21 -0400 Subject: [Edu-sig] VIDEO GAMES Message-ID: <000e01c0f7f6$e9e09940$49580941@ross1.pa.home.com> This is a multi-part message in MIME format. ------=_NextPart_000_000B_01C0F7D5.6282AE00 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Can you create simple video games using the python programming language. = If so, how? ------=_NextPart_000_000B_01C0F7D5.6282AE00 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Can you create simple video games using the python = programming=20 language.  If so, how?
------=_NextPart_000_000B_01C0F7D5.6282AE00-- From kevino@tulane.edu Mon Jun 18 14:46:47 2001 From: kevino@tulane.edu (Kevin Ollivier) Date: Mon, 18 Jun 2001 09:46:47 -0400 Subject: [Edu-sig] VIDEO GAMES References: <000e01c0f7f6$e9e09940$49580941@ross1.pa.home.com> Message-ID: <000b01c0f7fd$1f148940$2101a8c0@kevinnew> This is a multi-part message in MIME format. ------=_NextPart_000_0008_01C0F7DB.97536F60 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Margie, You can indeed create simple, or even complex, games using Python. = (Although they will only work on PC.) In fact, quite a few people have = done so! There is a web site called the "Vault of Parnassus" which has = links to all sorts of programs written in Python, including games. The = address is:=20 http://www.vex.net/parnassus/ Just go to that page and click on the "Games" section. There are plenty = of examples there to look over. The nice thing about Python is that if = the file ends with ".py", then you can see the code for the game! Most = games have the source code available.=20 As for how to program games, the first thing you will need to do is = learn Python of course! =3D) I would recommend taking the tutorials at = python.org or getting yourself a book on Python. There aren't any = game-specific books for programming Python, but just know that you'll = use all the skills you learn in your Python book for creating games as = well. Once you've done that, you should check out those examples I = mentioned and head over to www.pygame.org, which contains a set of = Python programming tools for building games. They even have an article = for "newbies" who want to get started with Pygame at:=20 http://pygame.seul.org/docs/tut/newbieguide.html It will take some time and effort to get to the point where you can = write games in Python, so I would only recommend it if you're serious = about learning to program. However, if you like computers and find = programming interesting, then I think you'll enjoy the experience and = give yourself some valuable new skills in the process! Good luck! Kevin Ollivier=20 ----- Original Message -----=20 From: Margie Delahan=20 To: edu-sig@python.org=20 Sent: Monday, June 18, 2001 9:02 AM Subject: [Edu-sig] VIDEO GAMES Can you create simple video games using the python programming = language. If so, how? ------=_NextPart_000_0008_01C0F7DB.97536F60 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi Margie,
 
You can indeed create simple, or even = complex,=20 games using Python. (Although they will only work on PC.) In fact, quite = a few=20 people have done so! There is a web site called the "Vault of Parnassus" = which=20 has links to all sorts of programs written in Python, including games. = The=20 address is:
 
http://www.vex.net/parnassus/<= /FONT>
 
Just go to that page and click on the = "Games"=20 section. There are plenty of examples there to look over. The nice thing = about=20 Python is that if the file ends with ".py", then you can see the code = for the=20 game! Most games have the source code available.
 
As for how to program games, the first = thing you=20 will need to do is learn Python of course! =3D) I would recommend taking = the=20 tutorials at python.org or getting yourself a book on Python. There=20 aren't any game-specific books for programming Python, but = just know=20 that you'll use all the skills you learn in your Python book for = creating=20 games as well. Once you've done that, you should check out those = examples I=20 mentioned and head over to www.pygame.org,=20 which contains a set of Python programming tools for building games. = They even=20 have an article for "newbies" who want to get started with Pygame=20 at: 
 
http://pygame.s= eul.org/docs/tut/newbieguide.html
 
It will take some time and effort to = get to the=20 point where you can write games in Python, so I would only recommend it = if=20 you're serious about learning to program. However, if you like = computers=20 and find programming interesting, then I think you'll enjoy the = experience and=20 give yourself some valuable new skills in the process!
 
Good luck!
 
Kevin Ollivier 
----- Original Message -----
From:=20 Margie = Delahan=20
Sent: Monday, June 18, 2001 = 9:02 AM
Subject: [Edu-sig] VIDEO = GAMES

Can you create simple video games using the python = programming language.  If so, = how?
------=_NextPart_000_0008_01C0F7DB.97536F60-- From lannert@earthlink.net Mon Jun 18 19:59:03 2001 From: lannert@earthlink.net (Eric J. Lannert) Date: Mon, 18 Jun 2001 13:59:03 -0500 Subject: [Edu-sig] greetings Message-ID: <003801c0f828$bfc653c0$4d4bb1d0@closerlook.com> hi there, i am new to the group. i came across it in a google search for "personification and learn and programming". i teach programming in chicago at a not-for-profit called i.c.stars (www.icstars.org). i must say after lurking for a while i feel like i may have finally found an online home of peers. my initial question is around planning a move to python. i anticipate resistance to curriculum changes, especially to a language that hr directors who hire my graduates have not heard of. i'm guessing many of you encountered similar resistance from departments/students who increasingly get "we're accountable to the market", "if its not java, vb, or c++, it doesn't apply", etc. thoughts and war stories welcome. warm regards, eric --- eric j. lannert i.c.stars|* (m) 773-251-6362 (w) 312-640-3782 From rnd@onego.ru Mon Jun 18 21:07:52 2001 From: rnd@onego.ru (Roman Suzi) Date: Tue, 19 Jun 2001 00:07:52 +0400 (MSD) Subject: [Edu-sig] Brainstorming and a neat link In-Reply-To: <012801c0f540$c5e67220$6401a8c0@cox.rr.com> Message-ID: On Thu, 14 Jun 2001, Kevin Ollivier wrote: Hi, Kevin, >Hi Roman, > >Yeah, I think you are right about the motivation issue! Most of the people I >know who are successful at what they do are highly motivated. In fact, they >are able to pick new skills up with or without any formal training - they >are constantly exploring new areas and trying to learn more about whatever >it is they're interested in. > >The question then becomes: How do you motivate students? =) Can you, or do >you just hope you get a motivated crowd who is ready to learn? I am sorry for I can't really answer this question. Most of the time I hope for the motivated crowd, because I feel it unnecessary to teach programming to unmotivated people... * Usually we had 2 students per machine ('cause there are not so many machines available ;-) Recently I got to know that XP (eXtreeme Programming) is new cool technique which uses this approach ;-) Sincerely yours, Roman Suzi -- _/ Russia _/ Karelia _/ Petrozavodsk _/ rnd@onego.ru _/ _/ Friday, June 15, 2001 _/ Powered by Linux RedHat 6.2 _/ _/ "UFO's are real: the Air Force doesn't exist." _/ From pdx4d@teleport.com Tue Jun 19 07:49:38 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Mon, 18 Jun 2001 23:49:38 -0700 Subject: [Edu-sig] More re compression Message-ID: <4.2.0.58.20010618234927.00a52f00@pop3.norton.antivirus> Some were discussing doing a tutorial on compression using Python. This web page on the Huffman algorithm has a brilliant little Java applet (takes awhile to load in its own window -- push 'Run Animation' towards bottom of page) which makes the idea behind this algorithm quite clear. http://swww.ee.uwa.edu.au/~plsd210/ds/huffman.html The depicted source code is C++, but there's a graphical interpretation going on in parallel worth 1000 lines of code. Kirby From delza@alliances.org Tue Jun 19 19:54:20 2001 From: delza@alliances.org (Dethe Elza) Date: Tue, 19 Jun 2001 11:54:20 -0700 Subject: [Edu-sig] Contagious Fun Message-ID: Stephen Figgins has posted an article on "Programming for Artists" (http://www.onlamp.com/pub/a/python/2001/06/14/pythonnews.html). Thanks, Stephen! It includes a bit of background and a pointer to the Wiki. So we should ge= t busy and get some content up! For my part, I've finally got Snack working on my Mac (thanks, K=E5re!), so I have no further excuses. I refactored the site slightly last week, so if you haven't been in awhile, check it out. And please, if you're interested in contributing, add yourself to the Co-Conspirators page and projects page= , it's looking kind of sparse so far. And feel free to cross-post scripts written for other projects (I've put up a VPython script to visualize a bookshelf, working on a VPython geometry/ar= t script to post RSN). I'll put up a version of the agenda I posted here earlier, and some ideas for a table-of-contents-ish page for discussion. Let's have fun! --=20 Dethe Elza=20 Chief Mad Scientist Burning Tiger Technologies From delza@alliances.org Tue Jun 19 20:26:29 2001 From: delza@alliances.org (Dethe Elza) Date: Tue, 19 Jun 2001 12:26:29 -0700 Subject: [Edu-sig] Contagious Fun In-Reply-To: Message-ID: I forgot to thank Fredrik Lundh. I found the link to Stephen's article on PythonWare's Python Daily URL. BTW, Fredrik, I love your new book (Python Standard Library, O'Reilly). It gives me the same sense as watching over the shoulder of a master carpenter tossing off with ease and grace what I have struggled to acheive in the rough. And no, I haven't posted a review on the major book sites either, but I might put one on my weblog (http://livingcode.ca). -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From halves@ec.ucdb.br Tue Jun 19 22:17:48 2001 From: halves@ec.ucdb.br (Higor Aparecido Vieira Alves) Date: Tue, 19 Jun 2001 17:17:48 -0400 (AMT) Subject: [Edu-sig] cgi... Message-ID: Hi, I need create a cgi to change password in passwd. What's modules I use? []s Higor Aparecido Vieira Alves |=======================================| | | | htpp://www.ec.ucdb.br/~halves | |=======================================| | .~. | | / v \ Seja Livre, use GNU/Linux! | | / ( ) \ | | ^^-^^ halves@ec.ucdb.br | |=======================================| From delza@alliances.org Tue Jun 19 22:37:58 2001 From: delza@alliances.org (Dethe Elza) Date: Tue, 19 Jun 2001 14:37:58 -0700 Subject: [Edu-sig] cgi... In-Reply-To: Message-ID: > I need create a cgi to change password in passwd. What's modules I > use? The cgi module will give you access to the parameters passed in from the web page. How you change passwd is highly dependent on how your linux box is set up. If you're using shadow passwords I don't really know how to change them, and you'd have to be root to do it (not a good idea for a cgi script). On the other hand, if you're just using /etc/passwd directly it's mostly just a string exchange, but would still have to be run as root. Changing the passwd from a CGI program sounds like opening a huge security hole on your system, no matter how you do it. If you're trying to manage web accounts, perhaps you should consider a membership system which is external to the filesystem security (something like LDAP, for instance). I hope this helps. -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From dustin@cs.uchicago.edu Tue Jun 19 22:41:01 2001 From: dustin@cs.uchicago.edu (Dustin Mitchell) Date: Tue, 19 Jun 2001 16:41:01 -0500 (CDT) Subject: [Edu-sig] cgi... In-Reply-To: Message-ID: On Tue, 19 Jun 2001, Higor Aparecido Vieira Alves wrote: > I need create a cgi to change password in passwd. What's modules I > use? To do that, you'd need to run your CGI as root (no other user can modify /etc/passwd). Running a CGI as root is an *exceedingly* bad idea, as it opens your system up to all manner of security vulnerabilities. That said, the 'pwd' module allows (read-only) access to the passwd database, and the 'crypt' module exposes the one-way function UNIX systems use to encode passwords. Good luck! Dustin --------------------------------------------------------------------- | Dustin Mitchell )O( | --------------------------------------------------------------------- From gef@chello.nl Tue Jun 19 23:15:12 2001 From: gef@chello.nl (Fotis Georgatos) Date: Wed, 20 Jun 2001 00:15:12 +0200 Subject: [Edu-sig] Python, in classroom settings References: Message-ID: <3B2FCEF0.88F78617@chello.nl> Hello all, first of all let me be welcomed ;-) this is a newcomer bringing nice news: Python will be evaluated in classroom settings for teaching programming skills, mostly in high school level in Greece. If interested, read the excerpt from the coming research thesis, there is more to say but it's early for announces right now. So, it's my turn to dig the archives of this mailing list... PS. Who am I: Computer Engineer & Informatics + M.Sc. in CS Education (ongoing) many greetings, Fotis ---------------------------------------------------- Fotis Georgatos 15-6-2001 UvA, Amstel Institute PROLOGUE Guido van Rossum, in his paper "Computer Programming for Everybody" [CP4E] explains why teaching a good first computer language to pupils can be so critical in their performance in a technological society. The very same person is the initiator of a growing in value computer language, which in his words has the following properties: 'Python is a language designed for rapid development. Python makes a great first language to learn: Unlike languages designed specifically for beginners, Python is also the choice of many programming professionals. It has an active, growing user community with expressed interest in education matters, and this will be a fertile first deployment ground for teaching materials and tools. Originally developed at CWI in Amsterdam, Python is extremely suitable for teaching purposes, without being a "toy" language: it is very popular with computer professionals as a rapid application development language. Python combines elements from several major programming paradigms (procedural, functional and object-oriented) with an elegant syntax that is easy on the eyes and easy to learn and use.' This thesis' aim is to evaluate Python in a classroom environment as an educational tool and examine its properties through real experience. RESEARCH QUESTION How applicable is Python as first computer language in a preacademic educational environment? AIMS * Develop a 1-month computer language course for high school level, defining both course content and implementation environment. * Find teachers that are interested to (a) learn and (b) teach Python. * Teach in classes with this curriculum. * Build a user community for the above, encouraging feedback and self-help. * Investigate teacher's feedback and student's results with the language. From delza@alliances.org Tue Jun 19 23:27:13 2001 From: delza@alliances.org (Dethe Elza) Date: Tue, 19 Jun 2001 15:27:13 -0700 Subject: [Edu-sig] Python, in classroom settings In-Reply-To: <3B2FCEF0.88F78617@chello.nl> Message-ID: > first of all let me be welcomed ;-) Welcome! > this is a newcomer bringing nice news: > Python will be evaluated in classroom settings for teaching > programming skills, mostly in high school level in Greece. That is excellent news. Looking forward to hearing more about this. -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From antoni3@otenet.gr Wed Jun 20 00:19:48 2001 From: antoni3@otenet.gr (Kaklis Antonis) Date: Wed, 20 Jun 2001 02:19:48 +0300 Subject: [Edu-sig] Python, in classroom settings Message-ID: <002501c0f916$741c91c0$e979a7c3@antonis> This is a multi-part message in MIME format. ------=_NextPart_000_0022_01C0F92F.7B192B00 Content-Type: text/plain; charset="iso-8859-7" Content-Transfer-Encoding: quoted-printable Hello to the whole Python Community, from Greece. Welcome Fotis, You bring excellent news with your arrival... I really hope, and I would do everything I can with all my efforts, to help making Python known and acceptable (it's the best Programming = Language) here in Greece, especially for educational purposes. Antonis Kaklis M.Sc. in Computational Mathematics & Artificial Intelligence University Of Patras Department Of Mathematics Division Of Computational Mathematics & Informatics Patra, Greece =20 ------=_NextPart_000_0022_01C0F92F.7B192B00 Content-Type: text/html; charset="iso-8859-7" Content-Transfer-Encoding: quoted-printable
Hello to the whole Python = Community,
from Greece.
 
Welcome Fotis,
You bring excellent news with your=20 arrival...
I really hope, and I would do = everything I can with=20 all my efforts,
to help making Python known and = acceptable=20 (it's the best Programming Language)
here in Greece, especially for = educational=20 purposes.
 
Antonis Kaklis
 
M.Sc. in Computational Mathematics=20 &
          &nbs= p; =20 Artificial Intelligence
University Of Patras
Department Of Mathematics
Division Of Computational Mathematics=20 &
          &nbs= p; =20 Informatics
 
Patra, Greece
 
 
------=_NextPart_000_0022_01C0F92F.7B192B00-- From pdx4d@teleport.com Wed Jun 20 04:52:54 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Tue, 19 Jun 2001 20:52:54 -0700 Subject: [Edu-sig] Hello Greece (plus greek xhtml) In-Reply-To: <002501c0f916$741c91c0$e979a7c3@antonis> Message-ID: <4.2.0.58.20010619204602.00bb37c0@pop3.norton.antivirus> Greetings to subscribers in Greece! That *is* good news. Python is certainly a fine language and an excellent one for teaching programming, as it gives you many of the key concepts relatively painlessly. Your skills are transferrable to other, more difficult languages. Administrators who "haven't heard of Python" and so don't consider allowing it as a teaching language in their schools are really missing the boat! By the way, just recently I was playing around with generating an xhtml web page listing greek characters, encoding in UTF-8, which the most recent browsers will decode as an option. The module below will generate either latin.html or greek.html from the command line. Kirby import unicodedata import codecs """ Chapter 2: Cardinality """ xhtmldoc = """ """ def greek(filename="greek.html", title="Greek Characters", urange=(0x384,0x3ce)): "List some Greek characters in xhtml lang=utf-8 format" mkxhtml(filename,title,urange) def latin(filename="latin.html", title="Latin Characters", urange=(0x41,0x7a)): "List some Latin characters in xhtml lang=utf-8 format" mkxhtml(filename,title,urange) def mkxhtml(filename,title,urange): "Generate xhtml filename for unicode urange (tuple)" f = codecs.open(filename, 'w','utf-8') f.write(xhtmldoc) f.write("
"+title+"
") f.write("
")
         f.writelines(listnames(urange[0],urange[1]))
         f.write("
") f.close() def listnames(low,high): """Return list of unicode objects: hex, unicode, name for low/high range""" lines = [] for i in range(low,high+1): try: lines.append( "0"+hex(i)[2:]+" " + unichr(i) + " "+unicodedata.name(unichr(i)) + "\n") except ValueError: pass return lines From pobrien@orbtech.com Wed Jun 20 16:57:51 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 10:57:51 -0500 Subject: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: <003a01c0f8a4$a3137420$f05aa8c0@lslp7o.int.lsl.co.uk> Message-ID: I agree with these sentiments and am copying this message to the Edu and Tutor lists because I think the folks there are a good part of the demand that you mention below. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: idle-dev-admin@python.org [mailto:idle-dev-admin@python.org]On Behalf Of Tony J Ibbs (Tibs) Sent: Tuesday, June 19, 2001 4:46 AM To: idle-dev@python.org Subject: [Idle-dev] IDLE "deemphasised"? Please not so... In Wesley Chun's thread on amending IDLE, Guido said: > The problem is that IDLE development has virtually come to a halt > -- I just can't find the time to work on it, and there are other > good development environments available. Mats Wichmann then said: > As Guido knows, I'm certainly interested in IDLE evolving, > because I find it a very handy learning tool - not just > for me; like Wesley, I try to teach some Python classes > from time to time. There may be "better" IDEs but I'm > not convinced I've seen one yet (for Python). And in my > particular situation, it HAS to be cross-platform, I'm > not going to fuss with two different IDEs in a classroom > situation (students get to choose Win2k or Linux). > > But I suspect most "serious programmers" don't really see > IDLE as being a "serious IDE" - at least I gather this > impression from comments on c.l.p, esp. from folks who come > from other (inferior?) languages where an IDE is essential to > maintaining any sanity, so they've evolved into quite sophisticated > tools. So I don't know if there'd be a whole lot of overall > enthusiam for doing a lot to IDLE. Whilst I understand all about not having time for things because there are other things to do (!), I do think it would be a pity if IDLE died away. It seems to me there is a serious place for a moderately decent editor that comes free with the Python disttribution, knows *about* Python, and uses Tkinter (i.e., is maximally portable). Whilst there might be *better* IDEs (in various senses of the word - heck, I use XEmacs for "normal" work, does that count?), there is *great* utility in having a reasonable editor that undestands Python up and running as soon as one has Python up and running (e.g., on Windows). After all, the alternative may well be Wordpad/Notepad. Other IDEs involve other work (to set up), or even money. And for some of us, each program coming in has to be paper-justified, so it may well not be worth the effort anyway, even for free code. If it helps, I'm satisfied with having an editor that understands Python layout, and provides some debugging and class browsing support - if that isn't a "proper" IDE I don't care (and I think I'm a moderately serious programmer - it's been what I get paid for for a while now). What do I actually want? Well, given Guido and co aren't going to do much with IDLE in the future, I'd vote to at least keep it around, and mention it as existing, and I'd hope that it might grow slowly via sourceforge. Just don't underestimate the demand for it. Tibs -- Tony J Ibbs (Tibs) http://www.tibsnjoan.co.uk/ "How fleeting are all human passions compared with the massive continuity of ducks." - Dorothy L. Sayers, "Gaudy Night" My views! Mine! Mine! (Unless Laser-Scan ask nicely to borrow them.) _______________________________________________ IDLE-dev mailing list IDLE-dev@python.org http://mail.python.org/mailman/listinfo/idle-dev From pobrien@orbtech.com Wed Jun 20 16:55:12 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 10:55:12 -0500 Subject: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: Message-ID: I can't give a whole lot of feedback except to say that I'd hate to see IDLE abandoned. Maybe there needs to be an effort to get more people involved in its upkeep. I'm copying this reply to the Edu and Tutor lists, because IDLE comes up in conversations over there quite a bit. I think there might be enough interest to motivate some folks. We certainly had things going when we figured out how to get Python to respond to "help" in interactive sessions. Maybe we could come up with a way to keep development of IDLE moving along without the entire burden falling on Guido. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: idle-dev-admin@python.org [mailto:idle-dev-admin@python.org]On Behalf Of Wesley Chun Sent: Monday, June 18, 2001 7:11 PM To: idle-dev@python.org Subject: [Idle-dev] IDLE's save-before-run requirement the subject of this message is basically to get some feedback on having to save a script within IDLE before running it. when i'm making a good number of small changes to my file, doing separate sets of keystrokes started to get old, so i hacked together a small patch that allows you to "save-n-run." i thought i'd get Guido's opinion b4submitting a PEP. he suggested i also get some more comments from here. below is basically what i proposed and his response. please direct any comments to me (and/or the group). thanks! -wesley > > b4 i waste people's time by filing a PEP on IDLE, > > have you had any comments regarding having to save > > a file before being able to run it? i find myself > > having to do multiple sets of keystrokes every time > > i make a small edit, so i just hacked up a new key > > binding that does a save-n-run (Shift-F5). i fi- > > gure, if it's not a good idea, at least it would be > > a good exercise in the Tkinter chapter! :-) > > > > any thoughts? anyway, here's a quick 1-line diff: > > > > ScriptBinding.py: > > > > 16a17,19 > > > - Save and Run module (Shift-F5) does the same but saves *and* > > > executes the module's code in the __main__ namespace. > > > > > 41a45 > > > '<>': [''], > > 48a53 > > > ('Save & Run script', '<>'), > > 150a156,166 > > > def save_and_run_script_event(self, event): > > > if not self.editwin.get_saved(): > > > name = (self.editwin.short_title() or > > > self.editwin.long_title() or > > > "Untitled") > > > if name == 'Untitled': > > > self.editwin.io.save_as(event) > > > else: > > > self.editwin.io.save(event) > > > self.run_script_event(event) > > Nice patch. > > The problem is that IDLE development has virtually come to a halt -- I > just can't find the time to work on it, and there are other good > development environments available. I have some ideas for reworking > the whole save/run machinery, but no code; and I have working code > that runs the program in a subprocess, but there's a security issue > that makes me hesitant to check it in... > > I wouldn't create a PEP for IDLE -- just discuss your ideas on > idle-sig. Maybe enough people are interested to get me coding > again, or to get someone else to volunteer... > > --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ IDLE-dev mailing list IDLE-dev@python.org http://mail.python.org/mailman/listinfo/idle-dev From delza@alliances.org Wed Jun 20 17:23:21 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 20 Jun 2001 09:23:21 -0700 Subject: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: Message-ID: It seems to me that the VPython folk are the perfect ones to pick up the IDLE development reins. They're actively working on IDLE already, have already implemented the autosave mentioned, as well as some others, and generally seem willing and interested. I'm not sure what the reasoning is for keeping the VPython IDLE off in its own fork and not bringing it in as the official IDLE, since it is being actively developed. --Dethe on 01/6/20 08:57 AM, Patrick K. O'Brien at pobrien@orbtech.com wrote: > I agree with these sentiments and am copying this message to the Edu and > Tutor lists because I think the folks there are a good part of the demand > that you mention below. > > In Wesley Chun's thread on amending IDLE, Guido said: >> The problem is that IDLE development has virtually come to a halt >> -- I just can't find the time to work on it, and there are other >> good development environments available. > > Mats Wichmann then said: >> As Guido knows, I'm certainly interested in IDLE evolving, >> because I find it a very handy learning tool - not just >> for me; like Wesley, I try to teach some Python classes >> from time to time. There may be "better" IDEs but I'm >> not convinced I've seen one yet (for Python). And in my >> particular situation, it HAS to be cross-platform, I'm >> not going to fuss with two different IDEs in a classroom >> situation (students get to choose Win2k or Linux). >> >> But I suspect most "serious programmers" don't really see >> IDLE as being a "serious IDE" - at least I gather this >> impression from comments on c.l.p, esp. from folks who come >> from other (inferior?) languages where an IDE is essential to >> maintaining any sanity, so they've evolved into quite sophisticated >> tools. So I don't know if there'd be a whole lot of overall >> enthusiam for doing a lot to IDLE. > > Whilst I understand all about not having time for things because there > are other things to do (!), I do think it would be a pity if IDLE died > away. It seems to me there is a serious place for a moderately decent > editor that comes free with the Python disttribution, knows *about* > Python, and uses Tkinter (i.e., is maximally portable). > > Whilst there might be *better* IDEs (in various senses of the word - > heck, I use XEmacs for "normal" work, does that count?), there is > *great* utility in having a reasonable editor that undestands Python up > and running as soon as one has Python up and running (e.g., on Windows). > After all, the alternative may well be Wordpad/Notepad. > > Other IDEs involve other work (to set up), or even money. And for some > of us, each program coming in has to be paper-justified, so it may well > not be worth the effort anyway, even for free code. > > If it helps, I'm satisfied with having an editor that understands Python > layout, and provides some debugging and class browsing support - if that > isn't a "proper" IDE I don't care (and I think I'm a moderately serious > programmer - it's been what I get paid for for a while now). > > What do I actually want? Well, given Guido and co aren't going to do > much with IDLE in the future, I'd vote to at least keep it around, and > mention it as existing, and I'd hope that it might grow slowly via > sourceforge. Just don't underestimate the demand for it. > > Tibs -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From pdx4d@teleport.com Wed Jun 20 17:23:44 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 20 Jun 2001 09:23:44 -0700 Subject: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: References: Message-ID: <4.2.0.58.20010620092102.00a39f00@pop3.norton.antivirus> Lots of schools have iMacs and teaching Python would probably involve using IDLE on a Mac. I tried this once. My recollection is I didn't get the color-coding of key words. Can anyone confirm/disconfirm this is a missing feature in Mac version? Perhaps I missed a toggle or something. Kirby Python IDLE user From guido@digicool.com Wed Jun 20 19:06:40 2001 From: guido@digicool.com (Guido van Rossum) Date: Wed, 20 Jun 2001 14:06:40 -0400 Subject: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: Your message of "Wed, 20 Jun 2001 09:23:21 PDT." References: Message-ID: <200106201806.f5KI6eN01330@odiug.digicool.com> > It seems to me that the VPython folk are the perfect ones to pick up the > IDLE development reins. They're actively working on IDLE already, have > already implemented the autosave mentioned, as well as some others, and > generally seem willing and interested. I'm not sure what the reasoning is > for keeping the VPython IDLE off in its own fork and not bringing it in as > the official IDLE, since it is being actively developed. I think it was that I wanted to keep control over the direction in which IDLE was going. The idle-fork SourceForge project was created so they could do their development. But I don't think much happened there, and I haven't really done much except stifle IDLE development, so I'm ready to relax my control. I do have that subprocess-running code which I would like to get worked into IDLE first though... --Guido van Rossum (home page: http://www.python.org/~guido/) From guido@digicool.com Wed Jun 20 19:07:39 2001 From: guido@digicool.com (Guido van Rossum) Date: Wed, 20 Jun 2001 14:07:39 -0400 Subject: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: Your message of "Wed, 20 Jun 2001 09:23:44 PDT." <4.2.0.58.20010620092102.00a39f00@pop3.norton.antivirus> References: <4.2.0.58.20010620092102.00a39f00@pop3.norton.antivirus> Message-ID: <200106201807.f5KI7dL01340@odiug.digicool.com> > Lots of schools have iMacs and teaching Python would probably > involve using IDLE on a Mac. I tried this once. My recollection > is I didn't get the color-coding of key words. Can anyone > confirm/disconfirm this is a missing feature in Mac version? > Perhaps I missed a toggle or something. > > Kirby > Python IDLE user Actually, IDLE on a Mac doesn't really work, because Tcl on a Mac doesn't really work. But MacPython comes with its own IDE, built by Just van Rossum (my brother) using the native Mac toolbox. --Guido van Rossum (home page: http://www.python.org/~guido/) From israel@lith.com Wed Jun 20 19:16:23 2001 From: israel@lith.com (Israel Evans) Date: Wed, 20 Jun 2001 11:16:23 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement Message-ID: I'd just like to say that I love IDLE. It's the only thing I do Python in. It's also the First tool that has made me comfortable with an interactive interpreter. Emacs just frightens me! Vim is Spooky! IDLE is just right! ~Israel~ -----Original Message----- From: Guido van Rossum [mailto:guido@digicool.com] Sent: Wednesday, June 20, 2001 11:08 AM To: Kirby Urner Cc: pobrien@orbtech.com; idle-dev@python.org; Python Edu SIG; Python Tutor Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement > Lots of schools have iMacs and teaching Python would probably > involve using IDLE on a Mac. I tried this once. My recollection > is I didn't get the color-coding of key words. Can anyone > confirm/disconfirm this is a missing feature in Mac version? > Perhaps I missed a toggle or something. > > Kirby > Python IDLE user Actually, IDLE on a Mac doesn't really work, because Tcl on a Mac doesn't really work. But MacPython comes with its own IDE, built by Just van Rossum (my brother) using the native Mac toolbox. --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor From deirdre@deirdre.net Wed Jun 20 19:16:02 2001 From: deirdre@deirdre.net (Deirdre Saoirse Moen) Date: Wed, 20 Jun 2001 11:16:02 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: <200106201807.f5KI7dL01340@odiug.digicool.com> References: <4.2.0.58.20010620092102.00a39f00@pop3.norton.antivirus> <200106201807.f5KI7dL01340@odiug.digicool.com> Message-ID: At 2:07 PM -0400 6/20/01, Guido van Rossum wrote: > > Lots of schools have iMacs and teaching Python would probably >> involve using IDLE on a Mac. I tried this once. My recollection >> is I didn't get the color-coding of key words. Can anyone >> confirm/disconfirm this is a missing feature in Mac version? >> Perhaps I missed a toggle or something. >> >> Kirby >> Python IDLE user > >Actually, IDLE on a Mac doesn't really work, because Tcl on a Mac >doesn't really work. > >But MacPython comes with its own IDE, built by Just van Rossum (my >brother) using the native Mac toolbox. And he's a great help to the Mac Python community. As Russell E Owen also pointed out today on PythonMac: "Christopher Stern wrote a nice BBEdit Python language plugin, available from . That is the only one I know of. Also, just for the record, the Pepper editor has Python syntax coloring built in. I believe Alpha may, as well." I don't know if the BBEdit plugin works on MacOS X; I haven't tried either yet. (I've been using TextEdit for python mostly because I've been to crushed with grad school work to bother downloading and installing stuff) -- _Deirdre Stash-o-Matic: http://weirdre.com http://deirdre.net "Cannot run out of time.... Is infinite time. You... are finite.... Zathrus... is finite. This... is wrong tool!" -- Zathrus From pobrien@orbtech.com Wed Jun 20 19:43:48 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 13:43:48 -0500 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: Message-ID: I agree with that sentiment. While I also use Boa, PythonWin and VPython, I still like IDLE and usually pop it up for interactive use. What I really want is the best of them all. I hate to see all these efforts recreating the wheel. Of course, Boa and PythonWin both use Scintilla, although in slightly different fashions. It might be nice if everyone standardized on Scintilla for the core editing capabilities and spent the rest of their effort on value-added stuff. (Though it wouldn't surprise me if Guido was reluctant to go with that suggestion and I can't say I blame him.) I think everyone would benefit if there was more code sharing and/or standard modules for the standard features that any editor/IDE would have to have. And it would be nice if these were GUI independent so that we could go from Tkinter to wxWindows, for example, if we wanted to. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Israel Evans Sent: Wednesday, June 20, 2001 1:16 PM To: 'Guido van Rossum'; Kirby Urner Cc: pobrien@orbtech.com; idle-dev@python.org; Python Edu SIG; Python Tutor Subject: RE: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement I'd just like to say that I love IDLE. It's the only thing I do Python in. It's also the First tool that has made me comfortable with an interactive interpreter. Emacs just frightens me! Vim is Spooky! IDLE is just right! ~Israel~ From deirdre@deirdre.net Wed Jun 20 19:27:51 2001 From: deirdre@deirdre.net (Deirdre Saoirse Moen) Date: Wed, 20 Jun 2001 11:27:51 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement In-Reply-To: References: Message-ID: At 11:16 AM -0700 6/20/01, Israel Evans wrote: >I'd just like to say that I love IDLE. It's the only thing I do Python in. >It's also the First tool that has made me comfortable with an interactive >interpreter. Emacs just frightens me! Vim is Spooky! IDLE is just right! This really isn't on-topic, but it's one of my favorite stories, so bear with me. :) My husband, Rick Moen, is an avid vi user. Once, when he was entertaining Richard Stallman (for those who may not know, the author of emacs), Rick teased RMS by saying, "I hope you don't mind sitting next to a vi user." RMS responded, "we of the Church of emacs believe that use of vi is not a sin, but rather penance." -- _Deirdre Stash-o-Matic: http://weirdre.com http://deirdre.net "Cannot run out of time.... Is infinite time. You... are finite.... Zathrus... is finite. This... is wrong tool!" -- Zathrus From mats@laplaza.org Wed Jun 20 19:57:25 2001 From: mats@laplaza.org (Mats Wichmann) Date: Wed, 20 Jun 2001 12:57:25 -0600 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: References: Message-ID: <5.1.0.14.1.20010620125502.00ab55c8@laplaza.org> >And it would be >nice if these were GUI independent so that we could go from Tkinter to >wxWindows, for example, if we wanted to. I once asked about something like this. I believe right now IDLE, at least, is not constructed in such a way that it would be easy to rip out the Tkinter dependence so it could be changed to something else, either permanently or for plug-replacable graphics toolkits. I wonder how much work that really would be, and if anybody has any interest in it. Not sure if there's really enough value to be gained to make it worthwhile. Mats From delza@alliances.org Wed Jun 20 21:18:18 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 20 Jun 2001 13:18:18 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: Message-ID: on 01/6/20 11:43 AM, Patrick K. O'Brien at pobrien@orbtech.com wrote: > I agree with that sentiment. While I also use Boa, PythonWin and VPython, I > still like IDLE and usually pop it up for interactive use. What I really > want is the best of them all. I hate to see all these efforts recreating the > wheel. Of course, Boa and PythonWin both use Scintilla, although in slightly > different fashions. And as far as I know, Scintilla hasn't been ported to the Mac, and possibly other python-enabled platforms. > It might be nice if everyone standardized on Scintilla > for the core editing capabilities and spent the rest of their effort on > value-added stuff. (Though it wouldn't surprise me if Guido was reluctant to > go with that suggestion and I can't say I blame him.) I think everyone would > benefit if there was more code sharing and/or standard modules for the > standard features that any editor/IDE would have to have. And it would be > nice if these were GUI independent so that we could go from Tkinter to > wxWindows, for example, if we wanted to. I think that's the goal of Parrot [1], although I'd prefer to see an XML-based language for GUI construction with engines for various languages/platforms/toolkits. But that just isn't going to happen anytime soon (although the UIML[2] and XForms[3] projects are working in that direction). Since every language and platform seems to be developing ways to encode their GUI resources in XML, and since the capabilities of GUI toolkits seem to be approaching a useful common subset, maybe there's hope someday. --Dethe [1] http://www.vision25.demon.co.uk/oss/parrot/intro.html [2] http://www.uiml.org/ [3] http://www.w3.org/MarkUp/Forms/ > > --- > Patrick K. O'Brien > Orbtech > "I am, therefore I think." > > -----Original Message----- > From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of > Israel Evans > Sent: Wednesday, June 20, 2001 1:16 PM > To: 'Guido van Rossum'; Kirby Urner > Cc: pobrien@orbtech.com; idle-dev@python.org; Python Edu SIG; Python Tutor > Subject: RE: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run > requirement > > I'd just like to say that I love IDLE. It's the only thing I do Python in. > It's also the First tool that has made me comfortable with an interactive > interpreter. Emacs just frightens me! Vim is Spooky! IDLE is just right! > > ~Israel~ > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From delza@alliances.org Wed Jun 20 21:20:04 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 20 Jun 2001 13:20:04 -0700 Subject: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: <200106201806.f5KI6eN01330@odiug.digicool.com> Message-ID: That's great news! Are the VPython folks listening? --Dethe on 01/6/20 11:06 AM, Guido van Rossum at guido@digicool.com wrote: >> It seems to me that the VPython folk are the perfect ones to pick up the >> IDLE development reins. They're actively working on IDLE already, have >> already implemented the autosave mentioned, as well as some others, and >> generally seem willing and interested. I'm not sure what the reasoning is >> for keeping the VPython IDLE off in its own fork and not bringing it in as >> the official IDLE, since it is being actively developed. > > I think it was that I wanted to keep control over the direction in > which IDLE was going. The idle-fork SourceForge project was created > so they could do their development. But I don't think much happened > there, and I haven't really done much except stifle IDLE development, > so I'm ready to relax my control. I do have that subprocess-running > code which I would like to get worked into IDLE first though... > > --Guido van Rossum (home page: http://www.python.org/~guido/) > > -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From Arthur_Siegel@rsmi.com Wed Jun 20 23:17:06 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Wed, 20 Jun 2001 17:17:06 -0500 Subject: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... Message-ID: <007B522B.N22121@rsmi.com> The additional significance of IDLE to me has been that it is a full application developed in and distributed with Python. Serves as a reference point for "standard" Python syntax, style, documentation standards by the guy who should know - and an overall proof of something or other. All of which puts an additional burden on Guido. I thought it brave of him to put it out there. Could be expected he'd run into a lot of gun-slingers challenging him to a Python syntax quickdraw. On the other hand its great to see some movement off center. Some combination of the Guido and VPython IDLEs - where it looks like we're heading - seems to me an ideal soultion. Maybe an excuse to slip VPython into the standard distro. But certainly that's an issue to be left fully to the side at this point. ART Mats Wichmann then said: > As Guido knows, I'm certainly interested in IDLE evolving, > because I find it a very handy learning tool - not just > for me; like Wesley, I try to teach some Python classes > from time to time. There may be "better" IDEs but I'm > not convinced I've seen one yet (for Python). And in my > particular situation, it HAS to be cross-platform, I'm > not going to fuss with two different IDEs in a classroom > situation (students get to choose Win2k or Linux). > From pobrien@orbtech.com Wed Jun 20 22:21:11 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 16:21:11 -0500 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-runrequirement In-Reply-To: Message-ID: Tkinter doesn't run on the Mac either, which means IDLE doesn't run on the Mac (though, as Guido pointed out, there is an alternative). I'm not as bothered by the fact that Scintilla isn't on the Mac as I am by the fact that IDLE is intimately tied to Tkinter. Then again, I wonder how easy it would be to "recreate" the same IDLE functionality with Scintilla. Since Scintilla does so much cool text handling already, what else would have to be added and how hard would it be to extract only the remaining pieces out of IDLE? Wish I knew. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Dethe Elza Sent: Wednesday, June 20, 2001 3:18 PM To: idle-dev@python.org; Python Edu SIG; Python Tutor Subject: Re: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-runrequirement on 01/6/20 11:43 AM, Patrick K. O'Brien at pobrien@orbtech.com wrote: > I agree with that sentiment. While I also use Boa, PythonWin and VPython, I > still like IDLE and usually pop it up for interactive use. What I really > want is the best of them all. I hate to see all these efforts recreating the > wheel. Of course, Boa and PythonWin both use Scintilla, although in slightly > different fashions. And as far as I know, Scintilla hasn't been ported to the Mac, and possibly other python-enabled platforms. --Dethe From pobrien@orbtech.com Wed Jun 20 22:27:21 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 16:27:21 -0500 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: <5.1.0.14.1.20010620125502.00ab55c8@laplaza.org> Message-ID: If we wrapped the necessary bits around Scintilla it might not be too hard. At least we'd be starting with a lot of editor functionality - colorizing, key bindings, code folding, etc. From what I understand Boa and PythonWin both borrowed from IDLE but used Scintilla. I love Boa but it's design goal is not the same as IDLE's. I also like PythonWin, but again, different design goal. So what I would propose is a Scintilla-based (for lack of a better alternative) IDE that is cross-platform (to the extent possible, but at least Win and Linux and, hopefully, Mac), interactive, easy, helpful and part of the standard distribution. I could help manage the process, but I'm not up to the challenge of doing all the code. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Mats Wichmann Sent: Wednesday, June 20, 2001 1:57 PM To: pobrien@orbtech.com; idle-dev@python.org; Python Edu SIG; Python Tutor Subject: RE: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement >And it would be >nice if these were GUI independent so that we could go from Tkinter to >wxWindows, for example, if we wanted to. I once asked about something like this. I believe right now IDLE, at least, is not constructed in such a way that it would be easy to rip out the Tkinter dependence so it could be changed to something else, either permanently or for plug-replacable graphics toolkits. I wonder how much work that really would be, and if anybody has any interest in it. Not sure if there's really enough value to be gained to make it worthwhile. Mats _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig From pobrien@orbtech.com Wed Jun 20 22:34:57 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 16:34:57 -0500 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: Message-ID: Except that the VPython folks have a design goal that is quite tangential to IDLE's. They need a tool to support their visual python modules (which allow the manipulation of 3D objects and should not to be confused with ActiveState's IDE) and the teaching of physics. While I do think their needs should be accomodated, I don't know that they would want to be responsible for IDLE development as a whole. (But I could be wrong.) I've added them to the recipients of this message. We'll see if they respond. (The vpython list has been quiet lately.) --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Dethe Elza Sent: Wednesday, June 20, 2001 3:20 PM To: IDLE Developers List Cc: Python Edu SIG; Python Tutor Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... That's great news! Are the VPython folks listening? --Dethe on 01/6/20 11:06 AM, Guido van Rossum at guido@digicool.com wrote: >> It seems to me that the VPython folk are the perfect ones to pick up the >> IDLE development reins. They're actively working on IDLE already, have >> already implemented the autosave mentioned, as well as some others, and >> generally seem willing and interested. I'm not sure what the reasoning is >> for keeping the VPython IDLE off in its own fork and not bringing it in as >> the official IDLE, since it is being actively developed. > > I think it was that I wanted to keep control over the direction in > which IDLE was going. The idle-fork SourceForge project was created > so they could do their development. But I don't think much happened > there, and I haven't really done much except stifle IDLE development, > so I'm ready to relax my control. I do have that subprocess-running > code which I would like to get worked into IDLE first though... > > --Guido van Rossum (home page: http://www.python.org/~guido/) > > -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor From guido@digicool.com Wed Jun 20 22:44:17 2001 From: guido@digicool.com (Guido van Rossum) Date: Wed, 20 Jun 2001 17:44:17 -0400 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: Your message of "Wed, 20 Jun 2001 16:27:21 CDT." References: Message-ID: <200106202144.f5KLiHa02304@odiug.digicool.com> > So what I would propose is a Scintilla-based (for lack of a > better alternative) IDE that is cross-platform (to the extent possible, but > at least Win and Linux and, hopefully, Mac), interactive, easy, helpful and > part of the standard distribution. I could help manage the process, but I'm > not up to the challenge of doing all the code. IDLE has most of the functionality (not code folding). Why start over when there's probably a person-year of work in IDLE? --Guido van Rossum (home page: http://www.python.org/~guido/) From israel@lith.com Wed Jun 20 22:49:07 2001 From: israel@lith.com (Israel Evans) Date: Wed, 20 Jun 2001 14:49:07 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement Message-ID: What would switching over to using Scintilla accomplish that sticking with IDLE and continuing it's development wouldn't? -----Original Message----- From: Guido van Rossum [mailto:guido@digicool.com] Sent: Wednesday, June 20, 2001 2:44 PM To: pobrien@orbtech.com Cc: Mats Wichmann; idle-dev@python.org; Python Edu SIG; Python Tutor Subject: Re: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement > So what I would propose is a Scintilla-based (for lack of a > better alternative) IDE that is cross-platform (to the extent possible, but > at least Win and Linux and, hopefully, Mac), interactive, easy, helpful and > part of the standard distribution. I could help manage the process, but I'm > not up to the challenge of doing all the code. IDLE has most of the functionality (not code folding). Why start over when there's probably a person-year of work in IDLE? --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor From pobrien@orbtech.com Wed Jun 20 23:36:00 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 17:36:00 -0500 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: <200106202144.f5KLiHa02304@odiug.digicool.com> Message-ID: Maybe it's a really bad idea. My thinking went along these lines - Scintilla seems to be getting a lot of support and other tools (Boa and PythonWin) are using it. Those developers must have thought there was a compelling reason to do so. If we went with Scintilla, that eliminates the whole text editing burden and allows the tool to benefit from enhancements to Scintilla that seem to be coming out at a nice pace. With that eliminated we could concentrate on extracting the other good bits from IDLE and separating them from the GUI so that one or more GUI toolkits could be used in addition to Tkinter. Please understand that I'm just exploring an idea and meant no disrespect. I can appreciate the effort that has gone into IDLE. Maybe my suggestion is the wrong way to go about allowing IDLE development to continue and to accommodate a variety of needs. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Guido van Rossum Sent: Wednesday, June 20, 2001 4:44 PM To: pobrien@orbtech.com Cc: Mats Wichmann; idle-dev@python.org; Python Edu SIG; Python Tutor Subject: Re: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement > So what I would propose is a Scintilla-based (for lack of a > better alternative) IDE that is cross-platform (to the extent possible, but > at least Win and Linux and, hopefully, Mac), interactive, easy, helpful and > part of the standard distribution. I could help manage the process, but I'm > not up to the challenge of doing all the code. IDLE has most of the functionality (not code folding). Why start over when there's probably a person-year of work in IDLE? --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor From pobrien@orbtech.com Wed Jun 20 23:58:03 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 17:58:03 -0500 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: Message-ID: I'm not 100% sure. I just have the impression that IDLE is too closely tied to Tkinter, that Guido doesn't have as much time to devote to IDLE, that Scintilla might remove part of the burden, and that Scintilla has been used successfully by other tools, namely Boa and PythonWin. I just see a lot of duplication of effort with basic editing/interactive functionality that strikes me as a waste of resources. Here are the tools that I use that all have separate code bases though they all borrowed from IDLE. (I don't really want to use this many, but I have to for various reasons.) IDLE Boa Constructor VPython (Visual Python) PythonWin Each of these is annoyingly different in rudimentary ways. For example, each of these has separate keybindings and separate ways of modifying keybindings. They don't all support the same command line options. They don't all honor startup scripts. Not all python programs will run successfully in all of these IDEs. Not all of these IDEs will run on all of the platforms that Python itself will run on. Etc., etc. There are just too darn many unnecessary variations, imho. I have spent way too much time trying to get a productive environment in each of these tools and getting them to all honor keystrokes and startup scripts that I find useful. To me it would be ideal if there were one or more core modules that supported the editing of python files and interactive sessions. Each tool would build on these modules for their own design goals, but the basics would be there for everyone. The fact that all these tools have forked from IDLE or borrowed heavily from IDLE suggests that there was something missing or inadequate in the opinions of these other IDE developers. I'm trying to understand what that missing element was and see if we can establish some basic functionality, some architecture, rather than perpetuate this diversity. I like Python because it has one right way for everything ... except writing and running the actual code. All I am asking is how do we apply the "one right way" attitude to the IDE situation? --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: tutor-admin@python.org [mailto:tutor-admin@python.org]On Behalf Of Israel Evans Sent: Wednesday, June 20, 2001 4:49 PM To: 'Guido van Rossum'; pobrien@orbtech.com Cc: Mats Wichmann; idle-dev@python.org; Python Edu SIG; Python Tutor Subject: RE: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement What would switching over to using Scintilla accomplish that sticking with IDLE and continuing it's development wouldn't? From delza@alliances.org Thu Jun 21 00:13:59 2001 From: delza@alliances.org (Dethe Elza) Date: Wed, 20 Jun 2001 16:13:59 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: Message-ID: on 01/6/20 03:58 PM, Patrick K. O'Brien at pobrien@orbtech.com wrote: > All I am asking is how do we apply the "one right way" attitude to the IDE > situation? I don't have an answer, but it's a damn good question. -- Dethe Elza Chief Mad Scientist Burning Tiger Technologies From bas@andrew.cmu.edu Thu Jun 21 00:29:59 2001 From: bas@andrew.cmu.edu (Bruce Sherwood) Date: Wed, 20 Jun 2001 19:29:59 -0400 Subject: [Visualpython-users] RE: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: Message-ID: <927954124.993065399@HYPERON.REM.CMU.EDU> Concerning VPython and IDLE: At the same time that he created the Visual module, which provides remarkably easy 3D animated graphics for Python (Visual + Python = VPython), David Scherer made major changes to IDLE, including: executes scripts in a separate process for stability excludes system modules from tracebacks usability changes, including reorganized menus autosave on every run, with infinite un-do scrolling output has a header marking the start of each run This has turned out to be an ideal environment for novices (as measured by use by a large number of physics students), and is also an excellent rapid edit-run environment for experts. Alas, there is no active work on this at present, because Scherer is not currently in a situation where he can spend time on this, and we have no one else in the project currently capable of pushing this forward. It is certainly the case that Scherer's version of IDLE is an exceptionally promising candidate to become the "official" IDLE, but unfortunately we are not able to lead the charge right now. Bruce Sherwood P.S. We have just released VPython for Python 2.1 on Windows: http://cil.andrew.cmu.edu/projects/visual This new release installs Scherer's IDLE in Tools/idle_VPython, leaving the standard IDLE in place. Desktop and start-menu icons are added that access the VPython version of IDLE. From kevino@tulane.edu Thu Jun 21 01:48:36 2001 From: kevino@tulane.edu (Kevin Ollivier) Date: Wed, 20 Jun 2001 20:48:36 -0400 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-runrequirement References: Message-ID: <006e01c0f9eb$e7b985e0$6401a8c0@cox.rr.com> Hi everyone, I agree that it is a (ahem!) darn good question. =) And the issue Patrick brought up about the many IDE projects "re-inventing the wheel" is a great one as well. One trend I see with open source development is that there are generally many projects being built to solve the same problem, but doing so in slightly different ways. So there is no doubt that there is a lot of 'duplicate' code being written out there, and I feel the various IDE developers out there should really work out some common standards. Of course the issue with open source projects at least is that most of them are built "to scratch an itch", so to speak, so the programmer is focused on meeting his/her needs and issues like compatibility are not often addressed. With regards to IDLE, if I may make a suggestion, I think before we decide on how IDLE is to get where it is going, we should first decide on where it is going. What features should IDLE have? What is the "vision" for IDLE? Will it become a power-IDE with features galore attempting to replace the IDEs out there, or stay clean and simple, like Python itself? Should it be Win/Mac/Linux compatible in one package, or is it OK that the Mac implementation is different? And to pose a question that was brought up on the Edu-sig list last weekend: Should there be "teaching" features built into IDLE to help beginners learn the language? (i.e. IDLE, in "training mode", would pose programming problems and point out mistakes) More importantly, who's going do do all this work?? =) As a stray thought, how easy would it be to have some of these features added "dynamically"? In other words, make features like the color coding and code-folding, or even interactive training, into modules that could be imported by the user. That sort of thing. I think Patrick touched upon this in his earlier message. How much work would this be? Or has this sort of thing already been done? My two cents? I think it would be really cool to advance IDLE to have a built-in "training mode" so that everything you need to get up and running with Python comes "in the box". In a way, the CP4E and IDLE projects could become one and the same! (OK, so maybe this is just a dream, but it's a nice one!) Making a Win/Mac/Linux version seems like a good idea, but I think it depends on how much work it is, or realistically how much work will be put into future versions. The features of the editor itself don't seem to bad too me personally. After playing with a lot of "full-featured" IDEs, I settled with a text editor. (Embarrassingly enough, I did not realize that IDLE was also a script editor - I thought it was only a interpreter!) I found the other IDEs to be big and bulky, and the bigger they were, the more bugs and stability problems they had. Of course, I'm on Windows too, so there are other factors there... =) What do others think? I hope I've not gotten on a soapbox and babbled here. I do have a tendency to do that on occasion... I'm actually new to all this open-source, mailing list stuff so if I'm breaking etiquette rules or something feel free to tell me! ^_^; Thanks for listening! Kevin Ollivier ----- Original Message ----- From: "Dethe Elza" To: ; "Python Edu SIG" ; "Python Tutor" Sent: Wednesday, June 20, 2001 7:13 PM Subject: Re: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-runrequirement > on 01/6/20 03:58 PM, Patrick K. O'Brien at pobrien@orbtech.com wrote: > > > All I am asking is how do we apply the "one right way" attitude to the IDE > > situation? > > I don't have an answer, but it's a damn good question. > > -- > > Dethe Elza > Chief Mad Scientist > Burning Tiger Technologies > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > From pobrien@orbtech.com Thu Jun 21 02:49:46 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Wed, 20 Jun 2001 20:49:46 -0500 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-runrequirement In-Reply-To: <006e01c0f9eb$e7b985e0$6401a8c0@cox.rr.com> Message-ID: Well said. I agree with all your suggestions and opinions, especially on getting agreement on where we are going. I probably jumped the gun a bit by suggesting a direction that might not be where everyone else wants to go. Your take on the situation is much appreciated. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: idle-dev-admin@python.org [mailto:idle-dev-admin@python.org]On Behalf Of Kevin Ollivier Sent: Wednesday, June 20, 2001 7:49 PM To: idle-dev@python.org; Python Edu SIG; Python Tutor Subject: Re: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-runrequirement Hi everyone, I agree that it is a (ahem!) darn good question. =) And the issue Patrick brought up about the many IDE projects "re-inventing the wheel" is a great one as well. One trend I see with open source development is that there are generally many projects being built to solve the same problem, but doing so in slightly different ways. So there is no doubt that there is a lot of 'duplicate' code being written out there, and I feel the various IDE developers out there should really work out some common standards. Of course the issue with open source projects at least is that most of them are built "to scratch an itch", so to speak, so the programmer is focused on meeting his/her needs and issues like compatibility are not often addressed. With regards to IDLE, if I may make a suggestion, I think before we decide on how IDLE is to get where it is going, we should first decide on where it is going. What features should IDLE have? What is the "vision" for IDLE? Will it become a power-IDE with features galore attempting to replace the IDEs out there, or stay clean and simple, like Python itself? Should it be Win/Mac/Linux compatible in one package, or is it OK that the Mac implementation is different? And to pose a question that was brought up on the Edu-sig list last weekend: Should there be "teaching" features built into IDLE to help beginners learn the language? (i.e. IDLE, in "training mode", would pose programming problems and point out mistakes) More importantly, who's going do do all this work?? =) As a stray thought, how easy would it be to have some of these features added "dynamically"? In other words, make features like the color coding and code-folding, or even interactive training, into modules that could be imported by the user. That sort of thing. I think Patrick touched upon this in his earlier message. How much work would this be? Or has this sort of thing already been done? My two cents? I think it would be really cool to advance IDLE to have a built-in "training mode" so that everything you need to get up and running with Python comes "in the box". In a way, the CP4E and IDLE projects could become one and the same! (OK, so maybe this is just a dream, but it's a nice one!) Making a Win/Mac/Linux version seems like a good idea, but I think it depends on how much work it is, or realistically how much work will be put into future versions. The features of the editor itself don't seem to bad too me personally. After playing with a lot of "full-featured" IDEs, I settled with a text editor. (Embarrassingly enough, I did not realize that IDLE was also a script editor - I thought it was only a interpreter!) I found the other IDEs to be big and bulky, and the bigger they were, the more bugs and stability problems they had. Of course, I'm on Windows too, so there are other factors there... =) What do others think? I hope I've not gotten on a soapbox and babbled here. I do have a tendency to do that on occasion... I'm actually new to all this open-source, mailing list stuff so if I'm breaking etiquette rules or something feel free to tell me! ^_^; Thanks for listening! Kevin Ollivier From pdx4d@teleport.com Thu Jun 21 04:03:10 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 20 Jun 2001 20:03:10 -0700 Subject: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: <200106201807.f5KI7dL01340@odiug.digicool.com> References: <4.2.0.58.20010620092102.00a39f00@pop3.norton.antivirus> Message-ID: <4.2.0.58.20010620200128.00948180@pop3.norton.antivirus> At 02:07 PM 6/20/2001 -0400, Guido van Rossum wrote: >But MacPython comes with its own IDE, built by Just van Rossum (my >brother) using the native Mac toolbox. So I presume MacPython has a shell for interactively importing modules and using their contents. Does it auto-color key words in the shell and in the editor I wonder? ala IDLE in Win/Linux? The reason I ask is (a) an interactive shell is very important for learners and (b) iMacs are very popular in many schools. Kirby From pdx4d@teleport.com Thu Jun 21 04:04:52 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 20 Jun 2001 20:04:52 -0700 Subject: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: <007B522B.N22121@rsmi.com> Message-ID: <4.2.0.58.20010620200326.00d02520@pop3.norton.antivirus> > >Maybe an excuse to slip VPython into the standard distro. But >certainly that's an issue to be left fully to the side at this point. > >ART I don't know that you can "slip" VPython in as if it were just another module. The standard library is just modules, but VPython is more. And it includes Numerical Python, so if you include VPython you've got Numerical as well. That's a huge addition! (might as well throw in Zope while we're at it :-D). Kirby From pdx4d@teleport.com Thu Jun 21 04:26:16 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 20 Jun 2001 20:26:16 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-runrequirement In-Reply-To: <006e01c0f9eb$e7b985e0$6401a8c0@cox.rr.com> References: Message-ID: <4.2.0.58.20010620201438.00d1c800@pop3.norton.antivirus> > >What do others think? I hope I've not gotten on a soapbox and babbled here. >I do have a tendency to do that on occasion... I'm actually new to >all this open-source, mailing list stuff so if I'm breaking etiquette rules >or something feel free to tell me! ^_^; > >Thanks for listening! > >Kevin Ollivier I've always thought IDLE was 98% of what's needed. I like these widgets in other IDEs that prompt you with all the possible class methods when you go >>> foo. -- but that's a bell I can live without. When it comes to teaching in the classroom, I think IDLE is a fantastic tool -- as is. Except it doesn't work on the Mac. But maybe MacPython fills that void (wish wish). The major shortcoming of IDLE seems to be that it doesn't do the Tk stuff in a separate thread, so you quit IDLE when you quit the Tkinter program you're working on. So maybe that's what Guido is talking about re running IDLE as a subprocess -- adding that before opening IDLE development to a larger group. As another poster pointed out, a lot of the GUI-development seems to be moving towards XML-based descriptions -- much as HTML is used to spec out interactive forms, only x100 in power. Perhaps GUI development is too much in flux across the board to try hammering down some cross-platform "one right way" at this point. There will be more shake-outs down the road. The main thing I like about IDLE is you can import modules in shell mode and interact with them in a conversational manner. You can have a lot of persistent handles to your objects, which you can play with -- literally. Basically, the user's mind becomes main(), the outer loop, and you've got persistence for the duration of the session. This is way different from just using an editor, where you have to have all your ducks in a row up front, before you commit the script to the interpreter. I like the free form scratch pad feel of IDLE work, which makes it feel a lot like an OS. I think of the GUIs as various idioms in the toolbox -- like that Glade stuff for Gnome (with which I have no personal experience as yet). Kirby From pdx4d@teleport.com Thu Jun 21 04:27:44 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 20 Jun 2001 20:27:44 -0700 Subject: [Visualpython-users] RE: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: <927954124.993065399@HYPERON.REM.CMU.EDU> References: Message-ID: <4.2.0.58.20010620202719.00a6df00@pop3.norton.antivirus> > >P.S. We have just released VPython for Python 2.1 on Windows: > > http://cil.andrew.cmu.edu/projects/visual > >This new release installs Scherer's IDLE in Tools/idle_VPython, leaving >the standard IDLE in place. Desktop and start-menu icons are added that >access the VPython version of IDLE. Excellent!! I'm gonna grab mine now. Cheers, Kirby From pdx4d@teleport.com Thu Jun 21 04:36:32 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 20 Jun 2001 20:36:32 -0700 Subject: [Visualpython-users] RE: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please not so... In-Reply-To: <4.2.0.58.20010620202719.00a6df00@pop3.norton.antivirus> References: <927954124.993065399@HYPERON.REM.CMU.EDU> Message-ID: <4.2.0.58.20010620203505.00cffce0@pop3.norton.antivirus> At 08:27 PM 6/20/2001 -0700, Kirby Urner wrote: >>P.S. We have just released VPython for Python 2.1 on Windows: >> >> http://cil.andrew.cmu.edu/projects/visual >> >>This new release installs Scherer's IDLE in Tools/idle_VPython, leaving >>the standard IDLE in place. Desktop and start-menu icons are added that >>access the VPython version of IDLE. > > >Excellent!! > >I'm gonna grab mine now. > >Cheers, > >Kirby Took only seconds to grab and install. Works like a charm. Arthur, your PyGeo package is running way smoother now that I have an official VPython 2.1. Pascal3d is trouble free -- was something of a mess earlier. This is great! Kirby From pdx4d@teleport.com Thu Jun 21 05:06:12 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Wed, 20 Jun 2001 21:06:12 -0700 Subject: [Edu-sig] poly module from older Python? In-Reply-To: <4.2.0.58.20010620203505.00cffce0@pop3.norton.antivirus> References: <4.2.0.58.20010620202719.00a6df00@pop3.norton.antivirus> <927954124.993065399@HYPERON.REM.CMU.EDU> Message-ID: <4.2.0.58.20010620204941.00bb2790@pop3.norton.antivirus> Question: in Python 1.5.2 I see there was a module: poly -- Polynomials. [1] Part of the standard library. Wondering what happened to it, is there an easy way to get a copy short of downloading the whole of old Python? I'm looking for a way to generate roots of a poly. I found Laguerre's method in Haskell [2]. Maybe there's something similar in Python -- I'll search some more (it's not that I haven't been looking...). Kirby [1] http://starship.python.net/quick-ref1_52.html [2] http://www.numeric-quest.com/haskell/Roots.html From alan.gauld@bt.com Thu Jun 21 12:43:31 2001 From: alan.gauld@bt.com (alan.gauld@bt.com) Date: Thu, 21 Jun 2001 12:43:31 +0100 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB20751D846@mbtlipnt02.btlabs.bt.co.uk> > What would switching over to using Scintilla accomplish that > sticking with IDLE and continuing it's development wouldn't? In a word "Reuse". That means one editor to maintain for most of the Python IDEs. Add a feature to Scintilla and its pretty trivial for all the IDEs to pick up the new feature without having to reimplemnent it from scratch. Effort gets concentrated on the value add bits rather than the nitty gritty of text editing. At least that's the theory... In practice writing reusable solutions gets exponentially harder with the number of clients. Thus trying to please multiple consumers might just wind up stifleing the development of Scintilla! Personally my favourite approach to IDEs is that taken by the old HP Unix product - provide a configurable framework and let the user select their own editor/compiler/interpreter/debugger etc. The downside of this is that it restricts how much integration you can really have to how well integrated the selected tools are. GNOME etc should make this approach more viable long term. Alan G From guido@digicool.com Thu Jun 21 13:40:35 2001 From: guido@digicool.com (Guido van Rossum) Date: Thu, 21 Jun 2001 08:40:35 -0400 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement In-Reply-To: Your message of "Thu, 21 Jun 2001 12:43:31 BST." <5104D4DBC598D211B5FE0000F8FE7EB20751D846@mbtlipnt02.btlabs.bt.co.uk> References: <5104D4DBC598D211B5FE0000F8FE7EB20751D846@mbtlipnt02.btlabs.bt.co.uk> Message-ID: <200106211240.IAA30865@cj20424-a.reston1.va.home.com> > > What would switching over to using Scintilla accomplish that > > sticking with IDLE and continuing it's development wouldn't? > > In a word "Reuse". That means one editor to maintain for most > of the Python IDEs. Add a feature to Scintilla and its pretty > trivial for all the IDEs to pick up the new feature without > having to reimplemnent it from scratch. Effort gets concentrated > on the value add bits rather than the nitty gritty of text editing. But IDLE has a bunch of requirements that I don't think Scintilla can provide. IDLE has really two editing modes: the regular module/file editor, and the "Python Shell". IDLE's most redeeming feature, IMO, is the Python Shell. Compare editing an interactive session in PythonWin's console window with IDLE's Python Shell. IMO again, IDLE is infinitely better, because it uses the exact same editing features as the module/file editor, meaning you get proper syntax coloring, automatic indentation, call tips, magic expansion; and on top of that you get per-line syntax checking, whole-command editing, and history recall. In PythonWin's much more primitive console, it's very easy to mess up the input or the output or confuse the auto-indenter. (I'm an instant gratification person, so Python's interactive mode is very important to me.) I could be wrong about Scintilla not supporting this, but if it did, why would PythonWin not use it for *its* console? --Guido van Rossum (home page: http://www.python.org/~guido/) From pobrien@orbtech.com Thu Jun 21 16:16:33 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Thu, 21 Jun 2001 10:16:33 -0500 Subject: [Edu-sig] Python Shell - was: RE: IDLE's save-before-run r equirement In-Reply-To: <200106211240.IAA30865@cj20424-a.reston1.va.home.com> Message-ID: Thank you, Guido, for bearing with me on this whole issue. I think we are getting to the heart of the matter. Because I, too, am an instant gratification person. So let's just talk about the Python Shell (interactive) capabilities as they exist in the various IDEs. I will attempt to explain my take on this situation, what bothers me, and what I'd like to see happen. The four tools under discussion. IDLE, Boa, PythonWin and VPython all have a Python Shell capability. But they all vary in their support of keybindings, coloring, indenting, etc. When someone uses all of these tools and makes use of each Shell, they have to keep in mind all the variations that exist. This is counter-productive and takes away from what should be "instant gratification at all times." I would rather have a common feature set within all Shells, even if it meant giving up features, rather than have the variations that exist now. I would like to see the Python Shell exist as some kind of plug-in or shared code base that all the IDEs could use so that the Python Shell was uniform in all tools on all platforms. I think this fits the Python philosophy and would make life a lot easier for beginners as well as experts. It would also make the Shell available for new, special-case tools that have been discussed, such as a Python Tutor or Python Trivial Pursuit game, where the variations would be solely within the value-add portions and not the fundamental Shell capability (and without creating yet more forks). Here are some specific examples of the variations that bother me (Please don't anyone take offense at these comparisons. I believe they are all objective, demonstrable differences and not just my opinion, though I am clearly opinionated. And if I'm wrong about any of this please let me know.): PYTHONSTARTUP: IDLE and VPython support it with the -s command line switch. Boa will have this feature in the next release (because I asked for it). PythonWin has no support whatsoever for PYTHONSTARTUP to my knowledge. Home key: Type a line of code at the shell prompt (>>>) and then hit the Home key. PythonWin puts the cursor in front of your code (very nice). IDLE and VPython put the cursor in front of the prompt and then beep when you try to continue typing (yuck). Boa puts the cursor in front of the prompt and lets you type over the prompt. When you hit enter it truncates the first four characters from what you typed and tries to execute that (big yuck). I use this feature a lot in PythonWin when I'm copying previous lines down and want to get to the beginning of the line to add more code, like assigning to a variable or some such. When I switch to one of the other tools I have to do Home, Right, Right, Right, Right - way too many keystrokes. Command history: IDLE and VPython have Alt-P (previous) and Alt-N (next), which is very nice. PythonWin has a way to add these bindings, but by default has Ctrl-Up and Ctrl-Down (just to be different?). I don't know how to add the PythonWin bindings to IDLE or VPython. Boa has no command history. Call tips: PythonWin has the best as far as showing what is in a module. IDLE/VPython have the best as far as showing function parameters and docstrings. Boa is way behind. Win32All: PythonWin is the only tool that can deal with the win extensions, like dde or com. This is a major pain. There are times when I'd love to use IDLE but since I'm developing a Windows app that requires DDE I can only use PythonWin. (And I don't really understand why this is but it definitely irritates me to no end.) I'm sure there are other differences, but these are good enough to get my point across. So I will finish with a question - What, if anything, can be done about this situation, or am I barking up the wrong tree? --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: guido@cj20424-a.reston1.va.home.com [mailto:guido@cj20424-a.reston1.va.home.com]On Behalf Of Guido van Rossum Sent: Thursday, June 21, 2001 7:41 AM To: alan.gauld@bt.com Cc: israel@lith.com; pobrien@orbtech.com; mats@laplaza.org; idle-dev@python.org; Edu-sig@python.org; tutor@python.org Subject: Re: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement > > What would switching over to using Scintilla accomplish that > > sticking with IDLE and continuing it's development wouldn't? > > In a word "Reuse". That means one editor to maintain for most > of the Python IDEs. Add a feature to Scintilla and its pretty > trivial for all the IDEs to pick up the new feature without > having to reimplemnent it from scratch. Effort gets concentrated > on the value add bits rather than the nitty gritty of text editing. But IDLE has a bunch of requirements that I don't think Scintilla can provide. IDLE has really two editing modes: the regular module/file editor, and the "Python Shell". IDLE's most redeeming feature, IMO, is the Python Shell. Compare editing an interactive session in PythonWin's console window with IDLE's Python Shell. IMO again, IDLE is infinitely better, because it uses the exact same editing features as the module/file editor, meaning you get proper syntax coloring, automatic indentation, call tips, magic expansion; and on top of that you get per-line syntax checking, whole-command editing, and history recall. In PythonWin's much more primitive console, it's very easy to mess up the input or the output or confuse the auto-indenter. (I'm an instant gratification person, so Python's interactive mode is very important to me.) I could be wrong about Scintilla not supporting this, but if it did, why would PythonWin not use it for *its* console? --Guido van Rossum (home page: http://www.python.org/~guido/) From Arthur_Siegel@rsmi.com Thu Jun 21 17:11:39 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Thu, 21 Jun 2001 11:11:39 -0500 Subject: [Edu-sig] RE: [Idle-dev] IDLE "deemphasised"? Please notso... Message-ID: <007B9CEC.N22121@rsmi.com> > >Maybe an excuse to slip VPython into the standard distro. But >certainly that's an issue to be left fully to the side at this point. > >ART >I don't know that you can "slip" VPython in as if it were just >another module. The standard library is just modules, but >VPython is more. And it includes Numerical Python, so if you >include VPython you've got Numerical as well. That's a huge >addition! (might as well throw in Zope while we're at it :-D). >Kirby Yeah - keep conveniently forgetting the Numerical issue. Now that folks are doing an Educational Resource distro (which I think is a great idea) - the issue pretty much goes away, as long as those of us interested try to help publicize its availability. Maybe the only issue that remains down the road is how pre-configured an Educational distro could or should be. ART From pdx4d@teleport.com Thu Jun 21 16:44:42 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 21 Jun 2001 08:44:42 -0700 Subject: [Edu-sig] Python Shell - was: RE: IDLE's save-before-run r equirement In-Reply-To: References: <200106211240.IAA30865@cj20424-a.reston1.va.home.com> Message-ID: <4.2.0.58.20010621084319.00bc1a50@pop3.norton.antivirus> > >The four tools under discussion. IDLE, Boa, PythonWin and VPython Should VPython really be included here? When I ask for shell mode in VPython, I get IDLE 0.5. VPython is a variant on IDLE is all, not a whole other IDE. Kirby From kbk@shore.net Thu Jun 21 16:57:54 2001 From: kbk@shore.net (Kurt B. Kaiser) Date: 21 Jun 2001 11:57:54 -0400 Subject: [Tutor] [Edu-sig] [Idle-dev] IDLE's save-before-run requirement In-Reply-To: <200106211240.IAA30865@cj20424-a.reston1.va.home.com> References: <5104D4DBC598D211B5FE0000F8FE7EB20751D846@mbtlipnt02.btlabs.bt.co.uk> <200106211240.IAA30865@cj20424-a.reston1.va.home.com> Message-ID: Guido van Rossum writes: > But IDLE has a bunch of requirements that I don't think Scintilla can > provide. IDLE has really two editing modes: the regular module/file > editor, and the "Python Shell". IDLE's most redeeming feature, IMO, > is the Python Shell. Compare editing an interactive session in > PythonWin's console window with IDLE's Python Shell. IMO again, IDLE > is infinitely better, because it uses the exact same editing features > as the module/file editor, meaning you get proper syntax coloring, > automatic indentation, call tips, magic expansion; and on top of that > you get per-line syntax checking, whole-command editing, and history > recall. In PythonWin's much more primitive console, it's very easy to > mess up the input or the output or confuse the auto-indenter. > > (I'm an instant gratification person, so Python's interactive mode is > very important to me.) An update of a post to idle-dev, made a couple of days ago: IDLE is a very useful IDE for Python which has a unique set of features compared to other solutions: 1. Open souce 2. Under ultimate control of GvR. 3. Portable via Tkinter. 4. Very usable by relatively inexperienced people. 5. Has a Python debugger. 6. Understands Python syntax and environment. 7. Provides an extended example of Python programming. 8. Distributed with most versions (no Mac because of current Tk limitations) of Python at very reasonable cost, so available to first time, casual, or resource limited users. 9. Interactive shell has same features as module editor, e.g. colorizing IMHO IDLE should remain at roughly the (apparent) level of complexity it's at (or less?) to avoid reducing its usability for beginning/intermediate programmers. There are some things which can be done to further improve usability and reliability, IMHO, like running the target code in a separate process. When people involved with Scheme, Forth, or Eiffel are looking for projects, they tend to re-implement the language. Thank heavens that's not a major factor with Python, thanks to GvR's leadership. But Pythonistas are clearly attracted to implementing IDEs! I can't see any reason why IDLE development should get tied in knots trying for compatibility with other IDEs. That kind of thing can paralyze you! The plan last August, met with enthusiam at the time, was to continue to develop IDLE on a separate fork to avoid the bottlenecks of new feature patch review on the Python CVS. The hope was to merge back into the main branch in the future. If that is to happen, we need to stay close to Guido's vision for IDLE. When it comes to IDEs, there is more than one way to do it, but Guido has shown us his way, and I'd vote for continuing along those lines. With open source software, it appears to be extremely difficult to specify a project via group interaction. As just one example, take a look at LispOS (archived at lists.tunes.org/archives/lispos). A couple of dozen people argued specs for nearly two years without any progress. (Then a student at Utah implemented in less than 10 hours a first cut at essentially what the LispOS project was attempting and the project shut down.) It appears that an initial implementation is necessary, which can then be enhanced. Python does it by formal PEP, GvR is suggesting a more informal approach for IDLE: simple discussion on the idle-dev list. IMHO, that will work for incremental change. But as with PEPs, if the group response is favorable, the proposer is still responsible for coding up a patch for evaluation. Regards, KBK From pobrien@orbtech.com Thu Jun 21 16:57:33 2001 From: pobrien@orbtech.com (Patrick K. O'Brien) Date: Thu, 21 Jun 2001 10:57:33 -0500 Subject: [Edu-sig] Python Shell - was: RE: IDLE's save-before-run r equirement In-Reply-To: <4.2.0.58.20010621084319.00bc1a50@pop3.norton.antivirus> Message-ID: Well, the current IDLE is 0.8. So any difference in the Shell capability between 0.5 and 0.8 are going to show up. And if VPython remains at 0.5 this will become more of an issue over time. And if the Edu sig decides to do a IDLE Tutorial fork then we are just making things worse, imo. I just can't help feeling that these IDLE variants are not a very good thing because they are complete forks and not just add-ons or plug-ins. On the other hand, you are correct that the differences right now between the IDLE and VPython shells is minor or possibly even nonexistent. --- Patrick K. O'Brien Orbtech "I am, therefore I think." -----Original Message----- From: Kirby Urner [mailto:pdx4d@teleport.com] Sent: Thursday, June 21, 2001 10:45 AM To: pobrien@orbtech.com Cc: idle-dev@python.org; Edu-sig@python.org Subject: Re: [Edu-sig] Python Shell - was: RE: IDLE's save-before-run r equirement > >The four tools under discussion. IDLE, Boa, PythonWin and VPython Should VPython really be included here? When I ask for shell mode in VPython, I get IDLE 0.5. VPython is a variant on IDLE is all, not a whole other IDE. Kirby From pdx4d@teleport.com Thu Jun 21 17:40:20 2001 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 21 Jun 2001 09:40:20 -0700 Subject: [Edu-sig] Python Shell - was: RE: IDLE's save-before-run r equirement In-Reply-To: References: <4.2.0.58.20010621084319.00bc1a50@pop3.norton.antivirus> Message-ID: <4.2.0.58.20010621091203.00cee190@pop3.norton.antivirus> At 10:57 AM 6/21/2001 -0500, Patrick K. O'Brien wrote: >Well, the current IDLE is 0.8. So any difference in the Shell >capability between 0.5 and 0.8 are going to show up. Absolutely. But we're just comparing IDLE with itself -- it's not a whole other IDE/shell with VPython, like Pythonwin, Boa or whatever. I think ideally the standard IDLE will run user programs in a different thread (what VPython's version does) and at that point VPython might be able to stop doing a whole separate IDLE. That would seem an appropriate division of labor to me (let the VPython team get out of the IDE business -- what a recent post said was happening anyway, owing to time constraints). It was just extra work for them, to have to go to the trouble of doing a separate version of IDLE. I agree with Kurt B. Kaiser: IDLE is great IDE to include in the standard distro and there should *not* be some attempt to rip out its guts in favor of some Scintilla-based thing or whatever. It's too far along, and works too well, to be overhauled in such a fundamental way. Tweek the key bindings and some other things maybe. Improve it incrementally. But don't overhaul from the ground up. Too bad for Mac users that Tk is broken on that platform. Maybe this will change with the newer UNIX-based OS? I think at the heart of the issue is that Python, as a language, is not GUI-centric, i.e. there's not GUI built in. What you have are wrapper/APIs around other languages for your GUI frames and widgets, be that GNOME, Tk or Microsoft Foundation Classes (Windows widgets). In contrast, Java has its own native cross-platform AWT/Swing classes, so it makes sense to write a Java IDE in pure Java. The Java language isn't wrapping around something else (yes, there are peer classes pairing the Java to platform-specific implementations -- but this isn't the same thing (we're still 'thinking in Java' all the way down to button size and color)). So when we talk Python IDE, we're talking Python + Something, and there's no one other language that Python is "best" designed to work with. Because Python is ideally suited as a glue language, which means, by definition, it gets along pretty well with a lot of others. So the "one way to do it" concept is coming up against the "versatile glue language" concept, and I think in the case of IDEs, it's the versatility that wins. There's no reason to have just one IDE (certainly that's not the case in Java world either, or many other worlds -- any number (and they don't have shell mode because Java, like C, like Pascal, is not interactive). However, it is arguable that there should be one IDE that ships standard with Python under the same license agreement. IDLE is currently that IDE, and I think should continue in that role. As for everyone standardizing on the same "right" IDE for their own development work: it ain't never going to happen, nor should it. IDLE is great for learning, has a bright future in the classroom (where Python is catching on). But it doesn't need to be "the" IDE, even if it's the one that ships as the default, as part of the standard distro (same with Linux GUIs -- KDE, Gnome... there's no "one right interface" there either). It's only in the imperial paradigm that we standardize at this level (closer to the Microsoft model). Kirby From alan.gauld@bt.com Thu Jun 21 17:33:22 2001 From: alan.gauld@bt.com (alan.gauld@bt.com) Date: Thu, 21 Jun 2001 17:33:22 +0100 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB20751D853@mbtlipnt02.btlabs.bt.co.uk> > But IDLE has a bunch of requirements that I don't think Scintilla can > provide. Possibly so, hence my comments about Scintilla being lumbered with an extra customer to appease and reuse being expensive, but... > is the Python Shell. Compare editing an interactive session in > PythonWin's console window with IDLE's Python Shell. I don't see much difference but confess to not using Pythonwin often - usually just for its superior debugger > as the module/file editor, meaning you get > proper syntax coloring, Seems OK to me > automatic indentation, Yes that works > call tips, Yes, > magic expansion; Wassat? > you get per-line syntax checking, Not sure how that differs from PW > whole-command editing, and And again wassat? > history Yes, got that too. > recall. In PythonWin's much more primitive console, it's very easy to > mess up the input or the output or confuse the auto-indenter. I can't say I've ever done that in eoither IDLE or PW but thats maybe again a reflection on how rarely I use PW... > I could be wrong about Scintilla not supporting this, but if it did, > why would PythonWin not use it for *its* console? I think it does from what I see. It looks identical to a normal edit window to me... Alan G Note I'm on Python V2.0 with winall inbstalled not the ActiveState version in case that makes a difference. From python.tutor@atrixnet.com Thu Jun 21 21:11:48 2001 From: python.tutor@atrixnet.com (Tommy Butler) Date: Thu, 21 Jun 2001 13:11:48 -0700 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run requirement In-Reply-To: <5104D4DBC598D211B5FE0000F8FE7EB20751D853@mbtlipnt02.btlabs.bt.co.uk> Message-ID: >Note I'm on Python V2.0 with winall inbstalled not the ActiveState >version in case that makes a difference. Where can one get a hold of that? I use the ActiveState version, but would opt to use the oss version if one exists and I could find it. -tommy From Arthur_Siegel@rsmi.com Fri Jun 22 00:14:01 2001 From: Arthur_Siegel@rsmi.com (Arthur_Siegel@rsmi.com) Date: Thu, 21 Jun 2001 18:14:01 -0500 Subject: [Edu-sig] re : Python Shell - was: RE: IDLE's save-before-run r equirement Message-ID: <007BDA06.N22121@rsmi.com> >Well, the current IDLE is 0.8. So any difference in the Shell capability >between 0.5 and 0.8 are going to show up. And if VPython remains at 0.5 this >will become more of an issue over time. And if the Edu sig decides to do a >IDLE Tutorial fork then we are just making things worse, imo. I just can't >help feeling that these IDLE variants are not a very good thing because they >are complete forks and not just add-ons or plug-ins. On the other hand, you >are correct that the differences right now between the IDLE and VPython >shells is minor or possibly even nonexistent. I think that one right IDLE should certainly be the goal. As mentioned in the thread a number of times before, the only fundamental issue seems to be the 'single process' in the 'official' IDLE which makes it unusable for something like VPython. VPython bills its IDLE as having a number of "important enhancements" over the standard IDLE. Other than the processs issue , I for one cannot identify what they are, and don't know whether I would agree with their billing as 'important', or even enhancements if I did. We are perhaps at that point into a matter of taste, style and specialization for a specifc use. VPython's IDLE, for example, color syntaxes (I believe) VPython key words - certainly not appropriate for a general purpose IDLE. >From my perspective, anything IDLEish, that can spawn a new process, is a suitable environment for creating and running scripts - VPython or otherwise. The variants of different flavors of IDLE distributed under one name, is the real problem and confusion. Seems to me Gudio in effect owns that name. Guido should decide which code base gets to use that designation, through some mechanism. If there is a ViDLE distributed with VPython with specialized syntax highlighting and other modifications - that's fine. Among the beauties of IDLE is in providing the VPythons a code base for a custom IDE. Played with the concept myself on a much less ambitious scale with PyGeo at one point. But there is no reason I can see *not* to be avoiding the confusion of distributing something different under the same name. We are close to being there. The current VPython puts its IDLE into its own directory, rather than replacing tools/IDLE. Guido sounds like he is close to checking in the code that would make *the* IDLE useable for something like VPython. Maybe then Guido just needs to assert some naming conventions for IDEs derivative of the IDLE code base. And we're home. ART From MarkH@ActiveState.com Fri Jun 22 02:29:56 2001 From: MarkH@ActiveState.com (Mark Hammond) Date: Fri, 22 Jun 2001 11:29:56 +1000 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement In-Reply-To: <200106211240.IAA30865@cj20424-a.reston1.va.home.com> Message-ID: > I could be wrong about Scintilla not supporting this, but if it did, > why would PythonWin not use it for *its* console? Pythonwin does use scintilla for its console. You are correct that it is not integrated with the editor as tightly as IDLE. This is mainly doe to the fact pythonwin uses "... " as a secondary prompt, and also complications with the scintilla lexer. I agree that there would be significant work to get auto-indent and lexing working correctly using scintilla as the console window. As a "meta comment", over 12 months ago I added a feature to Pythonwin so that new IDLE extensions could be used directly by both Pythonwin and IDLE. In that time, not a single extra extension has been added (that I saw) and IDLE changed its extension loading mechanism. So while these things all sound good in theory, the reality is that people need to actually _do_ it rather than speculate about how others could do it. If we had a glut of new extensions being added to one environment and not the other there would be a stronger case - but this simply isn't happening. Witness the IDLE-fork project Guido mentioned - lots of talk, no action :( Replying to Patrick's mail: > What, if anything, can be > done about this situation, or am I barking up the wrong tree? You have 2 choices: you can lobby for the various authors to make these changes themselves, or you can submit patches to the authors. I will let you guess the most effective route :) The commercial products may well do it for "competitive advantage" reasons, or indeed they may _not_ do it for exactly the same reasons! The maintainers of the free software are likely to be lacking any incentive, as their products generally work fine for them, and probably have far more important things they could be doing (either for free, or for their salary) Mark. From tim.one@home.com Fri Jun 22 04:16:10 2001 From: tim.one@home.com (Tim Peters) Date: Thu, 21 Jun 2001 23:16:10 -0400 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement In-Reply-To: Message-ID: Wow -- this has a giant distribution list! I'll play along . [Mark Hammond] > Pythonwin does use scintilla for its console. You are correct that it > is not integrated with the editor as tightly as IDLE. This is mainly > doe to the fact pythonwin uses "... " as a secondary prompt, and also > complications with the scintilla lexer. FWIW, I wish IDLE used "... " too -- switching between a DOS-box Python and IDLE is jarring. In addition, the IDLE shell uses hard tab characters stuck at 8-space indents (the latter is a limitation of the Tk Text widget), while all the other edit windows use no hard tab characters and 4-space indents. So in a *typical* IDLE session (where I've also got a DOS-box Python running), I'm dealing with three distinct code presentations. I can't say it's a physical burden , but somehow or other it is tiring! > I agree that there would be significant work to get auto-indent > and lexing working correctly using scintilla as the console window. Worth shooting for, though: *that* uniformity between shell and edit buffer is very nice to have. > As a "meta comment", over 12 months ago I added a feature to Pythonwin > so that new IDLE extensions could be used directly by both Pythonwin > and IDLE. In that time, not a single extra extension has been added > (that I saw) and IDLE changed its extension loading mechanism. > > So while these things all sound good in theory, the reality is that > people need to actually _do_ it rather than speculate about how others > could do it. I'm not sure, Mark, but you and I may be the only two people in the History of the Universe to actively cooperate on sharing code between two GUI systems (the auto-indent system shared by PythonWin and IDLE). It wasn't that painful, but I recall being utterly unable to get anyone else interested in playing with us at the time. Since then, IDLE has stagnated but remained useful, while you've gone on to fame and riches. See? There's no payback to cooperation . From jprobinson@oxford.gov.uk Fri Jun 22 10:00:40 2001 From: jprobinson@oxford.gov.uk (ROBINSON Julian) Date: Fri, 22 Jun 2001 10:00:40 +0100 Subject: [Tutor] [Edu-sig] [Idle-dev] IDLE's save-before-run requireme nt Message-ID: This is a multi-part message in MIME format. --------------InterScan_NT_MIME_Boundary Content-Type: text/plain > kbk@shore.net wrote > > 4. Very usable by relatively inexperienced people. > > IMHO IDLE should remain at roughly the (apparent) level of complexity it's > at > (or less?) to avoid reducing its usability for beginning/intermediate > programmers. > - As someone who's working through the tutorials IDLE is perfect. I don't need a fancy IDE to get the hang of the language. When I get enough experience to write large programmes then my need for an all singing & dancing IDE will increase, but until then...... - The set-up for IDLE is easy, I managed to do it first time. I downloaded JBuilder and this package took me ages to set up so that I could use it even halfway properly, this has put me off 'getting into' Java. Whereas after about 2 mins, following the clear instructions I was able to start entering Python code and see how the language worked, and have never looked back....... --------------InterScan_NT_MIME_Boundary Content-Type: text/plain; name="InterScan_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="InterScan_Disclaimer.txt" . This email and any files transmitted with it are confidential and intended solely for the use of the individual to whom they are addressed. If you received this email in error please notify the sender by return email or contact Oxford City Council's IS dept. 01865-252111. http://www.oxford.gov.uk . --------------InterScan_NT_MIME_Boundary-- From guido@digicool.com Fri Jun 22 14:31:13 2001 From: guido@digicool.com (Guido van Rossum) Date: Fri, 22 Jun 2001 09:31:13 -0400 Subject: [Tutor] Re: [Edu-sig] RE: [Idle-dev] IDLE's save-before-run r equirement In-Reply-To: Your message of "Thu, 21 Jun 2001 23:16:10 EDT." References: Message-ID: <200106221331.f5MDVEP06120@odiug.digicool.com> > [Mark Hammond] > > Pythonwin does use scintilla for its console. You are correct that it > > is not integrated with the editor as tightly as IDLE. This is mainly > > doe to the fact pythonwin uses "... " as a secondary prompt, and also > > complications with the scintilla lexer. > > FWIW, I wish IDLE used "... " too -- switching between a DOS-box Python and > IDLE is jarring. In addition, the IDLE shell uses hard tab characters stuck > at 8-space indents (the latter is a limitation of the Tk Text widget), while > all the other edit windows use no hard tab characters and 4-space indents. > So in a *typical* IDLE session (where I've also got a DOS-box Python > running), I'm dealing with three distinct code presentations. I can't say > it's a physical burden , but somehow or other it is tiring! Actually, I just downloaded and ran the latest Pythonwin available without downloading ActivePython, and it has roughly the same characteristics as IDLE: in its console window it uses hard tabs at 8 space distances, in its module editing it uses 4 spaces. IDLE uses the same defaults. Regarding the "..." prompt: I happen to hate this, and in Pythonwin it makes copying and pasting multi-line text from the console into a module window a pain (you have to manually remove all the "..."). > > As a "meta comment", over 12 months ago I added a feature to Pythonwin > > so that new IDLE extensions could be used directly by both Pythonwin > > and IDLE. In that time, not a single extra extension has been added > > (that I saw) and IDLE changed its extension loading mechanism. Yes, but the API that extensions have to conform to didn't change. It's just the sad case that in the last 12 months *my* interest in (or at least my ability to work on) IDLE has lapsed, for a variety of reasons, and that may have affected others' interest -- until the recent thread. > > So while these things all sound good in theory, the reality is that > > people need to actually _do_ it rather than speculate about how others > > could do it. > > I'm not sure, Mark, but you and I may be the only two people in the History > of the Universe to actively cooperate on sharing code between two GUI > systems (the auto-indent system shared by PythonWin and IDLE). It wasn't > that painful, but I recall being utterly unable to get anyone else > interested in playing with us at the time. Since then, IDLE has stagnated > but remained useful, while you've gone on to fame and riches. See? There's > no payback to cooperation . :-) --Guido van Rossum (home page: http://www.python.org/~guido/) From csmith@blakeschool.org Sun Jun 24 00:09:06 2001 From: csmith@blakeschool.org (Christopher Smith) Date: Sat, 23 Jun 2001 18:09:06 -0500 Subject: [Edu-sig] Re: [Pythonmac-SIG] Interpreter on Mac In-Reply-To: References: Message-ID: pythonmac-sig@python.org writes regarding the now-available patch that fixes the Mac IDE: >Download it via http://www.cwi.nl/~jack/macpython.html and please let >me know wether it fixes the problem. >>> print "Hello, World! :-)" Hello, World! :-) Thanks, Jack. Two notes, too. 1) I am clearly not running Carbon (thanks for pointing out the obvious, Just): Python 2.1 (#92, Apr 24 2001, 23:59:23) [CW PPC GUSI2 THREADS] on mac 2) This pressing-end-kills-the-interpreter behavior is only partly bad. It only boots you out of the interpreter IFF the cursor is on the last line. If you have moved the cursor off the last line, pressing moves you to the last line (and repeats the >>> prompt or else \n's the line you had been editing). My personal hand-tic work-around is to press the up arrow before pressing the key. Could this be done through the software? Catch the key and preface it with an up-arrow first? On the other hand, if it really is a ctrl-D that is being generated and for universal behavior you want the interpreter to quit at a ctrl-d then this isn't a good work around. Finally, thanks for the help. I've subscribed to tutor, edu-sig, and this group to help me learn the language b/c I am going to be teaching our school's first comp sci course next spring with Python. This is my week of intense preparation before other concerns have to take priority this summer. You've helped me make great returns on the investment. Whoever has put together the Windows package has done a great job, too. I helped my cousin who just graduated from HS get Python set up last night on her machine which runs windows. I was impressed with how out-of-the box it was *with identical documentation* (Language Ref, Tutorial, etc...) built into the archive. This is going to be a big plus when I have students who can set up Python at home under either Mac or Windows. /c ------------------------------------------------------------- Have you ever sung in Latin? The sounds are so nice to sing. Have you ever coded in Python? It's very much the same thing. From ajs@ix.netcom.com Sat Jun 30 23:41:07 2001 From: ajs@ix.netcom.com (Arthur Siegel) Date: Sat, 30 Jun 2001 18:41:07 -0400 Subject: [Edu-sig] OT - Disney Learning - again Message-ID: <000901c101b5$d2630e60$a9e1fea9@carol> If I haven't yet clinched my reputation as a Usenet crank, this should do it. Again, minding my own business - watching the Sunday afternoon golf match. A new ad/announcement for Disney Learning Partnership with a URL ref - www.disneylearning.com To make a long story short, I register to get behind the scenes and there is essentially nothing there. Upcoming "events" listed are only in November and December - I expect 2000, but no way to tell. December 10 - Dr. Alan Kay. Next December, last December? I had already downloaded a Kay presentation. If the guy didn't have Visionary on his business card, you'd have to cart him off. Insanely pretentious presentation about the history of everything - the Gutenberg press, etc all ending in a pay-off of Goofy doing something on a squeak screen. It costs serious money for these TV ads. Little more surfing the site. It was December 10, *1999* - and is an *upcoming* event on the schedule. Probably in fact the one I looked at some time ago. *Today* they spent serious money promoting this hopelessly neglected site. What is the agenda here??????? ART