From james at dis-dot-dat.net Tue Aug 1 00:56:28 2006 From: james at dis-dot-dat.net (james at dis-dot-dat.net) Date: Mon, 31 Jul 2006 23:56:28 +0100 Subject: [Edu-sig] A python teaching success In-Reply-To: <200607312304.41675.ms@cerenity.org> References: <20060731124254.GK12427@fitz.Belkin> <200607312304.41675.ms@cerenity.org> Message-ID: <20060731225628.GN12427@fitz.Belkin> On Mon, 31 Jul, 2006 at 11:04PM +0100, Michael spake thus: > Hi James, > > I'd like to second the request to see what your syllabus looks like. This is > partly because whilst I work in BBC R&D, I'm currently looking to build a > collaboration with Manchester University (I went to university there, and by > chance they're doing work that meshes with my research area), and there's > been questions of Python's accessibility. > > If you're willing to share more details about your course, lesson plan and > notes, I'm sure there's other places that would be really interested... Sorry. I did try, and messed it up. I assumed the list did reply-to munging, stupidly, when it doesn't. So, the parent post got a private reply which I'm copy/pasting here, with some more info. %These first two lectures use the turtle from the interpreter. We %start setting the scene for later ideas, such as functions and loops, %by pointing out the limitations of typing out all of the commands to %draw a spiral, say. \item [Lecture 1] Getting Started. \item [Lecture 2] Python Basics. \item [Lecture 3] Boolean Algebra. \item [Lecture 4] Choice. \item [Lectures 5-6] Repetition: Recursion. %By now, they're drawing koch and dragon curves \item [Lecture 7] Repetition: Iteration. \item [Lecture 8] State. \item [Lectures 9-10] Compound Types. \item [Lecture 11-12] Searching and Sorting. %They have seen functions already, but they were introduced without %fuss, so they never felt threatened by them. Now they hear a lot more \item [Lecture 13-14] Functions and Modules. \item [Lecture 15] Input / Output. \item [Lectures 16-18] Object Oriented Python. \item [Lectures 19-20] Python Extensions. % And by now, they're writing games. Frogger, space invaders, % allsorts. The number of students that have become engrossed with % programming at this point is unheard of at Coventry. Whole clusters % of people appreciating each others' code. %% Plus two extra lectures on language transfer Sorry it's in LaTeX markup, but it made it clear where comments end and lecture topics begin. > Best Regards (and congrats on the review!) Thanks! James > Michael. > > On Monday 31 July 2006 13:42, james at dis-dot-dat.net wrote: > > Hi all. > > > > This last academic year, we used Python for the first time in our > > introductory programming modules. > > > > This is in place of Java (horrible first language, IMNSHO). > > > > It went VERY well. We've just had our external examiner's report > > and I got so excited, I blogged it and then ran here to yell about > > it. > > > > http://blog.dis-dot-dat.net/2006/07/we-officially-rock.html > > > > :) > > > > James > > > > > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig at python.org > > http://mail.python.org/mailman/listinfo/edu-sig > From da.ajoy at gmail.com Tue Aug 1 01:44:38 2006 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Mon, 31 Jul 2006 18:44:38 -0500 Subject: [Edu-sig] (Fwd) S. Papert en SqueakFest '06 Message-ID: <44CE4F96.20803.37288A85@da.ajoy.gmail.com> ------- Forwarded message follows ------- SqueakFest '06 July 19-21, 2006 Columbia College, Chicago Thursday, July 20th 9:00 Keynote Address: Dr. Seymour Papert * mp3 87MB * mp3 Small 21MB * Windows Media 174 MB http://interactive.colum.edu/partners/squeakfest/sfPrelimProgram.aspx Daniel ------- End of forwarded message ------- From kirby.urner at gmail.com Tue Aug 1 01:44:22 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 31 Jul 2006 16:44:22 -0700 Subject: [Edu-sig] A python teaching success In-Reply-To: <20060731225628.GN12427@fitz.Belkin> References: <20060731124254.GK12427@fitz.Belkin> <200607312304.41675.ms@cerenity.org> <20060731225628.GN12427@fitz.Belkin> Message-ID: Only somewhat apropos, I did two semesters with 8th graders (13-14ish) last year. A lot of the details are filed back in this archive, but here's some web based overview: http://www.4dsolutions.net/ocn/winterhaven/ More of the meat: http://www.4dsolutions.net/ocn/winterhaven/section3.html The class was a blast and I've been invited back. I'm also in the Saturday Academy catalog for this fall, teaching Pythonic mathematics. Kirby From da.ajoy at gmail.com Tue Aug 1 02:07:48 2006 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Mon, 31 Jul 2006 19:07:48 -0500 Subject: [Edu-sig] Seymour Papert's address notes Message-ID: <44CE5504.6679.373DC3AF@da.ajoy.gmail.com> From: "Bob Irving" Subject: Re: [Squeakland] squeakfest conclusions Cc: squeakland at squeakland.org I'm sorry to hear that Seymour Papert's address didn't come out so well on video and audio. I took some very sketchy notes of his address and posted them on my blog, Shiftin' Paradigm Blues; the URL is in my sig below. It was truly an inspiring address; I hope you can get some sense of it from my notes. Bob Irving Middle School Technology Facilitator Lancaster Country Day School Lancaster, PA Blog: http://cougar.e-lcds.org/wordpress/ "Change is not death; fear of change is death." From driscollkevin at gmail.com Tue Aug 1 05:18:40 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Mon, 31 Jul 2006 23:18:40 -0400 Subject: [Edu-sig] A python teaching success In-Reply-To: <20060731225628.GN12427@fitz.Belkin> References: <20060731124254.GK12427@fitz.Belkin> <200607312304.41675.ms@cerenity.org> <20060731225628.GN12427@fitz.Belkin> Message-ID: <87a8578e0607312018i1489244br2b5ba49ac9460594@mail.gmail.com> James, Thanks again for sharing your work. I plan to do the same and it is a struggle! It sounds like you are using a Python + Logo setup. Is it PyLogo? Kevin On 7/31/06, james at dis-dot-dat.net wrote: > On Mon, 31 Jul, 2006 at 11:04PM +0100, Michael spake thus: > > Hi James, > > > > I'd like to second the request to see what your syllabus looks like. This is > > partly because whilst I work in BBC R&D, I'm currently looking to build a > > collaboration with Manchester University (I went to university there, and by > > chance they're doing work that meshes with my research area), and there's > > been questions of Python's accessibility. > > > > If you're willing to share more details about your course, lesson plan and > > notes, I'm sure there's other places that would be really interested... > > Sorry. I did try, and messed it up. I assumed the list did reply-to > munging, stupidly, when it doesn't. So, the parent post got a private > reply which I'm copy/pasting here, with some more info. > > > > %These first two lectures use the turtle from the interpreter. We > %start setting the scene for later ideas, such as functions and loops, > %by pointing out the limitations of typing out all of the commands to > %draw a spiral, say. > > \item [Lecture 1] Getting Started. > \item [Lecture 2] Python Basics. > \item [Lecture 3] Boolean Algebra. > \item [Lecture 4] Choice. > \item [Lectures 5-6] Repetition: Recursion. > > %By now, they're drawing koch and dragon curves > > \item [Lecture 7] Repetition: Iteration. > \item [Lecture 8] State. > \item [Lectures 9-10] Compound Types. > \item [Lecture 11-12] Searching and Sorting. > > %They have seen functions already, but they were introduced without > %fuss, so they never felt threatened by them. Now they hear a lot more > > \item [Lecture 13-14] Functions and Modules. > \item [Lecture 15] Input / Output. > \item [Lectures 16-18] Object Oriented Python. > \item [Lectures 19-20] Python Extensions. > > % And by now, they're writing games. Frogger, space invaders, > % allsorts. The number of students that have become engrossed with > % programming at this point is unheard of at Coventry. Whole clusters > % of people appreciating each others' code. > > %% Plus two extra lectures on language transfer > > > Sorry it's in LaTeX markup, but it made it clear where comments end > and lecture topics begin. > > > > Best Regards (and congrats on the review!) > > Thanks! > > James > > > Michael. > > > > On Monday 31 July 2006 13:42, james at dis-dot-dat.net wrote: > > > Hi all. > > > > > > This last academic year, we used Python for the first time in our > > > introductory programming modules. > > > > > > This is in place of Java (horrible first language, IMNSHO). > > > > > > It went VERY well. We've just had our external examiner's report > > > and I got so excited, I blogged it and then ran here to yell about > > > it. > > > > > > http://blog.dis-dot-dat.net/2006/07/we-officially-rock.html > > > > > > :) > > > > > > James > > > > > > > > > _______________________________________________ > > > Edu-sig mailing list > > > Edu-sig at python.org > > > http://mail.python.org/mailman/listinfo/edu-sig > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From scott_list at mischko.com Tue Aug 1 06:27:12 2006 From: scott_list at mischko.com (Scott Chapman) Date: Mon, 31 Jul 2006 21:27:12 -0700 Subject: [Edu-sig] Crunchy name In-Reply-To: <7528bcdd0607251434i4dc7bfd8qc337dc5dccc19867@mail.gmail.com> References: <7528bcdd0607251434i4dc7bfd8qc337dc5dccc19867@mail.gmail.com> Message-ID: <44CED820.5050701@mischko.com> Random Rambles Regarding Renaming Crunchy Frog: PythonOnLine PITB - Python In The Browser (PitBoss?) PythonLiveInTheBrowser PLOL PythonLiveOnLine PRIME PythonReallyIsMightyEducational PRIMO PythonReallyIsMarvellousOnline WebEmbeddedPython PythonEmbeddedInYourBrowser EPyIB EmbedPythonInBrowser EmPy EmbeddablePython or EmbeddedPython PyEmWeb PythonEmbeddedInTheWeb AREP - AndreRoberge'sEmbeddedPython Andre Roberge wrote: > Hi everyone, > > seeing that the name "Crunchy Frog" originated on this list (thanks > Dethe), I thought I should point those interested in a potential name > change to this discussion: > > http://ask.metafilter.com/mefi/42943 > > We now resume our regularly scheduled program. From dblank at brynmawr.edu Tue Aug 1 09:45:15 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Tue, 01 Aug 2006 03:45:15 -0400 Subject: [Edu-sig] Crunchy name In-Reply-To: <44CED820.5050701@mischko.com> References: <7528bcdd0607251434i4dc7bfd8qc337dc5dccc19867@mail.gmail.com> <44CED820.5050701@mischko.com> Message-ID: <1154418316.16234.239.camel@mightymouse.brynmawr.edu> SIAB: "snakes in a browser" Not as snappy as "snakes on a plane", but SOAP was already taken... -Doug On Mon, 2006-07-31 at 21:27 -0700, Scott Chapman wrote: > Random Rambles Regarding Renaming Crunchy Frog: > > PythonOnLine > PITB - Python In The Browser (PitBoss?) > PythonLiveInTheBrowser > PLOL PythonLiveOnLine > PRIME PythonReallyIsMightyEducational > PRIMO PythonReallyIsMarvellousOnline > WebEmbeddedPython > PythonEmbeddedInYourBrowser > EPyIB EmbedPythonInBrowser > EmPy EmbeddablePython or EmbeddedPython > PyEmWeb PythonEmbeddedInTheWeb > AREP - AndreRoberge'sEmbeddedPython > > > Andre Roberge wrote: > > Hi everyone, > > > > seeing that the name "Crunchy Frog" originated on this list (thanks > > Dethe), I thought I should point those interested in a potential name > > change to this discussion: > > > > http://ask.metafilter.com/mefi/42943 > > > > We now resume our regularly scheduled program. > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Douglas S. Blank Computer Science Associate Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From kirby.urner at gmail.com Tue Aug 1 17:41:50 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 1 Aug 2006 08:41:50 -0700 Subject: [Edu-sig] Crunchy name In-Reply-To: <1154418316.16234.239.camel@mightymouse.brynmawr.edu> References: <7528bcdd0607251434i4dc7bfd8qc337dc5dccc19867@mail.gmail.com> <44CED820.5050701@mischko.com> <1154418316.16234.239.camel@mightymouse.brynmawr.edu> Message-ID: ooo, ooo, I know, I know -- how about Crunchy Frog? Kirby On 8/1/06, Douglas S. Blank wrote: > SIAB: "snakes in a browser" > > Not as snappy as "snakes on a plane", but SOAP was already taken... > > -Doug From delza at livingcode.org Tue Aug 1 17:46:01 2006 From: delza at livingcode.org (Dethe Elza) Date: Tue, 01 Aug 2006 08:46:01 -0700 Subject: [Edu-sig] Crunchy name In-Reply-To: <44CED820.5050701@mischko.com> References: <7528bcdd0607251434i4dc7bfd8qc337dc5dccc19867@mail.gmail.com> <44CED820.5050701@mischko.com> Message-ID: <44CF7739.1000101@livingcode.org> Scott got the gears turning again: ThirdRail (like Ruby on Rails, but more powerful %-) Pyzilla (actually, I think that's coming in Firefox soon) WWP (World Wide Python) Web of Snakes PML (Python Markup Language) HTPL (Hypertext Python Language) PyningForTheFjords CPFE (Computer Programming for Everyone, or has that been used already?) Windmill (have to use Quixote web framework for that one) APT (Andre's Python Tutorials) PIP (Python Instruction Pages) OK, I'd better stop now. Regards, --Dethe From delza at livingcode.org Tue Aug 1 18:07:57 2006 From: delza at livingcode.org (Dethe Elza) Date: Tue, 01 Aug 2006 09:07:57 -0700 Subject: [Edu-sig] Crunchy name In-Reply-To: References: <7528bcdd0607251434i4dc7bfd8qc337dc5dccc19867@mail.gmail.com> <44CED820.5050701@mischko.com> <1154418316.16234.239.camel@mightymouse.brynmawr.edu> Message-ID: <44CF7C5D.40702@livingcode.org> kirby urner wrote: > ooo, ooo, I know, I know -- how about Crunchy Frog? %-) +1 --Dethe > > Kirby > > On 8/1/06, Douglas S. Blank wrote: >> SIAB: "snakes in a browser" >> >> Not as snappy as "snakes on a plane", but SOAP was already taken... >> >> -Doug > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From andre.roberge at gmail.com Tue Aug 1 18:33:38 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Tue, 1 Aug 2006 13:33:38 -0300 Subject: [Edu-sig] Crunchy name In-Reply-To: <44CF7739.1000101@livingcode.org> References: <7528bcdd0607251434i4dc7bfd8qc337dc5dccc19867@mail.gmail.com> <44CED820.5050701@mischko.com> <44CF7739.1000101@livingcode.org> Message-ID: <7528bcdd0608010933x77e81f08x823e40da29ab2f02@mail.gmail.com> On 8/1/06, Dethe Elza wrote: > Scott got the gears turning again: > [snip] > CPFE (Computer Programming for Everyone, or has that been used > already?) Hmmm... Crunchy Python for Everyone (CP4E) Lots of great suggestions; keep them coming! Some that will *not* be considered are those with my name in it. While I had the original idea, I must publicly recognise that since Johannes Woolard started working on this project, he has done so much to fully deserve to be considered as an equal contributor. We're working feverishly towards the next release. As a preview of what's to come ... Lots of new documentation and examples added.... Automatic coloring of Python code in body of text (e.g. Python keywords in blue, strings in purple, comments in gray...) with the possibility of displaying line number information. (No support for this kind of thing in the editor ...yet). Improved sound and graphics api, etc.... Stay tuned... :-) Andr? > Windmill (have to use Quixote web framework for that one) > APT (Andre's Python Tutorials) > PIP (Python Instruction Pages) > > OK, I'd better stop now. > > Regards, > > --Dethe > From kirby.urner at gmail.com Wed Aug 2 02:31:32 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 1 Aug 2006 17:31:32 -0700 Subject: [Edu-sig] Excited about Crunchy Frog Message-ID: I'm excited about Crunchy Frog (or whatever Andre chooses to call it), because it signals a growing trend to switch away from dead tree text books, and move to dynamic content, i.e. the web. Kay's big objection, that children have unequal rights as publishers, is still a concern. But more and more, young adults are coming to feel their own power, to make their documents world-readable (some squander this freedom, but that's their privilege). In contrast, the way the public schools were historically imprisoned is becoming more and more evident: a few big states, like California, would use their standards-making powers to serve the interests of big publishing, and steamroll the rest of us into docile compliance. I used to work for McGraw-Hill, which does many good works, but it was just too easy to fall into this "winner take all" mentality. Having California (or Texas) choose your textbook was like winning the lottery. All the smaller states would have to go along, as custom editions would be too unaffordable. A lot of us geeks don't think twice about firing up a projector, downloading Google Earth, or jumping through websites. But your average dark ages poor slob has to slave through chapter after chapter of antediluvean poopka, all in the name of serving some miserable state standards committee. Since when did politicians know better? This business of promulgating standards should be left to the *schools*. As it is, a few quisling academics see fit to collude with the big publishers, because it feeds their egos to dictate a "one size fits all" solution. But as soon as we're done winning the Math Wars (I'd say we've won already, but I'm probably in the minority), we'll be able to bring teachers new freedom: to roll their own, to make a name for themselves, to serve as creative people again, not just as brain-dead apparatchiks in some "hive mind" nomenclatura. Kirby From andre.roberge at gmail.com Wed Aug 2 03:05:26 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Tue, 1 Aug 2006 22:05:26 -0300 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: References: Message-ID: <7528bcdd0608011805i76814790pe8829993bd658cd7@mail.gmail.com> On 8/1/06, kirby urner wrote: > I'm excited about Crunchy Frog (or whatever Andre chooses to call it), > because it signals a growing trend to switch away from dead tree text > books, and move to dynamic content, i.e. the web. I'm excited too. ;-) > Kay's big objection, that children have unequal rights as publishers, > is still a concern. > I'm not familiar with this objection from Kay, but, interpreting these words on my own, outside of the original context..., I think this concern might be very soon a thing of the past. >From what I've read, it's a distinct possibility that Python may "soon" run in gecko based browser (e.g. Firefox). It might then become possible (easy?) to write a Firefox extension that would embed "The Application Formerly Known as Crunchy Frog" within it. I've heard of many fairly young children having learned some basic html. Imagine them sending an email to their friends/relatives with something like: Hey, have a look at what I did:
Some python code here
[The knowledgeable reader will recognize that the following will embed the Python code within a "crunchyfied" html page, ready to be executed, simply by pressing a button.] I bet it wouldn't be long that kids would come up with Really Neat Things (tm) that would amaze their friends & relatives. Really Neat Things would spread like chain-letters do nowadays. The average adult would feel left out. Publishing, in the electronic age, can take various forms... Andr? From john.zelle at wartburg.edu Wed Aug 2 05:18:57 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Tue, 1 Aug 2006 22:18:57 -0500 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: References: Message-ID: <200608012218.57785.john.zelle@wartburg.edu> On Tuesday 01 August 2006 7:31 pm, kirby urner wrote: > I'm excited about Crunchy Frog (or whatever Andre chooses to call it), > because it signals a growing trend to switch away from dead tree text > books, and move to dynamic content, i.e. the web. > I'm excited about Crunchy Frog too, but I reject the premise that textbooks (and books in general) are an inherently inferior medium to the web. They are a different medium with different strengths and weaknesses. For example, the convenience, resolution, and tactile properties of books are nowhere near equaled by current electronic technologies. Do you actually know anyone who prefers to use a computer rather than a book to get the kind of information that books are good at providing? I don't. Can Crunchy Frog do things that books can't? Absolutely. Let's use it for that. But education from books can still be fantastic. > Kay's big objection, that children have unequal rights as publishers, > is still a concern. > At the risk of sounding like Arthur, quotes (actually indirect references) like this make me question the wisdom of Kay as an education guru. I have no idea what the context for this statement is, but it sounds patently ridiculous. The "right to publish" is hardly a fundamental human right. Children also don't have the right to drink, or smoke, or get married, or run away from home, own a gun, or (fill in your own here). They're children. Maybe there's a reason not to have them publish. While I'm all for listening to children's voices, it's unlikely that they are the purveyors of great wisdom or genius. Granting children a "right to publish" sounds downright irresponisble. Do they have the judgement to know what it means to make information public? One need only glance at the sort of "youthful indescretions" on sites like facebook to realize that adults, especially parents and teachers, have a duty to act as guardians and gatekeepers when it comes to "publishing" for children. Children publish everyday on refrigerators across America---that seems appropriate to me. > But more and more, young adults are coming to feel their own power, to > make their documents world-readable (some squander this freedom, but > that's their privilege). Fair enough, but I for one favor forums with higher signal-to-noise ratio than "Joe Shmoe's Blog" > In contrast, the way the public schools were historically imprisoned > is becoming more and more evident: a few big states, like California, > would use their standards-making powers to serve the interests of big > publishing, and steamroll the rest of us into docile compliance. I'm not a fan of this winner take all system either, but it's market forces at work, not big states "colluding" with publishers. I doubt that textbook decisions are based on the interests of "big publishing." Rather big publishing's decisions are based on the interests of the standards committees. > I used to work for McGraw-Hill, which does many good works, but it was > just too easy to fall into this "winner take all" mentality. Having > California (or Texas) choose your textbook was like winning the > lottery. All the smaller states would have to go along, as custom > editions would be too unaffordable. I think technology is addressing this problem, but not in the way you envision it. Short run and custom printing is economically feasible now, and there is no reason that smaller states, even individual districts, could not (if they so chose) have different textbooks. > A lot of us geeks don't think twice about firing up a projector, > downloading Google Earth, or jumping through websites. But your > average dark ages poor slob has to slave through chapter after chapter > of antediluvean poopka, all in the name of serving some miserable > state standards committee. Right. I'm sure those state standards committees are filled with similar dark ages slobs who hate children and know nothing at all about education or what educated people should know. After all, it's in the best interests of every state to have the most ignorant and poorest educated children. Just because the state provides the funding for education is no reason to think they should be able to form committees of so-called experts in academic disciplines to decide how that money can best be spent. > Since when did politicians know better? This business of promulgating > standards should be left to the *schools*. As it is, a few quisling > academics see fit to collude with the big publishers, because it feeds > their egos to dictate a "one size fits all" solution. Smart and effective politicians do not try to micromanage schools (although I have to admit that political bodies often make bizarre decisions w.r.t education). I live in the only state which does not yet have a statewide curriculum, and that has both benefits and drawbacks. However, the _public_ in public education is all about fostering a common understanding of what it means to be educated. Education is all about myths in the sense of the stories that we tell ourselves about ourselves. Public education is about achieving a common understanding of our society and our place in history and the world. It's about finding a common body of knowledge that is both useful and humanizing. You yourself suggest that a mathematics education without certain Fulleresqe geometric concepts is useless and should be tossed out. I happen to respect your opinion, but I'm no expert. Statements of that sort need to be tested in the marketplace of ideas. That's what standards boards should be, the qualified judges that need to be convinced. You seem to think that every school should just do its own thing and let the best schools somehow "win." The problem is that there is _no_ way to evaluate the fitness of a curriculum outside of expert judgements. There is no objective "market." Sure, we could just go with the schools whose graduates are most "successful." Send your child to Slick Slim's school because its graduates make lots of money and control the levers of society. But important products like character, citizenship, industriouness, creativity, values, etc. are devilishly hard to measure. In fact some probably lead to less economic success for graduates (it's easier to get rich without scruples). Even the societal utlility of specific concrete "knowledge" is almost impossible to measure in any direct sense. > But as soon as we're done winning the Math Wars (I'd say we've won > already, but I'm probably in the minority), we'll be able to bring > teachers new freedom: to roll their own, to make a name for > themselves, to serve as creative people again, not just as brain-dead > apparatchiks in some "hive mind" nomenclatura. I'm all for teacher empowerment, but let's face facts: there just aren't enough really smart people for every teacher to be enlightened and brilliant. Teachers come on a bell-shaped curve, and probably only the very tail are capable of the sort of independent curriculum you crave. Who will educate the rest of our children? Your last sentence makes it sound like there is some vast conspiracy to make sure that our education system sucks. I find that hypothesis hard to swallow. I see lots of problems in education, but I see very little evidence that these problems are the result of any "hive mind" nomenclatura, whatever that is. Of course, I don't have your philosophical background. I'm just a small cog in the repressive system trying my best to teach the students I see with the meager skills I can muster. I happen to think well-written textbooks are one of the very best tools at my disposal. I suppose in your world that makes me hopelessly old-fashioned, hive-minded, and ineffective. I suppose some of my students would agree... Just my 2 cents. My apologies to Guido and the rest of you for the lack of Python content in this post. -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Wed Aug 2 13:24:36 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 02 Aug 2006 07:24:36 -0400 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: <200608012218.57785.john.zelle@wartburg.edu> References: <200608012218.57785.john.zelle@wartburg.edu> Message-ID: <44D08B74.10202@optonline.com> John Zelle wrote: >At the risk of sounding like Arthur, quotes (actually indirect references) >like this make me question the wisdom of Kay as an education guru. I have no >idea what the context for this statement is, but it sounds patently >ridiculous. > At the risk of sounding like Arthur ;) - "patently ridiculous" sounds about right, and Kay has been wise in working - until now - as a Pied Piper and outside of the environment of responsble academia (for those of us who recognize there to be such a thing) in promulgating his ideas and populating his Posse. I don't even need to be right about my assessment of Kay. I just know that it is reasonable assessment, even if wrong. And one of the hallmarks of sounding like Arthur, I like to think, is getting louder when being told that things like being guided by common sense, and such like is a relic of the past and the symptom of an obsolete and archaic point of view. Kay's appeal is largely his Millenialism, Kirby eats it up, and Arthur cries bullshit. This article by a UCLA professor, which manages to express more coherently than I some of the concerns I have tried to express on edu-sig. http://polaris.gseis.ucla.edu/pagre/academe.html BTW, I don't agree with everyting in it. But recognize a voice from responsible academia within it. Art From kirby.urner at gmail.com Wed Aug 2 16:47:00 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 2 Aug 2006 07:47:00 -0700 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: <200608012218.57785.john.zelle@wartburg.edu> References: <200608012218.57785.john.zelle@wartburg.edu> Message-ID: > Can Crunchy Frog do things that books can't? Absolutely. Let's use it for that. > But education from books can still be fantastic. Running yet another edition of 'Calculus Today' for every student in California is a waste of paper, plus they're too heavy, even in back packs. You still have the option to print various sections, if your book is on a CD or DVD. Anyway, I'm agreeing that more market forces will be in play, once we stop enslaving ourselves to textbook publishers at the state level (doesn't seem to happen in higher ed, just in K-12 -- or does some state standards body tell you what to use at Wartburg?). > > Kay's big objection, that children have unequal rights as publishers, > > is still a concern. > > > > At the risk of sounding like Arthur, quotes (actually indirect references) > like this make me question the wisdom of Kay as an education guru. Well, it's a very loose characterization, but he's all about technology removing the barriers to self expression, even if you're a pretty young kid with minimal typing skills. We've seen a lot of hype about kids making friends with other kids in distant lands, by sharing family pix 'n stuff, but that's mostly all it's been: hype. Getting easier though. Just very slowly. $100 laptops will be nice. > Fair enough, but I for one favor forums with higher signal-to-noise ratio > than "Joe Shmoe's Blog" Haven't checked it. > I'm not a fan of this winner take all system either, but it's market forces at > work, not big states "colluding" with publishers. I doubt that textbook > decisions are based on the interests of "big publishing." Rather big > publishing's decisions are based on the interests of the standards > committees. There wouldn't *be* any big publishing, in the sense that we now know, if statewide adoption wasn't a built in feature of the code. > I think technology is addressing this problem, but not in the way you envision > it. Short run and custom printing is economically feasible now, and there is > no reason that smaller states, even individual districts, could not (if they > so chose) have different textbooks. I'm not against using hardcopy books. The move to smaller publishing is actually the case in some Portland Public Schools. E.g. my daughter's school uses 'Visual Math', produced locally by the Math Learning Center at Portland State. > Just because the state provides the funding for education is no reason to think they > should be able to form committees of so-called experts in academic > disciplines to decide how that money can best be spent. There's very little public participation in this process, and not much a teacher can do to opt out, even if skilled at teaching from different resources. There's also far less choice for parents. It'd be better to give more disgression to teachers, as is done in higher ed. Why politicize the process at the state level. It's *individuals* who pay taxes. More local and community control (with input from around the world, given the web), makes more sense. > Education is all about myths in the sense of the stories that we tell ourselves about > ourselves. Like this story that we have some freedom to self govern, that democracy is of, by and for the people. What does that mean in practice? A school is a first place to test the theory. > You yourself suggest that a mathematics education without > certain Fulleresqe geometric concepts is useless and should be tossed out. I > happen to respect your opinion, but I'm no expert. Statements of that sort > need to be tested in the marketplace of ideas. That's what standards boards > should be, the qualified judges that need to be convinced. There's no way to get a lot of small competing experiments going (my democratic ideal) with a big brother state deciding for all of us which edition of 'Calculus Today' to buy. I do agree there should be protections in place, to keep schools from falling into the hands of parochial cabals who care nothing for societal systems and norms. OK for private schools maybe, but if it's tax supported, you need some standards (including public health standards). But I don't see the current system really addressing that need either. The state apparatus gets used by control freaks to suppress discussion of such topics as evolution. I think authoritarians among us have a dream to gradually win, state by state, the right to dictate their sanitized curriculum. > You seem to think that every school should just do its own thing and let the > best schools somehow "win." The problem is that there is _no_ way to evaluate > the fitness of a curriculum outside of expert judgements. There is no > objective "market." I'm all for judges. Have their judgments freely available. Give people choices. In a society with lots of schools to choose from, all doing something different, it's unlikely that one in particular will be "the best" in every dimension. People have different aspirations and goals, for one thing. In my town, we have an "environmental middle school" where kids do some gardening. > I'm all for teacher empowerment, but let's face facts: there just aren't > enough really smart people for every teacher to be enlightened and brilliant. I think we could do a lot better here, by giving teachers more responsibility and control over what they teach. We also have more ways to enrich the classroom with teachings originating elsewhere. Really, the true teacher is within each student. In a real community, teaching is a shared responsibility anyway. > Teachers come on a bell-shaped curve, and probably only the very tail are > capable of the sort of independent curriculum you crave. Who will educate the > rest of our children? Your last sentence makes it sound like there is some > vast conspiracy to make sure that our education system sucks. I find that > hypothesis hard to swallow. I don't. There's a lot of collusion of this kind "I won't call you on your BS if you won't call me on mine". There's also this tendency to overspecialize, to surrender any commitment to comprehensivism. The result: mass "de-geniusing" of young people, as they're infused with a sense of apathy and hopelessness in the face of an apparently deteriorating world (at least that's what happens to a *lot* of 'em -- and yet we still call it "education"). > I see lots of problems in education, but I see very little evidence that these > problems are the result of any "hive mind" nomenclatura, whatever that is. Of > course, I don't have your philosophical background. I'm just a small cog in > the repressive system trying my best to teach the students I see with the > meager skills I can muster. I happen to think well-written textbooks are one > of the very best tools at my disposal. Good luck getting permission to use your well-written textbooks. In K-12, it's not your decision which books to use. Python will not be mentioned, take that as a given (probably no Euclid's Algorithm either). Learning math has nothing whatever to do with writing computer programs, your over-specialized "experts" have seen to that. > I suppose in your world that makes me > hopelessly old-fashioned, hive-minded, and ineffective. I suppose some of my > students would agree... I think you have way more academic freedom than the rank and file public school teacher, as does Wartburg vis-a-vis some Los Angeles high school. If high schools were more like small colleges, in terms of teacher freedoms, I'd be a lot happier. > Just my 2 cents. My apologies to Guido and the rest of you for the lack of > Python content in this post. Thanks for your feedback. I managed to mention Python once anyway. Kirby From kirby.urner at gmail.com Wed Aug 2 18:26:35 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 2 Aug 2006 09:26:35 -0700 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: <44D08B74.10202@optonline.com> References: <200608012218.57785.john.zelle@wartburg.edu> <44D08B74.10202@optonline.com> Message-ID: > Kay's appeal is largely his Millenialism, Kirby eats it up, and Arthur > cries bullshit. > We're fighting different battles obviously (millenialism? -- which calendar?). > This article by a UCLA professor, which manages to express more > coherently than I some of the concerns I have tried to express on edu-sig. > > http://polaris.gseis.ucla.edu/pagre/academe.html In contrast, here's a posting by a prof at CalTech, exulting in this process whereby 11-15 "experts" (he being one of them) dictate to the State, and by extension the nation (mechanism already explained) what math curricula we must conform to. He's militantly anti-technology, even towards the namby pamby stuff served up by NCTM, which is mostly about TI calculators, not programming. http://mathforum.org/kb/message.jspa?messageID=4979217&tstart=0 > BTW, I don't agree with everyting in it. But recognize a voice from > responsible academia within it. > > Art I read this, but it seemed mostly arguing against some straw man "technophile" who wants to destroy the university as we know it, and put professors out of business. When it comes to giving his own views, he accepts technology is indeed an agent of change, and universities will be affected (in some cases they'll be pioneers, original thinkers -- same with professors no?). So what's so groundbreaking about this thinking? Mostly he's trying to paint a shrill, cultish millenialist to focus professorial outrage. A common enemy. A rallying point. But how much reality is behind this stereotype? Kirby From ajsiegel at optonline.net Wed Aug 2 19:18:37 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Wed, 02 Aug 2006 17:18:37 +0000 (GMT) Subject: [Edu-sig] Excited about Crunchy Frog Message-ID: From: kirby urnerDate: Wednesday, August 2, 2006 12:26 pmSubject: Re: Re: [Edu-sig] Excited about Crunchy FrogTo: ArthurCc: John Zelle , edu-sig at python.org> We're fighting different battlesAbsolutely no doubt about it.? Its a shame really.? I think that much of what you are proposing to proposecould find acceptance more readily if you were willing understand whereyour ideas fit *within* the main stream, rather than insisting that theytranscend it. I emphasize the Fuller stuff only because it is an example of you refusing to doyour homework, and sticking to your guns at the expense of good sense.? Your friend Snelson tells the story of having met Fuller atBlack Mountain and being inspired by him.? But also the frustration of the math faculty at Black Mountain at Fuller presenting certain ideas as his own, or as revolutionary, when they were established mathematical ideas. Allavailable in the library. In my opinion, by taking those ideas out of theirhistorical context, and by de-academizing them, by Fullerizing them, you are making them less, not moreWe're fighting different battles - to be sure.> He's militantly anti-technologyI am not.> I read this, but it seemed mostly arguing against some straw man> "technophile" who wants to destroy the university as we know it, and> put professors out of business."""In examining the role of information technology in higher education, I have found it necessary to proceed in two steps: first deprogramming the millennialism that shapes our thinking about technology and institutions, and then examining the values that can and should inform our educational institutions. """I am militantly anti-millennialist, so recognize a kindred spirit here.And "de-programming" is, IMO, not a bad characterization of what we needto be up to.Technology has disrupted much - including a sense of history, and good sense itself.Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060802/78c56134/attachment.html From kirby.urner at gmail.com Wed Aug 2 23:19:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 2 Aug 2006 14:19:41 -0700 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: References: Message-ID: On 8/2/06, ajsiegel at optonline.net wrote: > available in the library. In my opinion, by taking those ideas out of their > historical context, and by de-academizing them, by Fullerizing them, you > are making them less, not more I don't see that in connecting ideas to Fuller (not the only source for many mathematical ideas), I'm removing them from their historical context. He's another historical figure, like G. Leibniz, Klein, McLuhan, Ada Byron, likewise a recognized genius, and a literary figure. Hitching my star to his (and Wittgenstein's -- another hero) was not a bad move in my estimation. Some of the most interesting people I've ever met (including Kenneth Snelson) I would not have, were I not so invested in his school. Even Python I came to, like you, because of my passion for geometric studies. Also, maybe because I grew up in Italy, the Philippines etc., I'm naturally drawn to people with a big picture perspective. > We're fighting different battles - to be sure. > Yes, that's always been clear. Kirby From acquiesce11 at yahoo.com.au Thu Aug 3 05:46:28 2006 From: acquiesce11 at yahoo.com.au (Fransiska M Argasetya) Date: Thu, 3 Aug 2006 13:46:28 +1000 (EST) Subject: [Edu-sig] Multiple sites ping program Message-ID: <20060803034628.64422.qmail@web54713.mail.yahoo.com> Hi everyone I am sorry for being such a newbie. I am looking for Python code for a program that pings multiples sites; by either typing their IP or the actual address. Was thinking of maybe having another file with a list of the websites so the program can just get the inputs from this file. I have a ping program that can only ping one site at a time, and therefore have to wait till that one finished before pinging the next one. So I don't really want to enter each manually. Any suggestions would be greatly appreciated. Thank you very much.. =) Send instant messages to your online friends http://au.messenger.yahoo.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060803/ce34fca0/attachment.html From francois.schnell at gmail.com Thu Aug 3 11:44:07 2006 From: francois.schnell at gmail.com (francois schnell) Date: Thu, 3 Aug 2006 11:44:07 +0200 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: <200608012218.57785.john.zelle@wartburg.edu> References: <200608012218.57785.john.zelle@wartburg.edu> Message-ID: <13a83ca10608030244k38eae84fyd2750325a82944a2@mail.gmail.com> On 02/08/06, John Zelle wrote: > > > > > Kay's big objection, that children have unequal rights as publishers, > > is still a concern. > > > > At the risk of sounding like Arthur, quotes (actually indirect references) > like this make me question the wisdom of Kay as an education guru. I have > no > idea what the context for this statement is, but it sounds patently > ridiculous. The "right to publish" is [etc .... etc.] I have no idea of the context either that's why I prefer to go for the scientific approach and won't develop more: 1) Is it possible to have the source (link) of the statement to see the context and to judge by myself eventually ? 2) while not the case: "If you're looking at something and you don't know where it comes from, if there's no pointer to the source, you can ignore it." Tim *Berners*-*Lee* (WWW 'father') http://news.bbc.co.uk/2/hi/technology/4132752.stm Judging without sources (on faith then) seems a lot like "Guru" behavior to me . Maybe that's why some countries go easily to war, following their Guru without asking for the sources (something which could have been part of the curriculum maybe ). francois -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060803/bb2d3841/attachment.htm From francois.schnell at gmail.com Thu Aug 3 12:34:46 2006 From: francois.schnell at gmail.com (francois schnell) Date: Thu, 3 Aug 2006 12:34:46 +0200 Subject: [Edu-sig] Excited about Crunchy Frog In-Reply-To: References: Message-ID: <13a83ca10608030334t20ebdcbfg5bcbb837bd0fb69d@mail.gmail.com> On 02/08/06, kirby urner wrote: > > > In contrast, the way the public schools were historically imprisoned > is becoming more and more evident: a few big states, like California, > would use their standards-making powers to serve the interests of big > publishing, and steamroll the rest of us into docile compliance. There is something original happening in France concerning math manuals for K12. There is a math teachers association (with 20000 people on their mailing list) which collaborative produce free digital educational contents done by math teachers. Lately they produced the first math manual (for 12 years age) which is completely "Open Source" (Free Document Licence) and done collaboratively by teachers. http://manuel.sesamath.net/ Schools can now also buy the published paper version if they want to. It's the first time these main publishers are in direct competition with the math teachers based on "Open source" manuals. It will be interesting to see how many schools will adopt the manual and how the big publishers will react. francois -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060803/59b0ef8f/attachment.htm From kirby.urner at gmail.com Fri Aug 4 20:48:01 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 4 Aug 2006 11:48:01 -0700 Subject: [Edu-sig] Python Pedagogy ( re __ribs__ ) Message-ID: I don't know if I'm the first to think of this, but there's some obvious imagery to employ when teaching about the built-in overloadable Python methods, as a bridge to classes in general: they look like ribs. Think of a Snake: class Snake: __rib__ __rib__ __rib__ __rib__ __rib__ __rib__ But the connotations run deeper. The ribs join to a backbone, which is where a lot of low level reflexes get wired, which is what built-in methods do (react as callables). So we're really building up this class/creature metaphor at the "ascii art" level, as well as conceptually: a strong mnemonic, a cornucopia of relevant associations. Finally, there's a move characteristic of the Bucky-informed brands: we associate ribs with eaves (pun), the idea of a ceiling: on a boat flipped over. Boats are the original hulls (of sea peoples anyway), but brought up on land, and flipped over, they become houses.[1] You may recall "the home" (as a paradigm class) is a another core feature of my emerging Pythonic pedagogy -- except we'll branching out into DwellingMachines (maybe as a subclass of a common ancestor).[2] Kirby [1] R. Buckminster Fuller, Tetrascroll: A Cosmic Fairy Tale [2] """ I think using the home as a paradigm class is propitious, as there's lots of implied complexity, especially once HVAC and AC/DC become a focus (lots of APIs). You have the media room, the pantry, the scullery -- the whole pattern language of places. The Sims gives us visuals. OO gives us implementations. """ http://mail.python.org/pipermail/edu-sig/2006-May/006543.html [Edu-sig] More OO chatter from the Edubuntu box kirby urner kirby.urner at gmail.com Mon May 29 22:32:00 CEST 2006 From pdfernhout at kurtz-fernhout.com Mon Aug 7 22:58:17 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Mon, 07 Aug 2006 16:58:17 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) Message-ID: <44D7A969.9050701@kurtz-fernhout.com> Version 0.2.03 of PataPata (a live Python object environment of Prototypes and Morphs) has been released. The zip file is at: http://sourceforge.net/project/showfiles.php?group_id=165910 The big thing in this new version is support for Jython (2.2 only) using the Swing interfaces ans supporting essentially the same prototype-based API and widget dragging GUI as the TK version uses. The Inspector and Dandelion example world also work under Swing in this release (and needed only minor changes from the TK version). Read on for more details. == testing wanted Any "Smoke Test" level (e.g. does it run at all for you?) feedback on trying PataPata under Jython 2.2 on various Mac/Win/GNULinux configurations would be appreciated. You need to use a Jython 2.2 (not 2.1) version (sorry, PataPata save file source format uses "object" for metaclass support for loading files). Jython 2.2 can be downloaded and installed from links here: http://www.jython.org/Project/installation.html To run PataPata for Jython under GNU/Linux (assuming jythonRelease_2_2alpha1 is installed in your home directory), use: java -jar ~/jythonRelease_2_2alpha1/jython.jar PataPata.py I'm getting this out early so people can play with it. As the first Swing verison it is bound to have some issues. Still lots of rough edges and some cut corners (e.g. some missing events like enter/leave). A future version needs to integrate the swing and TK versions better so that user World files that are now "almost" the same will really be the same. == unique benefits to a Jython version It might be possible to add quicker prototype method dispatch lookup more easily to a Jython version as a patch on top of regular Jython as opposed to doing that under C. I'm not sure I'm up for it at the moment, but in theory with a little big of effort and wading through Sun's documentation (and ignoring some other potential deployment issues, e.g. "why we dropped Java web start" http://www.dynamicobjects.com/d2r/archives/002859.html ) one could in theory make a one click Web Start application with PataPata and Jython that would give you a live Python environment with a GUI builder and Inspector with (essentially) one click from a browser on any computer with Java Web Start enabled. That might be nice in some educational settings. No doubt WebStart will continue to improve as a delivery vehicle, just like I hope Sun's Java will be "open source" someday. == grungy work to be done Right now there is a lot of duplication of files between Swing and TK (havign similar WorldInspectorTK.py and WorldInspectorSwing.py files, etc.) Ideally, I want to refactor the system to have common files, general platform files, and unique platform files such as: WorldInspector.py, WorldDandelionGarden.py, WorldConversions.py, WorldExample.py, WorldEmpty.py using WorldCommon.py, which woudl import UtilitiesCommon.py, which would import one of: CrossPlatformWrappingOfTK.py, CrossPlatformWrappingOfSwing.py, CrossPlatformWrappingOfGTK.py, CrossPlatformWrappingOfWX.py World files could then also import: WorldOnlyForTK.py, WorldOnlyForSwing.py, WorldOnlyForGTK.py, WorldOnlyForWX.py making them platform dependent. Doable, but that looks like some slogging. :-( == future directions and a pause for reflection Perhaps the best news about this all shows that I can make progress using PataPata and any specific widget set it wraps and then later use the (almost) identical code on another platform with some effort to write support code for that platform. Of course, Python's anygui and even wxPython has already done that, but in a different way. :-) Still, I know that the more I stray from the basic widgets (Buttons, Labels, Lists) the more work that would be -- but it is likely fairly doable. On the other hand, a truly 3D GUI if I had one is not going to be easily portable to a 2D platform. This version also started a GLUT 3D version of the interface, but that just opens a window as a proof of concept (I like the 3D approach, but it looks like a lot of work). Anyway, the good news is, PataPata now supports the default GUI for the Python and Jython releases. That means people could write some simple educational software that run on both platforms using (near) identical code. I don't think I'll venture into IronPython dot net support any time soon to cover all the major Python bases (I've never used IronPython and don't want to learn it right now). I'm not sure where to go from here on GUIs as I've gotten more interested in the "One Laptop per Child" project http://laptop.org/ and they are using Python and GTK. http://wiki.laptop.org/go/GTK From there: "GTK+ is the basic GUI toolkit used by Sugar and other OLPC applications. Any application that needs a GUI consisting of standard Windows, Icons, Menus and Pointers should use GTK+. The OLPC include the PyGTK Module to simplify the task of building Python applications. " Clearly WX or Swing or TK or GLUT have more general interest. Still, I'm tempted to move in a GTK direction for the reasons both of the OLPC project and also because GTK might be a nice solution for previous reasons mentioned on the edusig list (though at a cost of initial install issues on Mac and Windows). On the other hand, after doing even more coding in Python, I'm really missing even more all the Smalltalk development tools, a situation which PataPata hopes to improve a little, of course, at some continued effort which looks somewhat boring/daunting at this point. :-) Venting a little, there is also not much one can do about the fact that the Smalltalk syntax and message passing approach (to me) is clearer for prototype based systems than Python's parenthetical functional notation. This is because in Smalltalk or Self, "self x" to get and "self x:" to set are clearly messages and not possibly variable accesses, unlike Python's "self.x", "self.x = value", "self.x()", "self.x(value)" permutations adding possibility for confusion (i.e. should self.x to get a property value be used with equals or as a function call?). Still, when I contemplate other systems for a PataPata base which meet my licensing interests and have an underlying simplicity, like GNU Smalltalk http://www.gnu.org/software/smalltalk/ or the io language http://www.iolanguage.com/about/ or Parrot http://www.parrotcode.org/ or Prometheus on bigloo, PLT, or another Scheme: http://www.forcix.cx/software/prometheus/prometheus.html http://www-sop.inria.fr/mimosa/fp/Bigloo/ http://www.plt-scheme.org/ or others, I have to admit Python is more ubiquitous and so makes for an easier and more reliable PataPata install with a bigger community. Python has never let me down for a variety opf projects and refining those Python skills have also had commercial value (for me). I have written most of a Smalltalk grammar for ANTLR (some bugs), and there is already Bistro Smalltalk for Java, so that is another possible direction too (perhaps using some Jython technology). And, even Squeak is now in a position to fight its way back starting again from 1.1 with a new "open source" license too, so we will see how that goes (though, as Alan Kay, said almost ten years back, Squeak was just hopefully a stepping stone to something better). I'm still left wanting simple prototypes with a Self-like syntax on a modern well supported cross-platform runtime (but not Self itself, as I find that too complex in apporach :-). Continuing PataPata with Python can still realize something good but at a cost of (IMHO) a weaker and more complex syntax, some extra complexity, and a bit of a performance hit (but potentially more interest to users). Of course, if nobody really sees the value in it, then focusing with something more Smalltalk syntax (even on top of Python) may make more sense for me personally. Still, PataPata 0.2.02 is up to 47 downloads from SourceForge, so there is some interest there. Alex J. Champandard wrote to me (after seeing the ShowMeDo video by Francois) about a similar project he started a couple months ago (great minds think alike!) which focuses more on 3D issues, available here: http://alive.sourceforge.net/ so integrating PataPata somehow with his work is another possibility. So anyway, since my trip, I've been moving into a period of further reflection on what my goals are at this point, but I still wanted to get this Jython/Swing version finished enough to release in any case. Basically I'm one person working on this with very limited time, and I think I have successfully proved the concept that you can have Morphs and Prototypes under Python and in a somewhat Pythonic-way (if there was indeed any doubt). Now I have to think about where to go next, whether to continue on the pink plane Python/Squeak merger roadmap I outlined on edusig a while back, (*) http://mail.python.org/pipermail/edu-sig/2006-April/006226.html or whether to move into the blue plane (again) (**) with other approaches to software environments for learning. The biggest thing driving me right now is having several educational applications I want to port from Delphi, so I'll make some sort of decision one way or another, even if just deciding plain Jython or Python without prototypes is easier. :-) --Paul Fernhout (*) Separately I've also considered some of the network debugging issues I've outlined there as well, but decided to hold off on them as a priority for security issues, but that could also be a big next step for PataPata. (**) Definition of Alan Kay's pink and blue planes and comments on tensions from them for developers (an interesting read for anyone on a development oriented mailing list. :-): http://lists.squeakfoundation.org/pipermail/squeak-dev/2003-February/052648.html From kirby.urner at gmail.com Mon Aug 7 23:56:16 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 7 Aug 2006 14:56:16 -0700 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D7A969.9050701@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> Message-ID: On 8/7/06, Paul D. Fernhout wrote: > On the other hand, after doing even more coding in Python, I'm really > missing even more all the Smalltalk development tools, a situation which > PataPata hopes to improve a little, of course, at some continued effort > which looks somewhat boring/daunting at this point. :-) Venting a little, > there is also not much one can do about the fact that the Smalltalk syntax > and message passing approach (to me) is clearer for prototype based > systems than Python's parenthetical functional notation. This is because > in Smalltalk or Self, "self x" to get and "self x:" to set are clearly > messages and not possibly variable accesses, unlike Python's "self.x", > "self.x = value", "self.x()", "self.x(value)" permutations adding > possibility for confusion (i.e. should self.x to get a property value be > used with equals or as a function call?). Although you've rarely deigned to engage in nitty gritty syntax discussions when I bring them up, in response to your "judgments", I'll risk it again: What's the confusion in this case? self.x, as seen from the inside, is a property, or a function's address, likewise a property (looking at it sideways, not loading with arguments or void, and calling with parentheses [1]). But usually we'd write obj.x or some such, as if querying an object from outside. val = obj.x is "getting" whereas obj.x = val is "setting". Outside, obj.x specifies a property, whereas use of parentheses signifies invoking a callable i.e. a method in the object's hierarchy __dict__s someplace (perhaps way up high in some tree). The major exception: if we want functions to operate even when the user gets to use plain old property syntax -- so providing is the purpose of the infamous property() function (which Arthur thinks was brough over just to make inferior Java coders feel at home -- and he's not the only one who thinks that). If there's ambiguity in Python, it's in __init__ and __call__ both being invoked by the same syntax (a pair of parentheses). I haven't made a complete study of all the ways to confuse myself about this issue, but what experiments I *have* run indicate a rational sense of operator precedence, i.e. you have to __init__ something before there's something to even __call__. Kirby PS: I expect this'll be rejected from patapata-discuss but I'm echoing the CC as a matter of courtesy. [1] A. Martelli talks about this distinction in his discussions about Ruby. That reminds me of something I posted in wwwanderers.org recently -- I'll copy here to edu-sig. From kirby.urner at gmail.com Mon Aug 7 23:59:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 7 Aug 2006 14:59:28 -0700 Subject: [Edu-sig] Fwd: from wwwanderers.org (membership Yahoo! group) Message-ID: >From kirby.urner at gmail.com Thu Aug 03 10:09:09 2006 Received: by 10.78.131.5 with HTTP; Thu, 3 Aug 2006 10:09:08 -0700 (PDT) Message-ID: Date: Thu, 3 Aug 2006 10:09:08 -0700 From: "kirby urner" Subject: Re: [wwwanderers] Language question for Kirby > I know that Kirby is a dyed in the wool Python devotee. However there is a confusing > array of open source scripting languages out there. In addition to Python there are Perl, > PHP, and Ruby. There are probably others that I am not aware of. Can someone give > a quick rundown of the pros and cons of each? Are there niches where one is better > than the others? Is there one that is universally superior? Inquiring minds want to know. Hi Allen -- [I'm fumbling around to change my email address to Google's gmail... better than Princeton's Tigernet for spam filtering and web emailing] We (the hive mind, borg, royal we or whatever) prefer not to call 'em "scripting languages" anymore, as that connotes "only good for slap dash shell scripts like in bash" i.e. "doesn't scale" -- which is a misleading impression (Java marketing might still be pushing the "scripting" label for that reason)... We like "agile languages" or "dynamically typed", meaning they support late binding, introspection, the ability to write new code and execute it on the fly, at run time. None of this declaring types in advance and compiling BS, like in Java or C++ (the so-called system language -- oft used to implement more dynamic VHLLs (e.g. there's a version of Python written in Java, called Jython)). VHLL = very high level language. Yes all that agility comes at a price, slows it down some, but whose time is more valuable, the busy human's, trying to get work done, maintain and recycle code, or the CPU's, cheap cheap? Agile languages are blazingly fast for most workaday applications. If there's really a time-critical bottleneck, there're ways to write just that part in a "system language" (closer to the metal) and invoke that from within your agile bowels (eew). In a web context, if you have high volume traffic, you don't want Python or Perl loading and unloading from memory all the time, so Apache provides various modules for keeping that from happening. PHP's whole original reason for being was to code web sites on the server-side (Javascript and Java applets being client-side in contrast -- Java is server-side too of course, Tomcat etc...). The hallmark of an agile language is it "compiles" to byte codes, a small instruction set more like assembly language, but targeted to run on a Virtual Machine (VM). It's this VM that gets customized for different operating systems, so the byte codes don't have to change e.g. when moving from Linux to Windows to Unix to BeOS etc. Java is like this too, and you've likely heard of Microsoft's "dot net" (.NET): another VM, the Common Language Runtime (CLR) providing the byte codes. There's a new version of Python out there, written in C#, that compiles to .NET, or, on the Linux side of things, to Mono (the open source implementation of the .NET open standard). Perl is undergoing a big revamp these days (to versions 6.x), and plans to emerge more agile than ever. Perl is the huge big brother community at OSCON, with lots of geniuses and superstars, many of whom are right here in Portland (Randal Schwartz of Stonehenge, also the yaml.org guy, Brian, some of the Naked Ape people [1]...). Python is still evolving too, making the big leap to Python 3.x (which will break backward compatibility) in the next couple of years. But Guido emphasizes this leap is nowhere near as big as Perl's.[3] Ruby has gotten pretty big pretty fast, thanks largely to Ruby on Rails (see July issue of Linux Journal). PHP I know a lot less about. Now, to my own biases. As you say, I'm a snake charmer, a citizen of Python Nation, so those are the memes I most know to spread. In Python's favor: it was object oriented from the beginning and implements that paradigm very cleanly. Perl bolted that on later, with the "bless" key word. Ruby, on the other hand, is maybe *too* agile, what with mutable strings and classes you can keep messing with, anywhere in the code.[2] What's also going for Python is a critical mass bandwagon effect where companies are realizing the advantages of exposing "Python bindings" to their various engines. Some Nokia cell phones give users a Python API for writing cell phone applets. Games like Civilization IV and Unreal Tournament (? not so sure about UT). A generic library used by 2D gamers is called SDL, and Pygame gives snake charmers access to that library. 3D gamer coders tend to use OpenGL. That's harder to master, but here again, Python comes through with VPython, notable for its very simple API (3D coding for mere mortals). This is what I used for my HexaPent Studies with Glenn. For full OpenGL, there's PyOpenGL. In sum, I think all of these languages have a bright future, even as newcomers continue to crowd the scene. The world of computer languages is rather ruthlessly Darwinian; making it in the real world outside academia (home to many "toy languages") is a tough row to hoe, and you can be sure those that made it are pretty robust and reliable, good at what they do. All of these languages come with excellent free documentation, plus the languages themselves are free (and open source). Other exciting languages: Haskell, J, Ocaml, plus LISP and Scheme still attract large followings of nerdy theoreticians (I find these less practical for my needs, plus the Scheme people come across as too snobbish). Kirby [1] Naked Ape Consulting (member of POSSE, like my 4D Solutions): http://www.news4neighbors.net/orgs.pl?op=org_view&org_id=173 [2] Re: OSCON 2006, a journalist chatting with Guido: http://business.newsforge.com/article.pl?sid=06/08/01/1234216&tid=18&tid=138&pagenum=1 [3] Highly technical comparison of Python with Ruby: http://www.trug.ca/Alex_Martelli's_Python_vs_Ruby_newsgroup_posting From andreas.raab at gmx.de Tue Aug 8 00:31:49 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Tue, 08 Aug 2006 00:31:49 +0200 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D7A969.9050701@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> Message-ID: <44D7BF55.5020007@gmx.de> Hi Paul - When I try to run 0.2.3 (Python 2.4 on Windows XP) all I get is an indentation error (stack dump below). Any ideas? Cheers, - Andreas --------------------------------------------------------------------- PataPata Version 0.2.03 Using 'Alt' as the meta key to drag Morphs and get menus You can change this key in the file "options.py" If you use ALT under GNU/Linux and it drags windows instead of morphs, then you need to change a setting in your desktop settings. Loading world file: WorldExampleTK.py from C:\PataPata_v203\PataPata_v203 Loading world file: WorldCommonTK.py from C:\PataPata_v203\PataPata_v203 Traceback (most recent call last): File "PataPata.py", line 18, in ? PataPataViewerTK.main() File "C:\PataPata_v203\PataPata_v203\PataPataViewerTK.py", line 24, in main world = PrototypeClass(None).newPrototypeFromFile("WorldExampleTK.py") File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 514, in newPrototypeFromFile newPrototype = worldModule.define_prototype(self.world) File "C:\PataPata_v203\PataPata_v203\WorldExampleTK.py", line 9, in define_prototype world.worldLibraries = [world.newWorldFromFile("WorldCommonTK.py")] File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 522, in newWorldFromFile result = newWorld.newPrototypeFromFile(fileName) File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 514, in newPrototypeFromFile newPrototype = worldModule.define_prototype(self.world) File "C:\PataPata_v203\PataPata_v203\WorldCommonTK.py", line 794, in define_prototype class SimpleSequenceLayoutManager: File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 641, in buildPrototype prototype.setAttributeWithoutSideEffects(propertyName, value) File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 576, in setAttributeWithoutSideEffects value = PrototypeMethod(self, value) File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 47, in __init__ source = inspect.getsource(function) File "C:\Python24\Lib\inspect.py", line 563, in getsource lines, lnum = getsourcelines(object) File "C:\Python24\Lib\inspect.py", line 555, in getsourcelines else: return getblock(lines[lnum:]), lnum + 1 File "C:\Python24\Lib\inspect.py", line 538, in getblock tokenize.tokenize(ListReader(lines).readline, BlockFinder().tokeneater) File "C:\Python24\Lib\tokenize.py", line 153, in tokenize tokenize_loop(readline, tokeneater) File "C:\Python24\Lib\tokenize.py", line 159, in tokenize_loop for token_info in generate_tokens(readline): File "C:\Python24\Lib\tokenize.py", line 229, in generate_tokens raise IndentationError( IndentationError: unindent does not match any outer indentation level Paul D. Fernhout wrote: > Version 0.2.03 of PataPata (a live Python object environment of Prototypes > and Morphs) has been released. The zip file is at: > http://sourceforge.net/project/showfiles.php?group_id=165910 > > The big thing in this new version is support for Jython (2.2 only) using > the Swing interfaces ans supporting essentially the same prototype-based > API and widget dragging GUI as the TK version uses. The Inspector and > Dandelion example world also work under Swing in this release (and needed > only minor changes from the TK version). > > Read on for more details. > > == testing wanted > > Any "Smoke Test" level (e.g. does it run at all for you?) feedback on > trying PataPata under Jython 2.2 on various Mac/Win/GNULinux > configurations would be appreciated. You need to use a Jython 2.2 (not > 2.1) version (sorry, PataPata save file source format uses "object" for > metaclass support for loading files). Jython 2.2 can be downloaded and > installed from links here: > http://www.jython.org/Project/installation.html > To run PataPata for Jython under GNU/Linux (assuming > jythonRelease_2_2alpha1 is installed in your home directory), use: > java -jar ~/jythonRelease_2_2alpha1/jython.jar PataPata.py > > I'm getting this out early so people can play with it. As the first Swing > verison it is bound to have some issues. Still lots of rough edges and > some cut corners (e.g. some missing events like enter/leave). A future > version needs to integrate the swing and TK versions better so that user > World files that are now "almost" the same will really be the same. > > == unique benefits to a Jython version > > It might be possible to add quicker prototype method dispatch lookup more > easily to a Jython version as a patch on top of regular Jython as opposed > to doing that under C. > > I'm not sure I'm up for it at the moment, but in theory with a little big > of effort and wading through Sun's documentation (and ignoring some other > potential deployment issues, e.g. > "why we dropped Java web start" > http://www.dynamicobjects.com/d2r/archives/002859.html ) > one could in theory make a one click Web Start application with PataPata > and Jython that would give you a live Python environment with a GUI > builder and Inspector with (essentially) one click from a browser on any > computer with Java Web Start enabled. That might be nice in some > educational settings. No doubt WebStart will continue to improve as a > delivery vehicle, just like I hope Sun's Java will be "open source" someday. > > == grungy work to be done > > Right now there is a lot of duplication of files between Swing and TK > (havign similar WorldInspectorTK.py and WorldInspectorSwing.py files, > etc.) Ideally, I want to refactor the system to have common files, general > platform files, and unique platform files > such as: WorldInspector.py, WorldDandelionGarden.py, > WorldConversions.py, WorldExample.py, WorldEmpty.py > using WorldCommon.py, which woudl import UtilitiesCommon.py, > which would import one of: CrossPlatformWrappingOfTK.py, > CrossPlatformWrappingOfSwing.py, CrossPlatformWrappingOfGTK.py, > CrossPlatformWrappingOfWX.py > World files could then also import: WorldOnlyForTK.py, > WorldOnlyForSwing.py, WorldOnlyForGTK.py, WorldOnlyForWX.py making them > platform dependent. Doable, but that looks like some slogging. :-( > > == future directions and a pause for reflection > > Perhaps the best news about this all shows that I can make progress using > PataPata and any specific widget set it wraps and then later use the > (almost) identical code on another platform with some effort to write > support code for that platform. Of course, Python's anygui and even > wxPython has already done that, but in a different way. :-) Still, I know > that the more I stray from the basic widgets (Buttons, Labels, Lists) the > more work that would be -- but it is likely fairly doable. On the other > hand, a truly 3D GUI if I had one is not going to be easily portable to a > 2D platform. This version also started a GLUT 3D version of the interface, > but that just opens a window as a proof of concept (I like the 3D > approach, but it looks like a lot of work). > > Anyway, the good news is, PataPata now supports the default GUI for the > Python and Jython releases. That means people could write some simple > educational software that run on both platforms using (near) identical > code. I don't think I'll venture into IronPython dot net support any time > soon to cover all the major Python bases (I've never used IronPython and > don't want to learn it right now). > > I'm not sure where to go from here on GUIs as I've gotten more interested > in the "One Laptop per Child" project > http://laptop.org/ > and they are using Python and GTK. > http://wiki.laptop.org/go/GTK > From there: "GTK+ is the basic GUI toolkit used by Sugar and other OLPC > applications. Any application that needs a GUI consisting of standard > Windows, Icons, Menus and Pointers should use GTK+. The OLPC include the > PyGTK Module to simplify the task of building Python applications. " > Clearly WX or Swing or TK or GLUT have more general interest. Still, I'm > tempted to move in a GTK direction for the reasons both of the OLPC > project and also because GTK might be a nice solution for previous reasons > mentioned on the edusig list (though at a cost of initial install issues > on Mac and Windows). > > On the other hand, after doing even more coding in Python, I'm really > missing even more all the Smalltalk development tools, a situation which > PataPata hopes to improve a little, of course, at some continued effort > which looks somewhat boring/daunting at this point. :-) Venting a little, > there is also not much one can do about the fact that the Smalltalk syntax > and message passing approach (to me) is clearer for prototype based > systems than Python's parenthetical functional notation. This is because > in Smalltalk or Self, "self x" to get and "self x:" to set are clearly > messages and not possibly variable accesses, unlike Python's "self.x", > "self.x = value", "self.x()", "self.x(value)" permutations adding > possibility for confusion (i.e. should self.x to get a property value be > used with equals or as a function call?). > > Still, when I contemplate other systems for a PataPata base which meet my > licensing interests and have an underlying simplicity, like GNU Smalltalk > http://www.gnu.org/software/smalltalk/ > or the io language > http://www.iolanguage.com/about/ > or Parrot > http://www.parrotcode.org/ > or Prometheus on bigloo, PLT, or another Scheme: > http://www.forcix.cx/software/prometheus/prometheus.html > http://www-sop.inria.fr/mimosa/fp/Bigloo/ > http://www.plt-scheme.org/ > or others, I have to admit Python is more ubiquitous and so makes for an > easier and more reliable PataPata install with a bigger community. Python > has never let me down for a variety opf projects and refining those Python > skills have also had commercial value (for me). > > I have written most of a Smalltalk grammar for ANTLR (some bugs), and > there is already Bistro Smalltalk for Java, so that is another possible > direction too (perhaps using some Jython technology). And, even Squeak is > now in a position to fight its way back starting again from 1.1 with a new > "open source" license too, so we will see how that goes (though, as Alan > Kay, said almost ten years back, Squeak was just hopefully a stepping > stone to something better). > > I'm still left wanting simple prototypes with a Self-like syntax on a > modern well supported cross-platform runtime (but not Self itself, as I > find that too complex in apporach :-). Continuing PataPata with Python can > still realize something good but at a cost of (IMHO) a weaker and more > complex syntax, some extra complexity, and a bit of a performance hit (but > potentially more interest to users). Of course, if nobody really sees the > value in it, then focusing with something more Smalltalk syntax (even on > top of Python) may make more sense for me personally. Still, PataPata > 0.2.02 is up to 47 downloads from SourceForge, so there is some interest > there. > > Alex J. Champandard wrote to me (after seeing the ShowMeDo video by > Francois) about a similar project he started a couple months ago (great > minds think alike!) which focuses more on 3D issues, available here: > http://alive.sourceforge.net/ > so integrating PataPata somehow with his work is another possibility. > > So anyway, since my trip, I've been moving into a period of further > reflection on what my goals are at this point, but I still wanted to get > this Jython/Swing version finished enough to release in any case. > Basically I'm one person working on this with very limited time, and I > think I have successfully proved the concept that you can have Morphs and > Prototypes under Python and in a somewhat Pythonic-way (if there was > indeed any doubt). Now I have to think about where to go next, whether to > continue on the pink plane Python/Squeak merger roadmap I outlined on > edusig a while back, (*) > http://mail.python.org/pipermail/edu-sig/2006-April/006226.html > or whether to move into the blue plane (again) (**) > with other approaches to software environments for learning. > > The biggest thing driving me right now is having several educational > applications I want to port from Delphi, so I'll make some sort of > decision one way or another, even if just deciding plain Jython or Python > without prototypes is easier. :-) > > --Paul Fernhout > (*) Separately I've also considered some of the network debugging issues > I've outlined there as well, but decided to hold off on them as a priority > for security issues, but that could also be a big next step for PataPata. > (**) Definition of Alan Kay's pink and blue planes and comments on > tensions from them for developers (an interesting read for anyone on a > development oriented mailing list. :-): > http://lists.squeakfoundation.org/pipermail/squeak-dev/2003-February/052648.html From DSayre at wiley.com Tue Aug 8 01:25:43 2006 From: DSayre at wiley.com (DSayre at wiley.com) Date: Mon, 7 Aug 2006 19:25:43 -0400 Subject: [Edu-sig] Daniel Sayre is out of the office. Message-ID: I will be out of the office starting 08/07/2006 and will not return until 08/10/2006. I will have limited access to email while I am away. If you require immediate assistance, please contact Lindsay Murdock (lmurdock at wiley.com). From pdfernhout at kurtz-fernhout.com Tue Aug 8 03:33:34 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Mon, 07 Aug 2006 21:33:34 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D7BF55.5020007@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> Message-ID: <44D7E9EE.1040906@kurtz-fernhout.com> Andreas- Thanks for trying PataPata and sending the informative bug report. Reading through the stack trace, there is an error when loading WorldCommonTK.py (a file defining supporting prototypes for the TK based GUI). But (see below) the error doesn't seem to happen when importing the file, just when doing introspection for the source of a function. As a first guess I suspect the Windows Python version of inspect.py you are using is somehow having trouble parsing the WorldCommonTK.py file on your XP system for some reason, but Python itself can parse it. So again as a first guess it seems like some sort of tab-to-space problem, or line ending translation, or character encoding issue, or something like that, where inspect.py might use a different approach than Python compiler itself. Or maybe a garbled file? My focus on 2.03 was for Jython support, so I'd be curious if you would have the same problem trying to run the previous version (2.02). If both have the same problem (no source loaded) then that may mean it is an issue with something about the configuration of Python under XP you are using which I would have to adjust for (I test under 2.3 for Debian). I just tested under 2.4 under Debian and it starts also so it might be a Windows issue? Sorry I don't have a clearer answer for you; we don't have XP here, just 2000 under VMWare, and I just now tested under that with Python2.3 and it works OK. I know from Francois Schnell's testing in June that previous versions a while back did run under Windows XP, so it would be something I more recently introduced (perhaps with the metaclass function handling?) == more details on my reasoning and other ideas to try That error by itself is directly from a line of code I see I unintentionally left in when I was testing today. Sorry. Remove the line that says "raise" in Prototypes.py on line 49 which reraises a caught exception. I normally catch that exception, but temporarily reraised it to resolve something related to Jython packaging at the last minute and forgot to take it out, sorry. Normally, that exception should not be generated in the first place though unless something else is wrong, so if the system otherwise works, that line should be mostly harmless. Removing that "raise" line might let it start if there are no other issues, however there would at best remain a deeper problem (probably making a new error). If it is failing there, that also means there is likely another problem where it is not finding or parsing the source code for a method it is loading from the file. Assuming the source code for the file being loaded was correctly parsable (and I suspect it is not for some reason), you might get a GUI, but you could not look at the source for some or all methods. (Think of it as almost like some variation of "sources file not found" in Squeak. :-) But, normally that code should never have an exception in the first place -- it is mainly a holdover from supporting the wx version where you can type in code from the command line and the source is not stored in a file and so inspect does not work for such functions. So while the "raise" should ideally be removed, I don't think that will fix the entire problem. The stack trace part: File "C:\PataPata_v203\PataPata_v203\WorldCommonTK.py", line 794, in define_prototype class SimpleSequenceLayoutManager: is probably most significant here, as "SimpleSequenceLayoutManager" is likely the prototype being defined at the time in "WorldCommonTK.py". The rest of the stack below that is calling the metaclass function (world.buildPrototype) to define a prototype instead of a class and that in turn is calling library functions to look up the source of a function. (And frankly, I feel that source introspection code is a little shaky in Python, unlike Smalltalk. :-) That prototype only has one function ("layoutMorphs"). However, if the code is not indented properly, likely loading that file would fail in some other way as an import even if that exception you saw was not raised. I just replicated a similar error (but not identical) by going into that function and adding one extra space before "layout = {}". I got: Traceback (most recent call last): File "PataPata.py", line 18, in ? PataPataViewerTK.main() File "/home/pdf/workspace/PataPata/PataPataViewerTK.py", line 24, in main world = PrototypeClass(None).newPrototypeFromFile("WorldExampleTK.py") File "/home/pdf/workspace/PataPata/Prototypes.py", line 513, in newPrototypeFromFile newPrototype = worldModule.define_prototype(self.world) File "/home/pdf/workspace/PataPata/WorldExampleTK.py", line 9, in define_prototype world.worldLibraries = [world.newWorldFromFile("WorldCommonTK.py")] File "/home/pdf/workspace/PataPata/Prototypes.py", line 521, in newWorldFromFile result = newWorld.newPrototypeFromFile(fileName) File "/home/pdf/workspace/PataPata/Prototypes.py", line 508, in newPrototypeFromFile worldModule = imp.load_module(moduleName, file, pathname, description) File "/home/pdf/workspace/PataPata/WorldCommonTK.py", line 803 layout = {} ^ IndentationError: unindent does not match any outer indentation level But it is not identical (instead failing earlier on "imp.load_module", not later after import when actually running "worldModule.define_prototype" as in the stack trace you supplied), which makes me think the source file on your machine might parse correctly, but the problem is possibly more likely that inspect.py can't then parse it back from the file for some reason. Still, that is just an educated guess. Another much less likely possibility is that you accidentally edited and saved WorldCommonTk.py or that it got garbled in transmission? Unlikely I know, and I would think that would result in a shorter stack trace like the one I included above. You could try just doing a: $python WorldCommonTK.py from the command line. It should actually do nothing (except parse itself and return a shell prompt), which would be a good sign that the file was valid. You could also try runnign tabnanny.py. Here is how I ran it just now under GNU/Linux: $ python /usr/lib/python2.3/tabnanny.py -v WorldCommonTK.py 'WorldCommonTK.py': Clean bill of health. Tabnanny should come with your python distribution. So, maybe it will turn up something? Between seeing whether the problem under XP is also in 0.2.02 and whether your machine's copy of WorldCommonTK.py is correctly indented and parsable (I use Eclipse with PyDev and that flags such errors right in the editor), that should bring us closer to resolving this issue. You could also try the new Jython version if you have a JVM 1.4.2 or later installed. :-) Working under Jython would at least indicate the source files on your machine were somewhat reasonable and not garbled, and that the problem was more likely in the Python2.4/XP side. Thanks again for trying it and the bug report. If you keep getting snarled perhaps we can chat over Skype, irc, or something. --Paul Fernhout Andreas Raab wrote: > Hi Paul - > > When I try to run 0.2.3 (Python 2.4 on Windows XP) all I get is an > indentation error (stack dump below). Any ideas? > > Cheers, > - Andreas > > --------------------------------------------------------------------- > > PataPata Version 0.2.03 > Using 'Alt' as the meta key to drag Morphs and get menus > You can change this key in the file "options.py" > If you use ALT under GNU/Linux and it drags windows instead of morphs, > then you need to change a setting in your desktop settings. > Loading world file: WorldExampleTK.py from C:\PataPata_v203\PataPata_v203 > Loading world file: WorldCommonTK.py from C:\PataPata_v203\PataPata_v203 > Traceback (most recent call last): > File "PataPata.py", line 18, in ? > PataPataViewerTK.main() > File "C:\PataPata_v203\PataPata_v203\PataPataViewerTK.py", line 24, > in main > world = PrototypeClass(None).newPrototypeFromFile("WorldExampleTK.py") > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 514, in > newPrototypeFromFile > newPrototype = worldModule.define_prototype(self.world) > File "C:\PataPata_v203\PataPata_v203\WorldExampleTK.py", line 9, in > define_prototype > world.worldLibraries = [world.newWorldFromFile("WorldCommonTK.py")] > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 522, in > newWorldFromFile > result = newWorld.newPrototypeFromFile(fileName) > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 514, in > newPrototypeFromFile > newPrototype = worldModule.define_prototype(self.world) > File "C:\PataPata_v203\PataPata_v203\WorldCommonTK.py", line 794, in > define_prototype > class SimpleSequenceLayoutManager: > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 641, in > buildPrototype > prototype.setAttributeWithoutSideEffects(propertyName, value) > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 576, in > setAttributeWithoutSideEffects > value = PrototypeMethod(self, value) > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 47, in __init__ > source = inspect.getsource(function) > File "C:\Python24\Lib\inspect.py", line 563, in getsource > lines, lnum = getsourcelines(object) > File "C:\Python24\Lib\inspect.py", line 555, in getsourcelines > else: return getblock(lines[lnum:]), lnum + 1 > File "C:\Python24\Lib\inspect.py", line 538, in getblock > tokenize.tokenize(ListReader(lines).readline, BlockFinder().tokeneater) > File "C:\Python24\Lib\tokenize.py", line 153, in tokenize > tokenize_loop(readline, tokeneater) > File "C:\Python24\Lib\tokenize.py", line 159, in tokenize_loop > for token_info in generate_tokens(readline): > File "C:\Python24\Lib\tokenize.py", line 229, in generate_tokens > raise IndentationError( > IndentationError: unindent does not match any outer indentation level From pdfernhout at kurtz-fernhout.com Tue Aug 8 05:11:26 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Mon, 07 Aug 2006 23:11:26 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> Message-ID: <44D800DE.5010708@kurtz-fernhout.com> Kirby- Thanks for your note (and also the previous ones when I went on vacation, which I did read but replies got lost in the homecoming shuffle). I didn't reply to those (e.g. how important categories are in practice in Smalltalk as a cultural convention thing), but to sum them up it without the details it might revolve around your use of "SmallTalk" versus "Smalltalk". Using the first signifies having been part of that community for any length of time. :-) Now, that capitalization of "SmallTalk" may actually most sense, because by the communities own common coding conventions it is actually the proper way to capitalize it if you think of it as two words "Small" and "Talk" -- it just isn't done though, as the community tends to think of Smalltalk as one unique concept as another sort of convention. So, is that capitalization consistent? Or inconsistent? Anyway, the deeper issue is that every community has conventions (even when they may not make total sense), and you made that point yourself a while back I believe, in the context of how library implementation are a big part of defining the syntactic and semantic conventions of a language (especially one like Python with open source libraries), and it's hard to swim against that tide. And any new effort runs into difficulties when it attempts to swim against the conventions (or leap into the blue plane instead of stay on the pink plane in Alan Kay's metaphor), requiring not a 10% improvement to be acceptable, but more like a 10X improvement. In the case here, looking at the prototype related issues (not Python with classes, for which your comment holds better) for a beginner, the Smalltalk (or really Self) way would a single obvious option when you need to get something and the getting has a side effect (just put code in a "x" slot). But in Python, you either need to have a function activate on using a property or you need (as PataPata supports) some way of specifying a side effect before or after a setting operation. That makes for a few points of confusion for any learner (or implementor. :-) You sort of handwave away the "property" function as a rarely used necessary evil for Python, but needing such thing often in Prototypes is one of the big points here about elegance. And in writing code to wrap widgets, having side effects on property access turns out to be common thing in order to keep state consistent with a widget which may not always send changed events for various internal fields (and side effects on setting even more so). In the PataPata case using side effects defined in properties breaks the link between the name of a property and the name of the code that says what it does plus you have to need to know to look at property definitions to see how these are defined. So, you are left as a learner with a basic confusion given that functions in a prototype system are also properties -- so if a piece of code is used related to a property, is it called directly on the property get or is is intended to be used as a function with parens? Now there are ways to resolve this, but they require more intellectual effort and tracking usage and such. So, one more layer of difficulty between you and the code -- and the whole point of prototypes is to bring a person closer to the code IMHO. I think that is one ugly thing about PataPata I saw more clearly after my vacation. But another issue is from a debugging standpoint that you can override __getattr__ in Python (as PataPata does) but it is not clear whether the caller intends to use the result to send a message or as a value, and that can have a big impact on how to handle messages (e.g. when to call "doesNotUnderstand" in Smalltalk and perhaps invoke other delegation code, where there is a big and obvious difference from accessing the code for a method, say, to copy it, and actually using it). Anyway, these are finer points, but they bear on issues of conceptual elegance and ease of learning. Granted, people can learn the exceptions and deal with ambiguity or create new conventions, and a language like Python has so many great features that may overcome these issues for Prototypes, but they are still in some sense conceptual warts in this case for using it to do prototype based systems. Then again, maybe there is a cleverer approach I have not seen yet. I really need to reflect more on how I have used and elaborated on the notion of properties and see how much of it still makes good sense on reflection, and also consider your points here further. The parens on a constructor never bothered me. :-) But coming from Smalltalk (not Self) it is a big deal you can't have multiple constructors. with different names --Paul Fernhout kirby urner wrote: > On 8/7/06, Paul D. Fernhout wrote: > >> On the other hand, after doing even more coding in Python, I'm really >> missing even more all the Smalltalk development tools, a situation which >> PataPata hopes to improve a little, of course, at some continued effort >> which looks somewhat boring/daunting at this point. :-) Venting a little, >> there is also not much one can do about the fact that the Smalltalk >> syntax >> and message passing approach (to me) is clearer for prototype based >> systems than Python's parenthetical functional notation. This is because >> in Smalltalk or Self, "self x" to get and "self x:" to set are clearly >> messages and not possibly variable accesses, unlike Python's "self.x", >> "self.x = value", "self.x()", "self.x(value)" permutations adding >> possibility for confusion (i.e. should self.x to get a property value be >> used with equals or as a function call?). > > > Although you've rarely deigned to engage in nitty gritty syntax > discussions when I bring them up, in response to your "judgments", > I'll risk it again: > > What's the confusion in this case? > > self.x, as seen from the inside, is a property, or a function's > address, likewise a property (looking at it sideways, not loading with > arguments or void, and calling with parentheses [1]). > > But usually we'd write obj.x or some such, as if querying an object > from outside. val = obj.x is "getting" whereas obj.x = val is > "setting". > > Outside, obj.x specifies a property, whereas use of parentheses > signifies invoking a callable i.e. a method in the object's hierarchy > __dict__s someplace (perhaps way up high in some tree). > > The major exception: if we want functions to operate even when the > user gets to use plain old property syntax -- so providing is the > purpose of the infamous property() function (which Arthur thinks was > brough over just to make inferior Java coders feel at home -- and he's > not the only one who thinks that). > > If there's ambiguity in Python, it's in __init__ and __call__ both > being invoked by the same syntax (a pair of parentheses). I haven't > made a complete study of all the ways to confuse myself about this > issue, but what experiments I *have* run indicate a rational sense of > operator precedence, i.e. you have to __init__ something before > there's something to even __call__. > > Kirby > > PS: I expect this'll be rejected from patapata-discuss but I'm > echoing the CC as a matter of courtesy. > > [1] A. Martelli talks about this distinction in his discussions about > Ruby. That reminds me of something I posted in wwwanderers.org > recently -- I'll copy here to edu-sig. > > From pdfernhout at kurtz-fernhout.com Tue Aug 8 06:03:28 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Tue, 08 Aug 2006 00:03:28 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D800DE.5010708@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> Message-ID: <44D80D10.8000405@kurtz-fernhout.com> Sorry, that first paragraph should read: ... Using the first signifies [NOT] having been part of that community for any length of time. :-) Now, that capitalization of "SmallTalk" may actually [MAKE THE] most sense, because by the [community's] own common coding conventions it is actually the proper way to capitalize it if you think of it as two words "Small" and "Talk" ... --Paul Fernhout From francois.schnell at gmail.com Tue Aug 8 09:42:41 2006 From: francois.schnell at gmail.com (francois schnell) Date: Tue, 8 Aug 2006 09:42:41 +0200 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D7BF55.5020007@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> Message-ID: <13a83ca10608080042q600b8c1gf9ccbd3739580ff0@mail.gmail.com> On 08/08/06, Andreas Raab wrote: > > Hi Paul - > > When I try to run 0.2.3 (Python 2.4 on Windows XP) all I get is an > indentation error (stack dump below). Any ideas? > > Cheers, > - Andreas Hello, Just for a quick feedback I just downloaded this version on a XP SP2 box running Python 2.4.1 and I didn't encounter indentation errors: When I l run PataPata.py it launches WorldExampleTK.py nicely (I haven't tried the Jython version yet) francois > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060808/45e7428c/attachment.htm From ajsiegel at optonline.net Tue Aug 8 14:33:26 2006 From: ajsiegel at optonline.net (Arthur) Date: Tue, 08 Aug 2006 08:33:26 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D7E9EE.1040906@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> <44D7E9EE.1040906@kurtz-fernhout.com> Message-ID: <44D88496.5020300@optonline.com> Paul D. Fernhout wrote: >Andreas- > >Thanks for trying PataPata and sending the informative bug report. > > I have run into what I think is a "bug" in tokenize.py when it confronts mixed line endings in a module. Tried to get some feedback on python-list but no one bit. I would check your line endings to see that they are consistent. Art From ajsiegel at optonline.net Tue Aug 8 15:05:42 2006 From: ajsiegel at optonline.net (Arthur) Date: Tue, 08 Aug 2006 09:05:42 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> Message-ID: <44D88C26.1070604@optonline.com> kirby urner wrote: >The major exception: if we want functions to operate even when the >user gets to use plain old property syntax -- so providing is the >purpose of the infamous property() function (which Arthur thinks was >brough over just to make inferior Java coders feel at home -- and he's >not the only one who thinks that). > > Not exactly what Arthur thinks, because Arthur tried to cast to discussion about properties *not* as a language design issue, but as an issue of understanding of the language's design - feeling that more was read into the introduction of properties (by myself included, initially) than was intended by it. What you haven't said in your reference here and before to Martelli's post about Ruby and the relevance of it to properties is that it was I who pointed you to it, and specifically because you had pointed to the authority of Martelli's Nutshell for your interpretation of the intent of properties, and I felt that Martelli's post about Ruby was some authority for the fact that you were misinterpreting him. Art From kirby.urner at gmail.com Tue Aug 8 16:48:34 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 8 Aug 2006 07:48:34 -0700 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D88C26.1070604@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D88C26.1070604@optonline.com> Message-ID: On 8/8/06, Arthur wrote: > What you haven't said in your reference here and before to Martelli's > post about Ruby and the relevance of it to properties is that it was I > who pointed you to it, and specifically because you had pointed to the > authority of Martelli's Nutshell for your interpretation of the intent > of properties, and I felt that Martelli's post about Ruby was some > authority for the fact that you were misinterpreting him. > > Art Yes, you pointed me to it. Relevant to this discussion I think because he points out the two ways of mentioning a function in Python: (1) without parentheses, in which case it refers you to its type and location (but it doesn't actually *do* anything at that point) (2) with parentheses, in which case you're invoking it to do its work (job) >>> class Quirky: def __init__(me, a='a'): me.val = a def somefunkyfunction(me_or_should_I_say_self): print me_or_should_I_say_self.val >>> thething = Quirky() # __init__ >>> thething.somefunkyfunction > >>> Quirky.somefunkyfunction >>> thething.somefunkyfunction() a Paul seems to find this confusing, i.e. he doesn't like that functions become like inert properties (attributes, fields) if you forget to invoke them. They tell you who they are. The issue of whether wrapping functions to look like properties is moral and wholesome is more what I thought you and I were investigating. I assumed you felt not, that this was signature of Java's moral corruption invading pristine Python. I argued the need on purely practical grounds, suggesting we needn't worry about morality at this low level. For those on edu-sig who may be learning Python: the builtin property function wraps setter and getter functions to make them accessible through obj.x syntax i.e. you'll be triggering callables in setting and/or getting x. You could think of this as "moderation" as in "moderated group." There's some coded oversight or bureaucracy in the system, not necessarily visible to the casual reader, that your use of the objects may trigger behind the scenes (e.g. a moderator will get your post to her inbox, and have to approve it before it goes into the permanent archive). However, this behavior is not really new with the property syntax. Python had already long supported such as __getattr__ and (later) __getattribute__ (new-style classes), meaning property syntax has always had the ability to trigger code. This PEP goes over some of the relevant design level thinking, however refers to a proposal that has not actually been implemented http://www.python.org/dev/peps/pep-0213/ Kirby From kirby.urner at gmail.com Tue Aug 8 16:58:21 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 8 Aug 2006 07:58:21 -0700 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D80D10.8000405@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> Message-ID: On 8/7/06, Paul D. Fernhout wrote: > Sorry, that first paragraph should read: > > ... Using the first signifies [NOT] having been part of that community for > any length of > time. :-) Now, that capitalization of "SmallTalk" may actually [MAKE THE] > most > sense, because by the [community's] own common coding conventions it is > actually the proper way to capitalize it if you think of it as two words > "Small" and "Talk" ... > > --Paul Fernhout Yeah, sort of got that. Hadn't meant to imply any insider status re sm community or anything, just that I'd gotten some professional help with it a long time ago, when trying to do a first pass on the Fuller Archive (later moved from BFI to Stanford, rendering the question moot for the time being). However, I have had many hours in an intimate setting with Kay himself, and so am not shy about stating what I think were his clearly expressed views e.g. (a) we haven't yet done enough to empower children (adults abuse their authority by dumbing it all down too much) and (b) we should have killed off Smalltalk long ago, but people since Kay have generally been too stupid to come up with a better language (victims of (a)), with maybe the exception of Guido. With PataPata, it seems you're unhappy with Python being a crystal clear implementation of a simple paradigm, and want to schmoo it into something for which its ill-suited, but which Self and/or Smalltalk may handle quite well. You'd like to ruin Python in other words. Or so it sounds to me. But I don't worry about it, as I know Guido well enough to know he's ruthless about keeping Python on track, at least through this 2.x series. But maybe he'll have a mid-life crisis and decide we should all be learning Smalltalk instead. Kirby From tonyt at logyst.com Tue Aug 8 21:31:55 2006 From: tonyt at logyst.com (Tony Theodore) Date: Wed, 9 Aug 2006 05:31:55 +1000 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) Message-ID: >== testing wanted > >Any "Smoke Test" level (e.g. does it run at all for you?) feedback on >trying PataPata under Jython 2.2 on various Mac/Win/GNULinux Just downloaded and installed Jython 2.2, it starts up (very slowly) and mostly seems to work, however the xturtle doesn't work and there's significant lag in most actions. As a matter of interest python 2.3.5 and 2.5b2 both work very well, but 2.4.3 raises the indentation error reported earlier. I'm running WinXP SP2. Regards, Tony From pdfernhout at kurtz-fernhout.com Wed Aug 9 00:03:23 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Tue, 08 Aug 2006 18:03:23 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: Message-ID: <44D90A2B.7050108@kurtz-fernhout.com> Tony- Thanks for the tests. So, you got the same error on just one platform. Maybe an interaction of that version and perhaps line endings like Arthur suggests? Yes, xturtle is not in the Jython version as it is a library written for TK by someone else (Gregor Lingl) -- though in theory it could be ported (not sure how much work for someone). Sorry, I should have mentioned that somewhere. I also have a 3D turtle of our own I might put in there down the road (when I finish porting it from Delphi). And yes, I too think the Jython version is sluggish in several ways, compared to TK. Some of it might be how I am using a glass pane for some events, or might be some other issues. I'm assuming the dispatching approach I use is not the culprit (as not much is being done by the prototypes yet other than passign through some limited data). Definitely sluggish in redrawing when you drag; I tried to improve on that for quite a while with yields and sleeps and so on, but could not get it to work better. Hopefully mucking around some more with other approaches with Swing could fix some of that? --Paul Fernhout Tony Theodore wrote: >>== testing wanted >> >>Any "Smoke Test" level (e.g. does it run at all for you?) feedback on >>trying PataPata under Jython 2.2 on various Mac/Win/GNULinux > > > Just downloaded and installed Jython 2.2, it starts up (very slowly) > and mostly seems to work, however the xturtle doesn't work and there's > significant lag in most actions. > > As a matter of interest python 2.3.5 and 2.5b2 both work very well, but > 2.4.3 raises the indentation error reported earlier. I'm running WinXP > SP2. > > Regards, > > Tony > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > From pdfernhout at kurtz-fernhout.com Wed Aug 9 00:06:13 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Tue, 08 Aug 2006 18:06:13 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <13a83ca10608080042q600b8c1gf9ccbd3739580ff0@mail.gmail.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> <13a83ca10608080042q600b8c1gf9ccbd3739580ff0@mail.gmail.com> Message-ID: <44D90AD5.8050302@kurtz-fernhout.com> Francois- Thanks for testing under 2.4.1. Tony got some verions of Python to work, but 2.4.3 did not, so looks like some specific interaction of the source file and the inspect.py libraries. I did not realize minor python versions would make such a difference -- though I think inspect.py is probably less a priority item than other core Python libraries. --Paul Fernhout francois schnell wrote: > On 08/08/06, Andreas Raab wrote: > >> >> Hi Paul - >> >> When I try to run 0.2.3 (Python 2.4 on Windows XP) all I get is an >> indentation error (stack dump below). Any ideas? >> >> Cheers, >> - Andreas > > > > Hello, > > Just for a quick feedback I just downloaded this version on a XP SP2 box > running Python 2.4.1 and I didn't encounter indentation errors: > > When I l run PataPata.py it launches WorldExampleTK.py nicely > > (I haven't tried the Jython version yet) > > francois From pdfernhout at kurtz-fernhout.com Wed Aug 9 00:16:19 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Tue, 08 Aug 2006 18:16:19 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D88496.5020300@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> <44D7E9EE.1040906@kurtz-fernhout.com> <44D88496.5020300@optonline.com> Message-ID: <44D90D33.8040401@kurtz-fernhout.com> Arthur- Thanks for the suggestion. I used hexedit to look at the WorldCommonTK.py file and there were no 0x0d characters (cr). There were only 0x0a characters (new line). So, at least that file is consistent. But I'll keep looking (or maybe find a Python program that checks this for me?) Maybe I should write a checker using PataPata as a test... :-) --Paul Fernhout Arthur wrote: > Paul D. Fernhout wrote: > > >>Andreas- >> >>Thanks for trying PataPata and sending the informative bug report. >> >> > > I have run into what I think is a "bug" in tokenize.py when it confronts > mixed line endings in a module. Tried to get some feedback on > python-list but no one bit. > > I would check your line endings to see that they are consistent. > > Art From pdfernhout at kurtz-fernhout.com Wed Aug 9 00:53:54 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Tue, 08 Aug 2006 18:53:54 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> Message-ID: <44D91602.5020607@kurtz-fernhout.com> kirby urner wrote: > However, I have had many hours in an intimate setting with Kay > himself, and so am not shy about stating what I think were his clearly > expressed views e.g. (a) we haven't yet done enough to empower > children (adults abuse their authority by dumbing it all down too > much) and (b) we should have killed off Smalltalk long ago, but people > since Kay have generally been too stupid to come up with a better > language (victims of (a)), with maybe the exception of Guido. That sounds about right. But to be clear by "killing smalltalk" he doesn't mean Smalltalk is worse than any other language, just that he wants something even better. It goes along with is mantra of "burn the disk packs" and also, as I reflect on it, points to one of the sources of conflict in the squeak community -- between those wanting Squeak to be a good free Smalltalk implementation, and Alan Kay wanting it to be a stepping stone to something much better. The problem was though -- that without a relatively stable base, all the blue plane efforts got bogged down in the mud of silly little problems any commercial Smalltalk long ago resolved (e.g. even things like not having underscore for use in names -- mapping to a return arrow instead). In this video: " Alan Kay: The Computer Revolution hasn't happend yet. Keynote OOPSLA 1997" http://video.google.com/videoplay?docid=-2950949730059754521 Alan Kay talks about the pink plane and the blue plane of thought. Simplifying, pink plane activities are exploring agreed on spaces (like playing a game by its rules) and blue plane activities are pushing boundaries (like making up new rules for a game). This previously mentioned link relates to that: http://lists.squeakfoundation.org/pipermail/squeak-dev/2003-February/052648.html From there: "To have a tension between the "Pink Plane" and the "Blue Plane" in Squeak, you would need a "Blue Plane" to begin with, and there isn't one. No, the tension is only on the Squeak list, where for years now people crop up requesting blue plane things (blue plane widgets, child windows and separate system windows, small deliverable images, too name some). These requests often turn the Pink Planers red, and so provoke a genuinely hostile (or more often, condescending) response. There have been some valiant attempts in the Blue plane during that time, but the general direction that Squeak has taken for the last few years has taken us further away from having a Blue Plane, to make it more like eToys, to have an image more and more addled with osteo-pink-plane-itus. Make Morphic *more* like eToys?! Oh how little that idea appeals. The Pink Plane is a plain old pain." I quote it because it reminds me of your comments on list sometimes. :-) And this is not to disagree with your points on using Python as-it-is for education -- in the sense that you remain absolutely correct that Python is a great system and people can learn a lot using it just the way it is in the manner it was primarily intended (as something better than C or shell scripting for those who already know C syntax and shell scripting). Or, because of its continued success over the past decade, that is is now a good first language for programmers (for reasons relating to community and libraries and popularity, as well as other good things about it). Now this is not to say any specific camp is right or wrong -- just to point out the difference in hopes, dreams, fears, and so on by various groups. The thing about lists and projects is they often become self-selecting -- people come to them, see the main line of philosophy or effort is in a different direction, and go onto other lists. Also, in a sense, relative to a Smalltalk Pink Plane of experimentation, Python has explored a relatively blue plane of reliability and modularity and so on. So labelling of planes are relative to expectations and communities. > With PataPata, it seems you're unhappy with Python being a crystal > clear implementation of a simple paradigm, and want to schmoo it into > something for which its ill-suited, but which Self and/or Smalltalk > may handle quite well. You'd like to ruin Python in other words. Or > so it sounds to me. But I don't worry about it, as I know Guido well > enough to know he's ruthless about keeping Python on track, at least > through this 2.x series. But maybe he'll have a mid-life crisis and > decide we should all be learning Smalltalk instead. I guess you could put it that way? Although perhaps one person's "ruins" are another person's "foundation"? :-) Ten plus years is a long time to stick with any one project. And sounds like, at the very least, Guido must be pretty jaded with "Monty Python" jokes by now. :-) So what is the "Pink Plane" for Python? Some interaction of Guido and the (self-selecting) community will define that. Anyway, with PataPata so far I have tried to stick with just adding a library to Python, although now I do use a metaclass function (inspired by suggestions on this list from Ian). Prothon shows the difficulties of mucking with the Python syntax. Still, I think you are right that I am using Python in a way that is somewhat at odds with the main paradigm of Python development (class based vs. prototype, emphasizing functions versus properties). Will that lead to reconciliation or divergence? I'm not sure, but I do know this -- one the big issues that Guido must wrestle with as a language designer with Python are that its fundamental syntax is not extendable in a way that Smalltalk's can be. We already see that with various additions related to collection iteration (Python needs PEPS and hacking and committees for things that are literally just one method to write in Smalltalk). And unlike using Forth or making Lisp macros, Smalltalk-style language extensions (e.g. making one up: "inject:into:except:limit:") are fairly easy to understand and consistently use and debug. I think I am now exploring the limitations related to properties and prototypes in Python-as-it-is. So, will Python4000 (not 3000!) have such ideas in it? Who knows. Should I try to put them there -- probably not for me (too much politics)! But, Python's worth playing with in any case, even just to prototype some ideas in a way that is accessible to a lot of people. So, most PataPata work so far then isn't education about Python, but it is education (including self-education) with Python. :-) --Paul Fernhout From kirby.urner at gmail.com Wed Aug 9 01:56:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 8 Aug 2006 16:56:25 -0700 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D91602.5020607@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> Message-ID: On 8/8/06, Paul D. Fernhout wrote: > That sounds about right. But to be clear by "killing smalltalk" he doesn't > mean Smalltalk is worse than any other language, just that he wants > something even better. Yes. And thanks for the Blue vs. Pink Plane jargon, which I hadn't tuned in (so outside of being inside the Smalltalk community I am, no kidding). > Now this is not to say any specific camp is right or wrong -- just to > point out the difference in hopes, dreams, fears, and so on by various > groups. The thing about lists and projects is they often become > self-selecting -- people come to them, see the main line of philosophy or > effort is in a different direction, and go onto other lists. Right. And I'm wanting there to be fruitful cross-language-community collaboration at what I call (and you needn't) the 'gnu math' level, which is my Blue Plane (except maybe it's a hexapent, and red & green). Python has a reputation for friendliness, I think born of native confidance that this is a very good language. Nothing to defend really, so let's be friends. And with that out of the way, how might we collaborate? Doesn't have to be about tweaking Python. Could be about how to use Python in schools, in homes, in whatever educational setting. Because the Blue Plane isn't about changing Python's innards, potentially (it'll likely move from system language to system language -- whatever's fast and adds cool capabilities). Let's just agree it's about the big picture curriculum map, lots of languages already in play, lots of worthwhile threads to explore and lots of pitfalls. Trying to fight some Smalltalk versus Python battle would be a pitfall, a stupid waste of time. So far, I haven't experienced it happening, so I think we're OK. Kay's focus on the $100 laptop is entirely consistent with such as Ubuntu, wherein Python comes bundled, and whereon Squeakland runs if it wants to. > Ten plus years is a long time to stick with any one project. And sounds > like, at the very least, Guido must be pretty jaded with "Monty Python" > jokes by now. :-) So what is the "Pink Plane" for Python? Some interaction > of Guido and the (self-selecting) community will define that. > There's been a Pink Plane for a long time, which I'd call the PEP plane, and the measured steps between versions. Python advances, but isn't in need of an overhaul. If there's an overhaul happening, its in the system language rewrites: Java's and C#'s. Guido has a longstanding interest in CP4E, and this could occupy him as BDFL full time pretty much. How will Python Nation help people grow in their powers over technology, the tools of our time? How might we be effective as catalysts for positive gains? These are serious and important questions, yet need have nothing to do with tweaking the syntax. > Anyway, with PataPata so far I have tried to stick with just adding a > library to Python, although now I do use a metaclass function (inspired by > suggestions on this list from Ian). Prothon shows the difficulties of > mucking with the Python syntax. > I say don't muck with it. It's already a winning formula. > Still, I think you are right that I am using Python in a way that is > somewhat at odds with the main paradigm of Python development (class based > vs. prototype, emphasizing functions versus properties). Will that lead to > reconciliation or divergence? I'm not sure, but I do know this -- one the > big issues that Guido must wrestle with as a language designer with Python > are that its fundamental syntax is not extendable in a way that > Smalltalk's can be. We already see that with various additions related to > collection iteration (Python needs PEPS and hacking and committees for > things that are literally just one method to write in Smalltalk). And > unlike using Forth or making Lisp macros, Smalltalk-style language > extensions (e.g. making one up: "inject:into:except:limit:") are fairly > easy to understand and consistently use and debug. > Python will never be Smalltalk. People really should keep studying Smalltalk, a dead language, and a good one. But maybe not if they're not dead language specialist (which many of us are). > I think I am now exploring the limitations related to properties and > prototypes in Python-as-it-is. So, will Python4000 (not 3000!) have such > ideas in it? Who knows. Should I try to put them there -- probably not for > me (too much politics)! But, Python's worth playing with in any case, even > just to prototype some ideas in a way that is accessible to a lot of > people. So, most PataPata work so far then isn't education about Python, > but it is education (including self-education) with Python. :-) > > --Paul Fernhout I think there's opportunity cost in making your interface with the Python Community be just PataPata. I say keep that sandcastle, AND try other approaches in parallel. Because I think there's a Blue Plane you haven't touched yet, and would enjoy playing on. We wouldn't be on opposite sides, more the way we are now, as I'm programmed to somewhat automatically defend Python syntax. There's just nothing wrong with it. Kirby From pdfernhout at kurtz-fernhout.com Wed Aug 9 15:36:57 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 09 Aug 2006 09:36:57 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D7BF55.5020007@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> Message-ID: <44D9E4F9.905@kurtz-fernhout.com> Andreas- Looking more into this issue (and based on testing feedback here) I see a couple if things: That the tokenize.py module has been under recent development: http://sourceforge.net/tracker/index.php?func=detail&aid=1224621&group_id=5470&atid=105470http://sourceforge.net/tracker/index.php?func=detail&aid=1224621&group_id=5470&atid=105470 [ 1224621 ] tokenize module does not detect inconsistent dedents from: http://www.mail-archive.com/pudge at lesscode.org/msg00050.html The source versions for tokenize.py are at: http://svn.python.org/view/python/trunk/Lib/tokenize.py Though it looks like only minor changes in the latest version. And the version before that introduced this test. Looking carefully in WorldCommonTK.py, there are two lines in the file in that class ( SimpleSequenceLayoutManager) which have extra space at the end before the carriage return. I think that is perfectly legal Python (though sloppy of me perhaps) but I'm wondering if the specific version (2.4.3) of Python you are using has a bug in the tokenizer.py in handling it? So, a few more things to try based on previous tests (thanks to people who tested): So you could remove trailing space on these two lines: Line 834: width = panel.width - panel.borderwidth * 2 - self.sidePadding * 2 Line 859: lengthUsed += self.betweenMorphSpacing * (len(visibleMorphs) - 1) And see if that makes a difference. You could also modify tokenize.py on your machine to generate a better exception with a line number where the error is. I haven't tried this, but something like: raise IndentationError( "unindent does not match any outer indentation level") would become something like: raise IndentationError("unindent does not match any outer indentation level around line %d" % lnum) That would at least help pinpoint the textual line tokenize.py does not like. Just to get running under Windows, if there was another later windows installer for 2.4, you could try upgrading to Python 2.4.4 (the Python 2.4 I have on my Debian machine is 2.4.4c though I don't use it by default, which apparently also works with the code according to my own testing). However, looks like the Windows installer from the Python site is only 2.4.3. http://www.python.org/download/releases/ You could try 2.5 beta maybe? Or downgrade to Python 2.3.5? Or install them side by side? But I'm not sure how much trouble having two Pythons installed under Windows might get you into, or what else might go wrong with different versions. But even if that worked for you, that isn't a great solution, as it means anyone using the latest Windows installer is out of luck. Anyway, I'll keep looking at other possibilities too. --Paul Fernhout Andreas Raab wrote: > Hi Paul - > > When I try to run 0.2.3 (Python 2.4 on Windows XP) all I get is an > indentation error (stack dump below). Any ideas? > > Cheers, > - Andreas > > --------------------------------------------------------------------- > > PataPata Version 0.2.03 > Using 'Alt' as the meta key to drag Morphs and get menus > You can change this key in the file "options.py" > If you use ALT under GNU/Linux and it drags windows instead of morphs, > then you need to change a setting in your desktop settings. > Loading world file: WorldExampleTK.py from C:\PataPata_v203\PataPata_v203 > Loading world file: WorldCommonTK.py from C:\PataPata_v203\PataPata_v203 > Traceback (most recent call last): > File "PataPata.py", line 18, in ? > PataPataViewerTK.main() > File "C:\PataPata_v203\PataPata_v203\PataPataViewerTK.py", line 24, > in main > world = PrototypeClass(None).newPrototypeFromFile("WorldExampleTK.py") > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 514, in > newPrototypeFromFile > newPrototype = worldModule.define_prototype(self.world) > File "C:\PataPata_v203\PataPata_v203\WorldExampleTK.py", line 9, in > define_prototype > world.worldLibraries = [world.newWorldFromFile("WorldCommonTK.py")] > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 522, in > newWorldFromFile > result = newWorld.newPrototypeFromFile(fileName) > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 514, in > newPrototypeFromFile > newPrototype = worldModule.define_prototype(self.world) > File "C:\PataPata_v203\PataPata_v203\WorldCommonTK.py", line 794, in > define_prototype > class SimpleSequenceLayoutManager: > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 641, in > buildPrototype > prototype.setAttributeWithoutSideEffects(propertyName, value) > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 576, in > setAttributeWithoutSideEffects > value = PrototypeMethod(self, value) > File "C:\PataPata_v203\PataPata_v203\Prototypes.py", line 47, in __init__ > source = inspect.getsource(function) > File "C:\Python24\Lib\inspect.py", line 563, in getsource > lines, lnum = getsourcelines(object) > File "C:\Python24\Lib\inspect.py", line 555, in getsourcelines > else: return getblock(lines[lnum:]), lnum + 1 > File "C:\Python24\Lib\inspect.py", line 538, in getblock > tokenize.tokenize(ListReader(lines).readline, BlockFinder().tokeneater) > File "C:\Python24\Lib\tokenize.py", line 153, in tokenize > tokenize_loop(readline, tokeneater) > File "C:\Python24\Lib\tokenize.py", line 159, in tokenize_loop > for token_info in generate_tokens(readline): > File "C:\Python24\Lib\tokenize.py", line 229, in generate_tokens > raise IndentationError( > IndentationError: unindent does not match any outer indentation level From kirby.urner at gmail.com Wed Aug 9 17:11:56 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 9 Aug 2006 08:11:56 -0700 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D9E4F9.905@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> <44D9E4F9.905@kurtz-fernhout.com> Message-ID: > Anyway, I'll keep looking at other possibilities too. > > --Paul Fernhout > Footnote: I get indentation errors going back from 2.5 to an earlier 2.4 as well -- nothing to do with PataPata. Kirby From ajsiegel at optonline.net Wed Aug 9 17:32:30 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 09 Aug 2006 11:32:30 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D7BF55.5020007@gmx.de> <44D9E4F9.905@kurtz-fernhout.com> Message-ID: <44DA000E.7040101@optonline.com> kirby urner wrote: >Footnote: I get indentation errors going back from 2.5 to an earlier >2.4 as well -- nothing to do with PataPata. > > When I was fixing the line-ending mess I had created (when working on Textpad (which was ultimately the reason I switched to SciTE, where the line-ending issue is visible and flexibly handled (because SciTE is designed to be cross-platform from the ground up))) - I found that tabnanny. py came into play. Doesn't solve anything, but is more informative in tracking down issues. Probably the right tool for this job. Art From ajsiegel at optonline.net Wed Aug 9 19:33:51 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 09 Aug 2006 13:33:51 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44D91602.5020607@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> Message-ID: <44DA1C7F.4040207@optonline.com> Paul D. Fernhout wrote: > >I quote it because it reminds me of your comments on list sometimes. :-) >And this is not to disagree with your points on using Python as-it-is for >education -- in the sense that you remain absolutely correct that Python >is a great system and people can learn a lot using it just the way it is >in the manner it was primarily intended (as something better than C or >shell scripting for those who already know C syntax and shell scripting). > I think that unnecessarily narrowly defines its intentions. I knew (and know) no C, and knew a little shell scripting only from the days before a GUI interface to the Net. I have fought the "Python is Easy" meme relentlessly - thinking it sure to establish the conditions for failure for those approaching it with that expectation. Nonetheless I am world famous ;) for being an old dog having learned a substantial new trick - programming - via Python. I think there are reasons I have been successful with Python where I would not have been with Smalltalk or Squeak or this or that. Some of those reasons are probably peculiar to my own sensibilities, and some are not - they are in the design of the language. I like the word "naivety" in this context - knowing we are talking about a quite intentional naivety. It is related to "easy", but it is different from it. You seem in your discussion to be immune to any appreciation of this aspect of Python. But I think that anyone trained in the Kay constructivist school would tend to be For all the soothing talk about empowerment, there are the geniuses and the other. We - the geniuses - need a language designed to provoke the other It's taste on the palate is not the concern Here, it is different . So I see no great productive energy resulting from a collaboration. We talk about practicality over purity, not blue panes and pink planes. People *make their livings* doing Python. Without grant funding. I would never had been interested in it were it otherwise. Art From kirby.urner at gmail.com Wed Aug 9 20:30:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 9 Aug 2006 11:30:13 -0700 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44DA1C7F.4040207@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> Message-ID: On 8/9/06, Arthur wrote: > Paul D. Fernhout wrote: > > > > >I quote it because it reminds me of your comments on list sometimes. :-) > >And this is not to disagree with your points on using Python as-it-is for > >education -- in the sense that you remain absolutely correct that Python > >is a great system and people can learn a lot using it just the way it is > >in the manner it was primarily intended (as something better than C or > >shell scripting for those who already know C syntax and shell scripting). > > > I think that unnecessarily narrowly defines its intentions. I knew (and > know) no C, and knew a little shell scripting only from the days before > a GUI interface to the Net. Yes, inadequately mirrors the actual demographics. When Python first came out, maybe C programmers were the primary target, but a lot of us were used to an interactive shell environment from xBase (i.e. dBase II, III, IV, V, Clipper, FoxPro). So when MSFT purchased FoxPro to compete with Borland (FoxPro for Windows versus Borland's dBase V), and started going OO, that pushed a huge cadre into the OO paradigm'd who'd hardly even heard of Smalltalk, let alone coded in it. What was cool about FoxPro is it didn't go the VB route and just let programmers use precoded objects from libraries (the OCX, later ActiveX model). VBers were kept blissfully igorant of OO at the level of actually defining classes (with VB .NET, that's all changed). The FoxPro development team (Ken Levy etc.), on the other hand, injected a full OO framework into xBase, including with Visual Tools of the type Paul here exults about in commercial grade Smalltalk (which I've dabble with too, in trial versions). Like VIsual Studio, but earlier, and in some ways better (actually, I find Intellisense frustrating at times -- but I know there's a way to turn it off). Regarding Smalltalk, I'd have never given it a look, were it not for Hal Hildebrand, most probably (a very special case history, having to do with needing to press some cybernetic advantages inherent in the Fuller documents cache aka chronofile). Nor was I anything more than a C hobbiest, having dabbled in Turbo C and Turbo Pascal (I know more of both by this time, thanks to cracking a lot of Linux books, and thanks to Bernie in NZ respectively). I'm not the only person making a living as an xBase coder, who discovered Python. VFPers don't find Python unfamiliar. It's like *easy* -- in a way Arthur might allow (because we're already coders, and so already know that "programming is hard" -- "hard fun" as the Papertists say). There's a whole database building framework, called Dabo, congenial for xBasers looking to transfer their skills (the trajectory of the project's founders), http://dabodev.com/ In my case, since I already have VFP skills, I used Python to branch out into new areas: 3D computer graphics (studies started in VFP); object databases (Zope/Plone and/or Patrick O'Brien's wild and open thing http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/o/O=Brien:Patrick.html ). It's mostly the computer graphics stuff I write about on edu-sig, but filling in with more lexically oriented lesson plans, for building skills up to that level (3D ain't the easiest easy thing, solutions in 4D either). > I have fought the "Python is Easy" meme relentlessly - thinking it sure > to establish the conditions for failure for those approaching it with > that expectation. Nonetheless I am world famous ;) for being an old dog > having learned a substantial new trick - programming - via Python. I > think there are reasons I have been successful with Python where I would > not have been with Smalltalk or Squeak or this or that. Some of those > reasons are probably peculiar to my own sensibilities, and some are not > - they are in the design of the language. I like the word "naivety" in > this context - knowing we are talking about a quite intentional > naivety. It is related to "easy", but it is different from it. You seem > in your discussion to be immune to any appreciation of this aspect of > Python. But I think that anyone trained in the Kay constructivist school > would tend to be For all the soothing talk about empowerment, there are > the geniuses and the other. We - the geniuses - need a language > designed to provoke the other It's taste on the palate is not the concern > > Here, it is different . Yeah, because after years of OO in commerce and industry, it's not this big elitist thing any more to have mastery of that jargon. Smalltalkers were impressive, in their day and age, to the great unwashed. But no longer. In and of itself, just knowing OO is not a mark of anything special. Knowing a dead language implementation of the paradigm is also not a turn on for young people. I'm guessing that's parly why Kusasa put Python *after* Squeakland, because it's easier to dive into the guts of Python (in a system language) than into the guts of Squeak (a dead language ville), even though both reveal source to several basement levels/degrees. The motivation to learn the C family (C/C++/C#) is still high, Java too. If you're doing "pull curriculum" (not "push"), you need a draw, a motive. Python is a draw to older, more mature adults, who know Smalltalk has no future except as a dead language (something Kay knows, so all is harmonious at the top level). > So I see no great productive energy resulting from a collaboration. We > talk about practicality over purity, not blue panes and pink planes. > Collaboration between whom? The fact is, "asynchronous updating of worlds" immersion software is where the big gamers are going. Will we have Python bindings or no? Under the hood, there's a lot of OO happening. What's the future for Twisted? For Zope? Actually, I think you're right: the Smalltalk community is mostly silent on any issues we care about. The educationists among them (Squeak community) has allies and friends, but the commercial sector Smalltalkers have no skills that we need. > People *make their livings* doing Python. Without grant funding. I > would never had been interested in it were it otherwise. > > Art > People make a living in Smalltalk too (and in FORTRAN, COBOL...). Anyway, I'm a lot in agreement with many of your points. That happens too. Kirby From francois.schnell at gmail.com Thu Aug 10 02:49:51 2006 From: francois.schnell at gmail.com (francois schnell) Date: Thu, 10 Aug 2006 02:49:51 +0200 Subject: [Edu-sig] [Video-MIT] Mitchel Resnick on "creative education" with computers / technologies Message-ID: <13a83ca10608091749j620702a1gb239af3cbe82111c@mail.gmail.com> The Video (30 mn presentation, 30 mn questions): http://mitworld.mit.edu/video/372/ There's also a short demo of Scratch in the video (a Lego-like visual programming language for kids): http://llk.media.mit.edu/projects.php?id=783 francois -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060810/fea23edf/attachment.html From pdfernhout at kurtz-fernhout.com Thu Aug 10 03:29:30 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 09 Aug 2006 21:29:30 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> Message-ID: <44DA8BFA.2060003@kurtz-fernhout.com> kirby urner wrote: > When Python first came out, maybe C programmers were the primary > target, but a lot of us were used to an interactive shell environment > from xBase (i.e. dBase II, III, IV, V, Clipper, FoxPro). > > So when MSFT purchased FoxPro to compete with Borland (FoxPro for > Windows versus Borland's dBase V), and started going OO, that pushed a > huge cadre into the OO paradigm'd who'd hardly even heard of > Smalltalk, let alone coded in it. > > What was cool about FoxPro is it didn't go the VB route and just let > programmers use precoded objects from libraries (the OCX, later > ActiveX model). VBers were kept blissfully igorant of OO at the level > of actually defining classes (with VB .NET, that's all changed). Just for reference, I seriously learned OO from ZetaLisp+Flavors on a Symbolics, as the TekTronix Smalltalk machine in the lab was hogged and APDA (Apple) Smalltalk was too slow and limited on the Mac Plus. Before I seriously got into Smalltalk years later, I learned the dBase compiler "Clipper" for an information management project, and that was phenomenal for the time. The best thing about Clipper for our use was that you could ship "live" code in the application -- that is, while Clipper was fast compiler, it could also interpret some of an applications code loaded from a database. For a time, I used ObjectWorks (a VisualWorks precursor) to prototype stuff I recoded in Clipper. After Clipper, I started doing some stuff in FoxBase, which I agree was really neat for the time and PC equipment. Not being able to ship end-user modifiable code like I could with Clipper haunted me for a long time after that in my own later work in C++ or Delphi (or VisualWorks) -- one reason I liked Python and Squeak (this was before open source ideas of just ship the whole source took root). Python definitely has a comfortable Clipper or FoxPro sort of feel. Not sure completely what defined that -- interactive turnaround? useful error messages? the syntax? And I agree that helps with its adoption. My phrasing was perhaps not clear. I think Python does have many benefits now for beginners or non-C users, but I feel its early success and continued (relatively) easy acceptance by industry derives from looking a lot like C without the braces. But I'll agree that feeling like dBase in terms of libraries or interactivity or some other aspect was a big win too. --Paul Fernhout From pdfernhout at kurtz-fernhout.com Thu Aug 10 05:22:42 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 09 Aug 2006 23:22:42 -0400 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> Message-ID: <44DAA682.4080903@kurtz-fernhout.com> kirby urner wrote: > On 8/9/06, Arthur wrote: > Yeah, because after years of OO in commerce and industry, it's not > this big elitist thing any more to have mastery of that jargon. > Smalltalkers were impressive, in their day and age, to the great > unwashed. But no longer. In and of itself, just knowing OO is not a > mark of anything special. Knowing a dead language implementation of > the paradigm is also not a turn on for young people. While you can repeat "Smalltalk is a dead language" until as many people believe it as "Iraq had WMD" (i.e. too many :-), but Smalltalk remains quite a live language, thought smaller in adoption than many others and often a "secret weapon". http://www.cincomsmalltalk.com/blog/blogComments?entry=3331578947 "Old" might be more appropriate. :-) Or maybe, "mismanaged", or "less popular". Unfortunately (for me :-), general consulting rates have fallen for it from the heydays of the mid 90s when I did it commercially, as have the number of new gigs. Still, VisualWorks Smalltalk as a cross-platform stable environment useful for mission critical software where performance matters has never been surpassed IMHO (although Python comes closer every day, but will never match it for syntax reasons IMHO). While there are other Smalltalks, http://wiki.cs.uiuc.edu/VisualWorks/Overview+of+different+implementations+of+Smalltalk the flagships in the mid 1990s, mainly VisualWorks, and secondly Digitalk, determined much of the landscape. Hard to even remember what that landscape was like before so many free and open source projects became popular, like Python (but also CommonLisp variants, Ruby, Perl, even GCC, and so on). Rumor has it VisualWorks missed its biggest chance when Sun wanted to license it for their set top box work, and PPD wanted too much in run-time fees, and so Sun turned to what became Java instead. The chance not being to make money from Sun, but instead to have forestalled the development of Java. Short-sighted greed. Sigh. If VisualWorks had been open sourced instead of sold for a song to Cincom, I maintain ParcPlace/Digitalk/ObjectShare might still be a going concern with consulting, the way, say, the Zope Corp is. And surprise, I (and others) advocated that in 1999. :-) See my post here: http://groups.google.com/group/comp.lang.smalltalk/browse_thread/thread/3b3a67ab0ab756e0/6d08b70aa9f6aea1?lnk=st&q=&rnum=1&hl=en#6d08b70aa9f6aea1 One snippet of my post there back in 1999 (which also pertains to Python): =================== "Because of these factors, I think there is much residual anger at ObjectShare. After all, it is unpleasant to think about how the most advanced development tool and OO language on the planet has been mismanaged and mismarketed into relative obscurity over the past twenty years. It has caused real suffering to programmers forced to take work in other (painful) languages like C++ or Java or VB. Nonetheless, Smalltalk is still in my opinion the best OO language (although Python is easier to learn for C/C++ coders and more modular). I've been having more success lately getting people to consider Python for places where Smalltalk might be the better tool and price is not a factor. The reason for this has to do with the license and availability of source (and smaller download footprint). It also (sadly) has to do with it looking like C (although I see no reason Python could not run on a Smalltalk VM as a combines Smalltalk/Python product).(*) It also has something to do with the community surrounding Python. This is a bunch of people who are using Python every day in mission critical applications (like web servers, data reformatting, spacecraft launch operations, industrial facilities, and complex simulations). They make sure it works, and have a great set of add-ons. This is all enhanced by the fact that Python supports modules well (each with its own namespace). Squeak has much potential, but is not used as much (at all?) in mission critical applications. It also has a license that makes it awkward to use in embedded systems (GPL actually is better in that respect). VW NC has potential, but will forever be hampered by not being a completely open solution (unlike Squeak or Python). The same thing happened with the ST/V free release, where without an open VM, interest in working with it has been marginal (compared to Squeak). I think it will be difficult if not impossible for ObjectShare to overcome this two decade legacy by conventional marketing tactics. A name change is not sufficient. My suggesting to ObjectShare is that since the bulk of their revenues (73%) is now from service, make VisualWorks open source under a Python-like license. http://www.opensource.org Then users will be assured of indefinite support of the product. Source code escrow as many big users have is not adequate because no one at a client's staff can keep current with the source. ObjectShare will be in a great position to increase its service revenue, and achieve growth and investors like Red Hat. Right now, VW has a huge support burden by being multi-platform (keeping engineering expertise available for all those ports). An open source VW will remove a huge cost for ObjectShare, as well as result in more ports to other systems, all increasing the value of the ObjectShare brand for services and custom development. " ================== Well, too bad ParcPlace/Digitalk/ObjectShare did not follow that advice and chose to go out of business instead. http://wiki.cs.uiuc.edu/VisualWorks/ObjectShare Cincom (the purchaser of the VisualWorks asset) benefited from that decision, as likely did their customers, though I think in balance the Smalltalk community as a whole suffered. As I see it, the Smalltalk community wanted (and still wants) an open source "VisualWorks" which was cross-platform and stable enough to build neat stuff on (including the in 1999 under development "Van Gogh" system, a native widget integration portable across Windows, Mac OS and X Windows/UNIX). But what they got was an antiquated and problematically-licensed Squeak with various limitations and instabilities (which the Squeak community is still struggling with, although admirably succeeding anyway). Squeak unfortunately diverted attention from the truly free GNU Smalltalk which was both better engineered and better licensed IMHO, and which otherwise might have gone a lot further without Squeak and Disney stealing the limelight. So anyway, if Smalltalk is a "wounded" language, I'd say it has little to do with the language or leading (proprietary) implementations, and more to do with mismanagement and missing the "open source" wave by the key players. And with several commercial versions out there, a free versions had a harder time getting traction. Python defined itself, and was always free, so in that sense, the Python community never had a diversion of attention the Smalltalk community did. Anyway, I don't want to drift too far off-topic. Suffice to say, if there is any truth to Smalltalk being a "dead" language, it has more to do with companies mismanaging the technology, and not the technology itself. Python has been well managed as a labor-of-love by someone who cares about it for itself (Guido) and as a community Python could ride the free and open source software wave without distracting conflicts with "commercial Python vendors". Squeak tried, but was both a latecomer and not completely free, and had some other difficulties (including for a long time a core team with priorities other than stability or supporting industrial use). So, for those reasons, I think it quite valid for Python people to look to Smalltalk and its successors (like Self) for ideas, both about technology and about education -- even if one accepts that a new free stand-alone Smalltalk (even a better Squeak, and even if pushed by an entity with deep pockets) will have a tough climb gaining adoption at this point in time. And in my own case, the commercial viability of Python (i.e. because it is free, has a Java version, looks a lot like C, etc.) also makes it of value to learn and use for consulting because at the same time it is "not too shabby" a system. :-) And similar factors make Python a good language for people to teach with -- both easy to get started with and potentially a useful job skill. I think the one thing that might resurrect Smalltalk in widespread popularity is a "killer app" which is open ended and scriptable. Croquet may well be that. So we'll have to see. For me, when I went to port Squeak to the Newton (never finished for a variety of reasons) http://lists.squeakfoundation.org/pipermail/squeak-dev/2000-June/002775.html what happened was that I discovered NewtonScript instead and became enamored of the Prototype-oriented NewtonScript programming I was doing to try to support porting a Class-oriented Squeak system (NewtonScript was an offspring of Self), and I have been dissatisfied with plain Smalltalk and classes ever since. :-) And that dissatisfaction flows over to a dissatisfaction with Python with classes, which PataPata has been an experiment to see if a prototype programming paradigm is a good idea in a Python setting. Anyway, I think I've said enough on this for now, so back to programming. I have a (limited, quirky, experimental) Smalltalk parser and interpreter and related (wx) development tools I wrote in Python in 2004 lying around on my hard disk, and with this discussion I'm thinking of adding it to PataPata just for fun. It generated Pointrel triads for a backend (quirky, but my thing) and I'm experimenting with changing it over to spitting out Python code. And example of its output from today: =========================================== |x y z| x := 1. y := 0.5. z := x sin + y cos; rounded + 1.0 sin; rounded. ------------------------------------------- x = LiteralNumber(1) y = LiteralNumber(0.5) _t1 = send_unary(x, "sin") _t2 = send_unary(y, "cos") _t3 = send_unary(y, "rounded") _t4 = send_binary(_t1, "+", _t3) _t5 = send_unary(LiteralNumber(1.0), "sin") _t6 = send_unary(LiteralNumber(1.0), "rounded") z = send_binary(_t4, "+", _t6) return z =========================================== Not sure if I will proceed on integrating that or not. It's not going to be that well performing of course, but perhaps might be useful for learning Smalltalk syntax on the Python platform. Might not be that bad under Jython if it some day compiled Smalltalk to Java source or bytecodes though, although there is already Bistro for that: http://www.ddj.com/dept/java/184405578 But Jython and Self-like hybrid on the JVM with 3D etc. might make a nice synergy. Jython to suck people in and Smalltalk-ish syntax and tools to do really big projects in. :-) Here is something I wrote on that in 1996 (was that really ten years ago? my how time flies). "Squeak and the Babel of programming languages" http://www.create.ucsb.edu/squeak/9612.html#Letter94 So perhaps it might be possible to rethink that now with Python or Jython playing the coordinating role and delivering the core object model and VM interface. On the other hand, this dialog here over the past few months has made it clear how languages are very tied to communities (and libraries), so just learning the syntax or how to use it under another system may not be popular (except as a mind stretching exercise). Still, "mind stretching" is what a lot of education is about. :-) --Paul Fernhout (*) In 2004, L. Peter Deutsch worked on Python on VisualWorks as "pycore": http://webpages.charter.net/allanms/2004/08/you-dont-tug-on-supermans-cape.html From kirby.urner at gmail.com Thu Aug 10 08:49:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 9 Aug 2006 23:49:41 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DAA682.4080903@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> Message-ID: Hey Paul, thanks for the lengthy narrative, which I found quite fascinating. I want to clarify that when I speak of Smalltalk as a "dead language" that's not out of disrespect or dislike. It's really OK to be a dead language, and I think what I mean by that is it's no longer anyone's ego child, not championed by the living. It still may be running mission critical applications however (like a container shipping service) and will need to be maintained and/or rewritten. Sometimes the easiest thing is to just keep knowledge of the language alive, like we do Latin, other even more ancient languages (Etruscan to some extent). An elite class of specialist learns enough to maintain existing applications. But there's no great vision of the future, no expectation that the language will be making big leaps. It's not "alive from the inside" the way Python currently is, still taking shape and all that. That's not a great tragedy or anything. Languages are mortal, just as we are. Now it sounds from your posts that you still nurture the hope for some killer app to rescue SmallTalk (sorry for the CamelCase). I wouldn't say that's impossible. Computer languages are still relatively new on the scene (we're only a couple generations from Rear Admiral Grace Hopper), and maybe there's this phenomenon of "language revival" where a once-considered-dead language magically resurrects and starts a whole new life. I hear Prague is a big center for FoxPro. If Microsoft kills the Fox, maybe it'll pick up in Prague, some two and a half centuries hence. Dunno. What if. In the case of Python, I don't know yet how deeply you've appreciated its intricacies, or are you still skating on the thin ice of "looks a lot like C". The resemblance is somewhat superficial. Have you at least read Martelli's book, Python in a Nutshell? I'm guessing you have, but if you haven't I recommend it. And go to his talks. All about Design Patterns. Stuff a Smalltalker might grok. At that level, the OO implementation language is kind of so what. Python expresses the ideas cleanly, but if you have a different shorthand, and want to talk Design Patterns in Smalltalk-oriented study groups, why not? I think we all need a "vacation language" by which I mean a current fascination, not so load bearing as to be called "work" let alone "mission critical." For me, that'd be J these days. It used to be Python (which I came to through Java). Also: ActionScript. When you talk about Prototyping, coming from Self, that sounds a lot like how the Flash people talk. At Saturday Academy, you find a lot of young people diving headfirst into Flash. Flash and Shockwave might be two of the biggest hits with a lot of teenagers soon (actually, try Gamemaker), provided we succeed in our efforts to seriously reschool in some critical path dimensions. I think if you don't really respect Python, you won't really be happy putting many eggs in this basket. And I don't see it as my job or even mission to "win you over" in any way. You're a very intelligent adult, capable of doing your own brainwashing. However, I do cop to seeing you as unproductive/ineffective at the Pink level in the Python Community. If you were serious about syntax changes, you'd be writing PEPs, but you've already declared your aloofness from politics (PEPs get political -- you have to defend them on comp.lang.python and places). At the Blue level, I think you could beneficially focus on language-independent content, so long as you want to hang in the Python community without really having an in-depth appreciation for Python. What were kids supposed to DO with PataPata. What's the curriculum? How do star systems and navigation fit in? When do we start talking about topology? How does the calculus figure in? Kay talks quite a bit about teaching calculus. These are the kinds of questions I face daily when writing a Pythonic mathematics curriculum. It's not that much about syntax -- although I must say I was pleased with that fib.next()/fib.next() convergence, using generators, to 1/phi or tau or whatever (.618...). I think the idea of generators, coding them, will help with the idea of limits, as the post-Newtonian French conceived them (L'Hopital et al). Kirby From ajsiegel at optonline.net Thu Aug 10 14:37:50 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 10 Aug 2006 08:37:50 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> Message-ID: <44DB289E.9080703@optonline.com> kirby urner wrote: >With PataPata, it seems you're unhappy with Python being a crystal >clear implementation of a simple paradigm > Is Python really a clear implementation of a simple paradigm? I assume you are meaning OO. Or if that is not is what you are saying here, it is what I keeping here you say, nonetheless. That, it seems to me, is a box you are placing it in - your own OO dogma - and in fact relates back to our differeing views - at least at one point - about the purpose of properties. You seemed to me to have seen properties as Python retracing a step that it had missed in implementing OO orthodoxy, and I saw it as Python being Python, going its merry way, being unconcerned about OO orthodoxy, and it was exactly in placing properties in this OO box that you were misintepreting them, and as an educator, miseducating about them. When I began to study Lisp a bit, I found myself quite comfortable in drawing from my Python background. Didn't Ian Bicking say here recently that he does not see OO as central to how he understands and uses Python? Or was I misinterpreting? It continues to seem to me that as much as you are an advocate for Python, you see it through a filter of your own experience and background and expectations that makes it less than what it is. Which is maybe why it is more clear to you than to me. Placed in a nice regular ployhedra Python is soothing to you. Having less experience, background and expectations and leaving in a irregular, non-metric world of projective geometry perhaps there is something to my feeling that I see Python as it is more clearly than do you. Art From pdfernhout at kurtz-fernhout.com Thu Aug 10 15:38:07 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Thu, 10 Aug 2006 09:38:07 -0400 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> Message-ID: <44DB36BF.6050108@kurtz-fernhout.com> Kirby- Thanks for the insightful comments, including about "vacation" languages, which I agree with. You make a good point distinguishing conventional content (astronomy, higher mathematics) from programming issues. I guess my answer there is handwaving about the potential for a PataPata version of HyperCard as an authoring environment. Now that is still just mostly vaporware at this point, though closer to substance than it might look in some ways, i.e. you can already plop down buttons which do things or open other windows, but it is vaporish in the sense of not being done with the elegance of HyperCard. So, in that sense PataPata falls in the category of trying to make a Python GUI easier to build than existing methods. Perhaps it fails at that still (no documentation, probably bugs, perhaps performance issues, and so on), but anyway that's part of that hope. Of course, I could do even more handwaving about things that are just twinkles on the horizon about large projects being easier to maintain and debug using prototypes like Self and integrated development tools similar to Smalltalk, but clearly PataPata isn't showing that yet (i.e. prototypes add another layer of clutter right now including strange error messages, and there is no integrated debugger). Still, I don't think your characterization about "respect" or "aloofness" are accurate, and (as in the past with such comments I usually let slide) are perhaps verging on twising thigns in an ad hominen fashion. One can "respect" a language while still being critical of aspects of it. In the syntax case, I am continuing to point out that Smalltalk's keyword syntax (e.g. "Point x: 10 y: 20" versus "Point(10, 20)" ) produces code where all arguments are labeled and so it is easier to read and understand. As I see it, that is a fact independent of licensing, object models, breadth of libraries, size or quality of community, or engineering reliability of the VM, and so on (areas which Python often has as an advantage over any specific Smalltalk). From a programmer point of view, thinking about maintaining a large system, that one syntactical point is a big win for Smalltalk and the Smalltalk culture. And, while I can label arguments in calling Python, as in: >>> class Point: ... def __init__(self, x, y): ... pass ... >>> Point(x=10, y=20) that call is syntactically noisier (i.e. more special characters) than the Smalltalk-ish: Point x: 10 y: 20. and clearly not how the bulk of Python code is written. And in Python, the internal names of variables are then exposed into the API and then effectively fixed in concrete and immune to easy refactoring (without introducing another layer of variables in the function). Also, for beginners, Smalltalk code is then easier to understand (assuming the beginner isn't already steeped in a BASIC or C or Java or Scheme background). And programmers spend most of their time reading code, not writing it. When I refer to "politics" I don't mean mainly in the PEP sense -- but more in the issue of seriously (not this level of chatter) lobbying for a language feature to people who are embedded in a C mindset against a community norm, where there is unlikely to be change and is likely to be outright misunderstanding and hostility (as Prothon etc. show). And where the language (Python) succeeds in large part exactly because of its syntax looking familiar to the majority of existign programmers (i.e. like C). And I am still unable to bring across the massive decrease in effectiveness and immersion I feel programming a large system in Python compared to Smalltalk, like were when an exception is raise I cannot immediately change the code and then carry on from the point in the program where the exception was generated, without either restarting the entire application. Granted, with some user added code (including from more general approaches I've posted to the Jython list) one can get a specific Python application to the point where you can reload some libraries and continue after an exception with modified code but usually only from the top of the event loop (so, redoing a menu selection or button press for example). I have used that in making one medium sized application in Jython. But that level of support is both dependent on active user modification of their program to have such hooks and limited in how well it works and certainly is not in the same level of what almost all Smalltalk support. And it is not the community norm. So, if you have a big application to develop, Smalltalk wins on this front as well. But also from a learner point of view, I think Smalltalk also wins here -- and beginner's programs often have many errors, and a restartable debugger can help them understand what is going on, keeping them in the flow of their program more than starting their application over every time an error shows up, or worse, trying to put in by hand all sorts of specific code for module reloading which often does not work as expected. Now, I have repeatedly agreed Python has many benefits over Smalltalk. You've mentioned some. I'll add, Python is more "prototypish" than Smalltalk because it uses a dictionary instead of fixed slots for variables (at least, usually) which make it easy to specialize instances of a class. Python as a major language had a free license unlike the major Smalltalk dialects (i.e. there are free Smalltalks but they are still marginal to the overall Smalltalk community, Squeak being the closest to an exception). Python has had its internal complexity managed fairly well, compared to say, Squeak because of having namespace from the start. I like indentational syntax (though not as much as keywords). Metaclass support is nice. And so on. So I'm not "disrespecting" Python that I can see, though I am being critical of specific areas where Smalltalk has long been superior. I am saying Smalltalk as a phenomenon has these two major benefits over Python -- common use of keywords and common use of a restartable debugger -- and then also saying Self or NewtonScript as a phenomenon shows the value of prototype oriented programming. And then I have spent person-months trying to do stuff to add to Python in these directions in various ways, so, both talk and action. So, that is why I don't see the "spin" you are putting on this as "disrespect" or "aloofness" is accurate. Anyway, back to more coding. --Paul Fernhout kirby urner wrote: > Hey Paul, thanks for the lengthy narrative, which I found quite > fascinating. > > I want to clarify that when I speak of Smalltalk as a "dead language" > that's not out of disrespect or dislike. > > It's really OK to be a dead language, and I think what I mean by that > is it's no longer anyone's ego child, not championed by the living. > It still may be running mission critical applications however (like a > container shipping service) and will need to be maintained and/or > rewritten. > > Sometimes the easiest thing is to just keep knowledge of the language > alive, like we do Latin, other even more ancient languages (Etruscan > to some extent). An elite class of specialist learns enough to > maintain existing applications. > > But there's no great vision of the future, no expectation that the > language will be making big leaps. It's not "alive from the inside" > the way Python currently is, still taking shape and all that. > > That's not a great tragedy or anything. Languages are mortal, just as > we are. > > Now it sounds from your posts that you still nurture the hope for some > killer app to rescue SmallTalk (sorry for the CamelCase). I wouldn't > say that's impossible. Computer languages are still relatively new on > the scene (we're only a couple generations from Rear Admiral Grace > Hopper), and maybe there's this phenomenon of "language revival" where > a once-considered-dead language magically resurrects and starts a > whole new life. I hear Prague is a big center for FoxPro. If > Microsoft kills the Fox, maybe it'll pick up in Prague, some two and a > half centuries hence. Dunno. What if. > > In the case of Python, I don't know yet how deeply you've appreciated > its intricacies, or are you still skating on the thin ice of "looks a > lot like C". The resemblance is somewhat superficial. Have you at > least read Martelli's book, Python in a Nutshell? I'm guessing you > have, but if you haven't I recommend it. And go to his talks. All > about Design Patterns. Stuff a Smalltalker might grok. At that > level, the OO implementation language is kind of so what. Python > expresses the ideas cleanly, but if you have a different shorthand, > and want to talk Design Patterns in Smalltalk-oriented study groups, > why not? > > I think we all need a "vacation language" by which I mean a current > fascination, not so load bearing as to be called "work" let alone > "mission critical." For me, that'd be J these days. It used to be > Python (which I came to through Java). Also: ActionScript. > > When you talk about Prototyping, coming from Self, that sounds a lot > like how the Flash people talk. At Saturday Academy, you find a lot > of young people diving headfirst into Flash. Flash and Shockwave > might be two of the biggest hits with a lot of teenagers soon > (actually, try Gamemaker), provided we succeed in our efforts to > seriously reschool in some critical path dimensions. > > I think if you don't really respect Python, you won't really be happy > putting many eggs in this basket. And I don't see it as my job or > even mission to "win you over" in any way. You're a very intelligent > adult, capable of doing your own brainwashing. > > However, I do cop to seeing you as unproductive/ineffective at the > Pink level in the Python Community. If you were serious about syntax > changes, you'd be writing PEPs, but you've already declared your > aloofness from politics (PEPs get political -- you have to defend them > on comp.lang.python and places). > > At the Blue level, I think you could beneficially focus on > language-independent content, so long as you want to hang in the > Python community without really having an in-depth appreciation for > Python. > > What were kids supposed to DO with PataPata. What's the curriculum? > How do star systems and navigation fit in? When do we start talking > about topology? How does the calculus figure in? Kay talks quite a > bit about teaching calculus. > > These are the kinds of questions I face daily when writing a Pythonic > mathematics curriculum. > > It's not that much about syntax -- although I must say I was pleased > with that fib.next()/fib.next() convergence, using generators, to > 1/phi or tau or whatever (.618...). I think the idea of generators, > coding them, will help with the idea of limits, as the post-Newtonian > French conceived them (L'Hopital et al). > > Kirby > > From ajsiegel at optonline.net Thu Aug 10 16:01:49 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 10 Aug 2006 10:01:49 -0400 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DB36BF.6050108@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> Message-ID: <44DB3C4D.4010303@optonline.com> Paul D. Fernhout wrote: >In the syntax case, I am continuing to point out that Smalltalk's keyword >syntax (e.g. "Point x: 10 y: 20" versus "Point(10, 20)" ) produces code >where all arguments are labeled and so it is easier to read and >understand. > That is, IMO, an arbitrary point of view, at best. Touches a particular nerve with me because I went to great trouble in the design of PyGeo to *avoid* the use of keyword arguments, feeling it in fact important that in creating a construction one should be in geometry mindset mode, not programmming mindset mode, and therefore *not* have to be explicit in stating the obvious. See http://pygeo.sourceforge.net/docs/Overview.html#built-in-geometric-intelligence The point is not whether my design is right or wrong, but that I found myself to be using a tool that allowed me to express my design exactly as I wanted to - right or wrong. Would I have had the same right to be wrong using Smalltalk? Art From pdfernhout at kurtz-fernhout.com Thu Aug 10 17:24:16 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Thu, 10 Aug 2006 11:24:16 -0400 Subject: [Edu-sig] Smalltalk syntax benefits In-Reply-To: <44DB3C4D.4010303@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB3C4D.4010303@optonline.com> Message-ID: <44DB4FA0.3080705@kurtz-fernhout.com> Arthur- As a simplification, admittedly a cartoon, most professional mathematicians often care very deeply about a very few things for a long time (where a mathematician might spend ten years thinking about, say, proving Fermat's last conjecture) where they refine a concise notation they understand in a specific problem domain (with some cultural norms perhaps like dX), while most professional programmers need to care somewhat about a lot of things which change from function to function and application to application (where in a year a programmer might work on thousands of functionsand tens of applications, and perhaps read the intent of hundreds of thousands of function calls). That is why, for example, when I read code written by mathematicians they feel it totally acceptable to use, say, "rd" everywhere in a small program, when I as a professional programmer would prefer "rainfallPerDay_mm", because to me I experience their program as just one little day trip on a lifelong journey, and life is too short to spend hours puzzling over cryptic variable names or mathematical items in simulations used without units (and often inconsistently in hard to find bugs where the code works but is wrong). I think this issue of argument labeling may fall into the same category of variable naming. Sure, if you maintain one program only and it is short, or if you spend a lot of time in one problem domain, then not labeling arguments so anyone can read them may be acceptable. But if you have to read and understand the intent of literally tens of thousands of function calls per year across dozens of libraries, then writing or reading something like "calc(rd, i)" or in your example "Line(point1,point2)" just does not cut it IMHO. (The Python codebase itself may suffer from something of the same effect in parts.) What about constructors like "Line origin: 10 @ 10 angle: 35 degrees distance: 10 mm" (which is easy to have in Smalltalk syntax) and so on? And I bet you can read what it means not even knowing Smalltalk. Would you rather read: "Line(10, 10, 35, 10)"? Or at best: "Line(Point(10, 10), 35, 10)"? Which is clearer? I think this goes beyond my bias as being experienced using Smalltalk system keyword syntax. Not to be too hard on you or Kirby, but I think it is easy to not see the value of the unfamiliar, and there is a lot functional foo() syntax makes difficult and awkward looking (Lisp, a Python ancestor in a sense, has a bit of this problem too). Again, just because Smalltalk has this and Python does not does not mean I'm saying "use Smalltalk". I'm just saying, how can Python get this feature? Maybe it can't. Then my next thing is, can the two syntaxes live side by side -- a possible area for exploration. --Paul Fernhout Arthur wrote: > Paul D. Fernhout wrote: > > >>In the syntax case, I am continuing to point out that Smalltalk's keyword >>syntax (e.g. "Point x: 10 y: 20" versus "Point(10, 20)" ) produces code >>where all arguments are labeled and so it is easier to read and >>understand. >> > > That is, IMO, an arbitrary point of view, at best. > > Touches a particular nerve with me because I went to great trouble in > the design of PyGeo to *avoid* the use of keyword arguments, feeling it > in fact important that in creating a construction one should be in > geometry mindset mode, not programmming mindset mode, and therefore > *not* have to be explicit in stating the obvious. > > See > http://pygeo.sourceforge.net/docs/Overview.html#built-in-geometric-intelligence > > The point is not whether my design is right or wrong, but that I found > myself to be using a tool that allowed me to express my design exactly > as I wanted to - right or wrong. > > Would I have had the same right to be wrong using Smalltalk? > > Art > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > From ajsiegel at optonline.net Thu Aug 10 17:51:38 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 10 Aug 2006 11:51:38 -0400 Subject: [Edu-sig] Smalltalk syntax benefits In-Reply-To: <44DB4FA0.3080705@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB3C4D.4010303@optonline.com> <44DB4FA0.3080705@kurtz-fernhout.com> Message-ID: <44DB560A.7080803@optonline.com> Paul D. Fernhout wrote: >Arthur- > >I think this issue of argument labeling may fall into the same category of >variable naming. > I think it is a lot deeper than that. I think it about Python being effective in blurring the line between producer and consumer, programmer and non-programmer, which is why it is so effective as - among other things - the glue front-end. And that while for some reason liking to provoke and masquerade as the opposite, *I* am more the progressive because not only do I see this potential in Python as what edu-sig is most significantly about, I've have spent great time and energy in exploring and offering an exploration of that potential. Just so you are aware, I cannot help but seeing the ideas you express and the ideas I see expressed by Kay stuck in this "me programmer/you other" paradigm that to me is regressive, and all the rhetoric otherwise is compensatory for that fact on the ground. We have less need for that kind of rhetoric. Perhaps I am in fact off in the "blue" (in your meaning) yonder here - but I am not yet convinced of it. Art From kirby.urner at gmail.com Thu Aug 10 18:40:11 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 10 Aug 2006 09:40:11 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DB36BF.6050108@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> Message-ID: On 8/10/06, Paul D. Fernhout wrote: > Kirby- > > Thanks for the insightful comments, including about "vacation" languages, > which I agree with. > > You make a good point distinguishing conventional content (astronomy, > higher mathematics) from programming issues. I guess my answer there is Even just basic mathematics. My idea is to boot programming with the simplest of sequences e.g. def addone(n): return n + 1, or thinking in terms of a while True generator (indefinitely extended sequence). Conway's & Guy's The Book of Numbers was an inspiration, but I read Fuller first, coming out of Princeton, so already had the sphere packing ideas. > handwaving about the potential for a PataPata version of HyperCard as an > authoring environment. Now that is still just mostly vaporware at this > point, though closer to substance than it might look in some ways, i.e. > you can already plop down buttons which do things or open other windows, > but it is vaporish in the sense of not being done with the elegance of > HyperCard. So, in that sense PataPata falls in the category of trying to I think HyperCard is a worthy standard to emulate. Yasushi Kajikawa, another synergetics pioneer, did some amazingly artistic work in HyperCard. His theme was how to assemble 5-fold symmetric shapes, like the Platonic icosahedron & dodecahedron, with a minimal set of building blocks or modules. My friend Koski and I used to obsess about the same question (actually, he obsessed about the geometry, I about whether I could understand his results (which I did at the time, wrote and published about)). > make a Python GUI easier to build than existing methods. Perhaps it fails > at that still (no documentation, probably bugs, perhaps performance > issues, and so on), but anyway that's part of that hope. Of course, I > could do even more handwaving about things that are just twinkles on the > horizon about large projects being easier to maintain and debug using > prototypes like Self and integrated development tools similar to > Smalltalk, but clearly PataPata isn't showing that yet (i.e. prototypes > add another layer of clutter right now including strange error messages, > and there is no integrated debugger). I don't expect lone coders to do any more than prototypes. Finished products ready for shipping, backed with technical support, are a team effort. The question is what's the focus? Is it to draw attention to Python's limitations as a professional development environment? I think we need to make a sharp distinction between Python the language, and Python in an environment. I take it as a given (and perhaps I'm being presumptuous) that the environment will improve, as Python savvy matures within commerce and industry. I've seen debuggers more like you talk about demoed at OSCON. Part of why I went into that whole Visual FoxPro (VFP) trip was to reassure you that I know what cushy environments are like. When it comes to drag and drop interface design, simple popup tables with fill-inable properties, hooks to methods, run time debuggers with breakpoints, watch tables... and even I admit, code rewriting on the fly is a *nice* feature. I know Python is dirt poor in other words. But that's a financial thing, not a language thing. As a language, it has nothing to apologize for. Street urchin with to-die-for kung fu. What could be more poetic (or cliche, take your pick). > Still, I don't think your characterization about "respect" or "aloofness" > are accurate, and (as in the past with such comments I usually let slide) > are perhaps verging on twising thigns in an ad hominen fashion. One can > "respect" a language while still being critical of aspects of it. The "aloofness" was with respect to the Pink level, the economy of PEPs and everyday Python percolation. It's the workaday coffee world. The "respect" (lack of?) was more Blue level, as I think you waste time insofar as you don't join me in sharply distinguishing Python the language from issues relating to the level of support Python gets from industry. > In the syntax case, I am continuing to point out that Smalltalk's keyword > syntax (e.g. "Point x: 10 y: 20" versus "Point(10, 20)" ) produces code > where all arguments are labeled and so it is easier to read and > understand. As I see it, that is a fact independent of licensing, object OK, that's a syntax point. For the sake of argument, I'll agree with you: Python is inferior in this way. Does that mean it will ever change? No, these design decisions have already been made and are defining of Python as a language. So is your intent to sort of go "aw shucks, I wish Python were different"? For how long? > models, breadth of libraries, size or quality of community, or engineering > reliability of the VM, and so on (areas which Python often has as an > advantage over any specific Smalltalk). From a programmer point of view, > thinking about maintaining a large system, that one syntactical point is a > big win for Smalltalk and the Smalltalk culture. And, while I can label As a math teacher looking for an interactive way to teach algebra, I have no initial interest in any programmer opinions about maintaining large scale mission critical apps. These opinions don't drive my language selection process. My first question is simply: where is the box where the kid types 2 + 2 and gets back 4. The Scheme people go "How about (+ 2 2)?" and I say "fine, no problem." DrScheme is great, I've never said otherwise. > arguments in calling Python, as in: > >>> class Point: > ... def __init__(self, x, y): > ... pass > ... > >>> Point(x=10, y=20) > that call is syntactically noisier (i.e. more special characters) than the I just can't bring myself to care about this issue. It will never be relevant in my lifetime. Python is one way, Smalltalk is another. That will never change. > And in Python, the internal names of variables are then exposed into the > API and then effectively fixed in concrete and immune to easy refactoring > (without introducing another layer of variables in the function). Also, > for beginners, Smalltalk code is then easier to understand (assuming the > beginner isn't already steeped in a BASIC or C or Java or Scheme > background). And programmers spend most of their time reading code, not > writing it. As a math teacher looking for interactive command line opportunities for my kids, adult students, I again state for the record that I don't care about how most programmers spend most of their time. This is not about just training up programmers. Sure, they matter, and sure, some of my students will grow into such. But at this initial threshold level, I'm just looking for "the dot prompt" (xBase for "shell"). > When I refer to "politics" I don't mean mainly in the PEP sense -- but > more in the issue of seriously (not this level of chatter) lobbying for a > language feature to people who are embedded in a C mindset against a > community norm, where there is unlikely to be change and is likely to be > outright misunderstanding and hostility (as Prothon etc. show). And where > the language (Python) succeeds in large part exactly because of its syntax > looking familiar to the majority of existign programmers (i.e. like C). Right, you're not going to throw your life away trying to make Python look un-C-like. That'd be a waste, I agree. > And I am still unable to bring across the massive decrease in > effectiveness and immersion I feel programming a large system in Python > compared to Smalltalk, like were when an exception is raise I cannot Not meaning to be cruel or uncaring, but your professional experience as a programmer of large systems is of no immediate relevance to me, as a professional curriculum writer working with other gnu math teachers on such as Pythonic mathematics, which begins, as I said, with simple sequences. How will Smalltalk help me with simple sequences, e.g. the triangular and then tetrahedral numbers? That's all I want to know. And the answer I usually get is: first, you must go to a special world called Squeakland. In Python, I just boot IDLE, enter the function, and run it. Oh, so I should have my school go out and buy commercial grade SmallTalk instead? > immediately change the code and then carry on from the point in the > program where the exception was generated, without either restarting the > entire application. Granted, with some user added code (including from > more general approaches I've posted to the Jython list) one can get a > specific Python application to the point where you can reload some > libraries and continue after an exception with modified code but usually > only from the top of the event loop (so, redoing a menu selection or > button press for example). I have used that in making one medium sized > application in Jython. But that level of support is both dependent on > active user modification of their program to have such hooks and limited > in how well it works and certainly is not in the same level of what almost > all Smalltalk support. And it is not the community norm. So, if you have a > big application to develop, Smalltalk wins on this front as well. But also Wins for you. You, Paul, feel the cushiness of commercial Smalltalk is way more ready for the back office than dirt poor street urchin Python, with its forlorn C-like eyes (blink blink). You want people to know what your Lincoln Town Car is like. Heated seats, GPS. > from a learner point of view, I think Smalltalk also wins here -- and > beginner's programs often have many errors, and a restartable debugger can > help them understand what is going on, keeping them in the flow of their Curious: how many hours have you professionally taught other people? Has that been a part of your job description over the years? Did you use Smalltalk in your classes? How did you introduce the topic on the very first day (rough thumbnail will do). These are the kinds of questions I must answer daily as a writer of Pythonic mathematics, oft times on a deadline. > program more than starting their application over every time an error > shows up, or worse, trying to put in by hand all sorts of specific code > for module reloading which often does not work as expected. > > Now, I have repeatedly agreed Python has many benefits over Smalltalk. > You've mentioned some. I'll add, Python is more "prototypish" than > Smalltalk because it uses a dictionary instead of fixed slots for > variables (at least, usually) which make it easy to specialize instances __slots__ was added to help with corner cases where fast access trumps the ready extensibility of a __dict__ (hashtable lookup). That might happen when you need millions of the same type of object, in cellular automata for example. Did you see my Game of Life on a Hexapent by the way, latest addition to my CP4E archive? Python + VPython. These figurate number sequences become polyhedral (triangular to tetrahedral transition). Big focus of Coxeter's, as well as Bucky's. Fibonacci Numbers with generators (we're in the 3rd week already?), with fib.next()/fib.next() taking us towards limit tau, as close as we like, to within any epsilon (presuming extensible decimal precision -- which we have now (that was a *big* weakness in Python readiness for the commercial sector, the lack of a fixed precision decimal type, since added -- have you been following this stuff on contexts?). > of a class. Python as a major language had a free license unlike the major > Smalltalk dialects (i.e. there are free Smalltalks but they are still > marginal to the overall Smalltalk community, Squeak being the closest to > an exception). Python has had its internal complexity managed fairly well, > compared to say, Squeak because of having namespace from the start. I like > indentational syntax (though not as much as keywords). Metaclass support > is nice. And so on. It's OK to do these side-by-side comparison of Python with Language X (be that Smalltalk, Ruby, Perl, Scheme, LISP or whatever), but then there's another question: what's next? We could discuss Smalltalk's and Python's relative strengths and weaknesses until the cows come home. But is that Pink Plane or Blue Plane? I would say neither. Not Pink, because we're not talking PEPs. Not Blue, because gnu math isn't about fussing with the low level syntax of already-specified languages. We're more zoologists, than genetic engineers. We take the species we get, don't seek to create entirely new ones. Python is Python. Smalltalk is Smalltalk. Ruby is Ruby. How much time shall we devote to making that point? > So I'm not "disrespecting" Python that I can see, though I am being > critical of specific areas where Smalltalk has long been superior. I am And go right ahead, but what's the *work* that we're doing? If the aim is to teach kung fu to the street urchin, then I think you're just wasting time. However, if you want to send a large cheque to the street urchin, such that it might buy itself fancier IDE clothes, like the suits have... > saying Smalltalk as a phenomenon has these two major benefits over Python > -- common use of keywords and common use of a restartable debugger -- and > then also saying Self or NewtonScript as a phenomenon shows the value of > prototype oriented programming. And then I have spent person-months trying > to do stuff to add to Python in these directions in various ways, so, both > talk and action. So, that is why I don't see the "spin" you are putting on > this as "disrespect" or "aloofness" is accurate. I think if you seriously respected Python, you wouldn't be sniping at it from your Lincoln Town Car. > Anyway, back to more coding. > > --Paul Fernhout Will PataPata help my students do their sequences? 1, 12, 42, 92... like that. If you look that up in Sloane's Encyclopedia of Integer Sequences, you'll find those Fuller School links that I care about. Kirby From john.zelle at wartburg.edu Thu Aug 10 19:23:27 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Thu, 10 Aug 2006 12:23:27 -0500 Subject: [Edu-sig] Smalltalk syntax benefits In-Reply-To: <44DB4FA0.3080705@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44DB3C4D.4010303@optonline.com> <44DB4FA0.3080705@kurtz-fernhout.com> Message-ID: <200608101223.27626.john.zelle@wartburg.edu> On Thursday 10 August 2006 10:24 am, Paul D. Fernhout wrote: > What about constructors like > "Line origin: 10 @ 10 angle: 35 degrees distance: 10 mm" > (which is easy to have in Smalltalk syntax) and so on? And I bet you can > read what it means not even knowing Smalltalk. Would you rather read: > "Line(10, 10, 35, 10)"? > Or at best: > "Line(Point(10, 10), 35, 10)"? > Which is clearer? I think this goes beyond my bias as being experienced > using Smalltalk system keyword syntax. > > Not to be too hard on you or Kirby, but I think it is easy to not see the > value of the unfamiliar, and there is a lot functional foo() syntax makes > difficult and awkward looking (Lisp, a Python ancestor in a sense, has a > bit of this problem too). > > Again, just because Smalltalk has this and Python does not does not mean > I'm saying "use Smalltalk". I'm just saying, how can Python get this > feature? Maybe it can't. Then my next thing is, can the two syntaxes live > side by side -- a possible area for exploration. > Just so we're all clear on this, you _can_ use keyword arguments in Python. So your constructor could just as well be: Line(origin=Point(10,10), angle_in_degrees=35, distance_in_mm=10) Of course, Python only allows this, it does not force you to use such a style. To me this is at least as descriptive as the SmallTalk version. Perhaps it says something that Python allows this form, but it does not seem to be used often in practice, except when there are large numbers of mostly default-valued parameters. Perhaps the reason is that the keyword form _requires_ more typing (lowering productivity) and the labeling of the arguments (revealing formal parameter names) is pretty much provided by any IDE that is worth its salt. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From kirby.urner at gmail.com Thu Aug 10 19:46:04 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 10 Aug 2006 10:46:04 -0700 Subject: [Edu-sig] Smalltalk syntax benefits In-Reply-To: <44DB4FA0.3080705@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB3C4D.4010303@optonline.com> <44DB4FA0.3080705@kurtz-fernhout.com> Message-ID: On 8/10/06, Paul D. Fernhout wrote: > Not to be too hard on you or Kirby, but I think it is easy to not see the > value of the unfamiliar, and there is a lot functional foo() syntax makes > difficult and awkward looking (Lisp, a Python ancestor in a sense, has a > bit of this problem too). When it comes to what looks awkward, that's hugely a matter of schooling (unavoidable I'm afraid -- otherwise known as "wiring up the brain"). You come across as a cheese taster, speaking as one with a refined palate, from years of reading code in enterprise-critical settings (hugely important), wherein even mathematicians feel outclassed with their silly_under_specified_variable names. But I keep coming back to the same question: is Python going to change? Somehow I keep getting "no" for an answer. Not at such a basic level. The syntax is already specified, for the most part. Is that a bad thing? No. Means we're ready to get on with our lives, liberated from boring syntax quibbles. Then I see you asking the same thing (will Python morph to become more like Smalltalk?): > Again, just because Smalltalk has this and Python does not does not mean > I'm saying "use Smalltalk". I'm just saying, how can Python get this > feature? Maybe it can't. Then my next thing is, can the two syntaxes live > side by side -- a possible area for exploration. > > --Paul Fernhout Of course the two syntaxes can live side by side. Not in the same language mind you (that'd be an ugly mess), but as two languages that'll both run on the same platform (say Ubuntu). We have the machinery to run Smalltalk, to run Python. They co-exist. Mission accomplished. And to think: you were thinking to still make it happen. Look at all the work we've saved you. Kirby From andreas.raab at gmx.de Thu Aug 10 19:50:46 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Thu, 10 Aug 2006 19:50:46 +0200 Subject: [Edu-sig] Smalltalk syntax benefits In-Reply-To: <44DB4FA0.3080705@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB3C4D.4010303@optonline.com> <44DB4FA0.3080705@kurtz-fernhout.com> Message-ID: <44DB71F6.5010204@gmx.de> Paul D. Fernhout wrote: > Again, just because Smalltalk has this and Python does not does not mean > I'm saying "use Smalltalk". I'm just saying, how can Python get this > feature? Maybe it can't. Then my next thing is, can the two syntaxes live > side by side -- a possible area for exploration. Croquet allows this, e.g., you can write: OpenGL>>drawRect: rect self glBegin(GL_QUADS); glVertex2f(rect left, rect top); glVertex2f(rect right, rect top); glVertex2f(rect right, rect bottom); glVertex2f(rect left, rect bottom); glEnd(). The idea was to leverage existing API documentation (in particular for OpenGL). Cheers, - Andreas From kirby.urner at gmail.com Thu Aug 10 20:23:15 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 10 Aug 2006 11:23:15 -0700 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: <44DB289E.9080703@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44DB289E.9080703@optonline.com> Message-ID: On 8/10/06, Arthur wrote: > Is Python really a clear implementation of a simple paradigm? I assume > you are meaning OO. Or if that is not is what you are saying here, it > is what I keeping here you say, nonetheless. Yeah, that's pretty much what I mean. People tell me it's really "hybrid" because of the top-level functions, but they're just another type of callable in my book, responsive to dot-notation, which is the unifying theme. To claim Java is a purer implementation, because you can *only* define new functionality in terms of classes, is to fight the idea of a primitive type system wherein the kinds of primitive objects you'll get (e.g. functions, generators, iterables) have already been specified for you, in terms of common interfaces or APIs. Saying "everything is an object" is a conceptual move, a frame of mind. Python goes a long way to capture that in syntax, but really, it's a way of thinking. I find Python programmers tend to think that way pretty purely. However I'm not saying *only* Python programmers do that, or that OO is the only way to think effectively. > That, it seems to me, is a box you are placing it in - your own OO > dogma - and in fact relates back to our differeing views - at least at > one point - about the purpose of properties. You seemed to me to have > seen properties as Python retracing a step that it had missed in > implementing OO orthodoxy, and I saw it as Python being Python, going > its merry way, being unconcerned about OO orthodoxy, and it was exactly > in placing properties in this OO box that you were misintepreting them, > and as an educator, miseducating about them. You fairly accurately depict how I see it (Python fulfilling more expectations judging from the standpoint of some OO canon). You also brought up a lot of useful DP-talk about the principle of unified access or whatever they call it, i.e. taking it off the user to worry about whether it's an attribute (storage) or computation (more on the fly and "just in time"), as the syntax will tend to *not* force your consciousness in this direction. Python already had __getattr__, but the property function helped fill in a missing feature, yes, as did staticmethod and classmethod. > When I began to study Lisp a bit, I found myself quite comfortable in > drawing from my Python background. > > Didn't Ian Bicking say here recently that he does not see OO as central > to how he understands and uses Python? Or was I misinterpreting? Dunno. Maybe he'll have time to swing through with an update. > It continues to seem to me that as much as you are an advocate for > Python, you see it through a filter of your own experience and > background and expectations that makes it less than what it is. Which is > maybe why it is more clear to you than to me. Placed in a nice regular > ployhedra Python is soothing to you. Yes, it solves a lot of problems. I needed a simple OO implementation, complete with shell, that wasn't expensive, and that would give people access to powerful engines and tools. I also regard OO as a more evolved, or as evolved, as what Princeton pushes as Logic in its Department of Philosophy. Out of allegiance to Russell/Whitehead and other Oxbridge proteges, the Ivory Tower disses practical in-the-field logical languages as impure, too messy, even when the paradigm is pretty darned clear, even when philosophers such as Leibniz already got it that we were aiming for machine-level implementation. Basically, I think computer scientists earn a more honest living than most academician philosophers, and use Wittgenstein as a bridge, to try sharing the workload a little more fairly. Put another way, I'm fighting academic logicians and their undeserved superiority complex, when it comes to what's "pure" (e.g. "math is too pure to sully with actual programming, yech" -- I find such rhetoric dismaying and feel sorry for the kids they use it on). This attitude relates disagreements on what's at the foundations of mathematics. They say by the cathedral (Ivory Tower logic controlled by a few), I say by the bazaar (ordinary people -- open source is not new). > Having less experience, background and expectations and leaving in a > irregular, non-metric world of projective geometry perhaps there is > something to my feeling that I see Python as it is more clearly than do you. > > Art > I'm willing to admit that in my hands, in my curriculum, Python takes on a definite shape and color that it might not in another curriculum. I simplify, dismiss, emphasize this detail, de-emphasize that. That's just my prerogative as a teacher. Others teach differently and I enjoy sampling the contrasts, drawing attention to them as positives even. I guess what makes me a liberal arts humanities type is our glorious diversity was never a big problem for me. I sense it's not a big problem for you, either. Kirby From andreas.raab at gmx.de Thu Aug 10 20:24:42 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Thu, 10 Aug 2006 20:24:42 +0200 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> Message-ID: <44DB79EA.7040301@gmx.de> kirby urner wrote: > How will Smalltalk help me with simple sequences, e.g. the triangular > and then tetrahedral numbers? That's all I want to know. And the > answer I usually get is: first, you must go to a special world called > Squeakland. In Python, I just boot IDLE, enter the function, and run > it. Oh, so I should have my school go out and buy commercial grade > SmallTalk instead? I don't get that point. Why would you have to go and buy a commercial grade Smalltalk? For Squeakland, what you need to do is to go to http://www.squeakland.org/detect.html for download and install. Once done, you start it, open a workspace type in 3+4 and print the result. What am I missing? Cheers, - Andreas From kirby.urner at gmail.com Thu Aug 10 21:13:56 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 10 Aug 2006 12:13:56 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DB79EA.7040301@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> Message-ID: On 8/10/06, Andreas Raab wrote: > kirby urner wrote: > > How will Smalltalk help me with simple sequences, e.g. the triangular > > and then tetrahedral numbers? That's all I want to know. And the > > answer I usually get is: first, you must go to a special world called > > Squeakland. In Python, I just boot IDLE, enter the function, and run > > it. Oh, so I should have my school go out and buy commercial grade > > SmallTalk instead? > > I don't get that point. Why would you have to go and buy a commercial > grade Smalltalk? For Squeakland, what you need to do is to go to > http://www.squeakland.org/detect.html for download and install. Once > done, you start it, open a workspace type in 3+4 and print the result. > What am I missing? > > Cheers, > - Andreas Paul refers to various implementations of Smalltalk, some cushier than others, when it comes to bells and whistles (Python is like that too -- many different environments, some you're supposed to buy). So I was wondering if my curriculum could be implemented in Squeakland, starting from simple sequence generators (triangular and tetrahedral numbers) and moving up, step by step, to the associated computer graphics. Given Python doesn't specify a GUI, the graphical add-ons are multifarious. However, with Smalltalk, it's pretty important to regard the entire experience as seamless, so you have to be clear from the outset which Smalltalk we're talking about (they're not all the same). I don't want to get involved in a bait and switch situation, where the Squeak people lead me on to expect I can write the rule for 1, 12, 42, 92... but then when it comes time to make the balls actually appear (as in POV-Ray, VRML, VPython, Panda3D or whatever), that suddenly I have to switch to a different SmallTalk. I realize Paul isn't just on edu-sig to answer my questions as a gnu math teacher. I just want to be clear that I'm (a) doing work in the field and (b) have to remain at a practical level (I have real students at Portland State). PataPata doesn't solve any problem I happen to be working on at the moment. Kirby From andreas.raab at gmx.de Thu Aug 10 21:55:22 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Thu, 10 Aug 2006 21:55:22 +0200 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D91602.5020607@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> Message-ID: <44DB8F2A.3090703@gmx.de> kirby urner wrote: > So I was wondering if my curriculum could be implemented in > Squeakland, starting from simple sequence generators (triangular and > tetrahedral numbers) and moving up, step by step, to the associated > computer graphics. Is your curriculum available online somewhere? I'd be very interested in finding out what parts could be done easily and what parts could not. We have been talking for a while now to step up the age group a little and it sounds as if this may make an interesting case study. > I don't want to get involved in a bait and switch situation, where the > Squeak people lead me on to expect I can write the rule for 1, 12, 42, > 92... but then when it comes time to make the balls actually appear > (as in POV-Ray, VRML, VPython, Panda3D or whatever), that suddenly I > have to switch to a different SmallTalk. Ah, I see. No you wouldn't do that. Once you'd learn a little more about the differences you'd give up the idea of switching between Smalltalk variants pretty quickly. They are way to different even in their syntactical aspects (just compare class definitions between VisualWorks and Squeak which are the closest two of the pack). > I realize Paul isn't just on edu-sig to answer my questions as a gnu > math teacher. I just want to be clear that I'm (a) doing work in the > field and (b) have to remain at a practical level (I have real > students at Portland State). PataPata doesn't solve any problem I > happen to be working on at the moment. Can't speak for the latter but I fully realize and value the former. In fact that's why I was asking to begin with - I'm always interested in feedback from people who are actively working in the field and your note sounded as if it might point to something that is relevant for us. What I'm taking away from the above is that we're probably doing a poor job in managing the expectations for what "Smalltalk" means. I'm not surprised, but it's a useful reminder about how people look at these terms. Cheers, - Andreas From peter at mapledesign.co.uk Thu Aug 10 23:24:14 2006 From: peter at mapledesign.co.uk (Peter Bowyer) Date: Thu, 10 Aug 2006 22:24:14 +0100 Subject: [Edu-sig] Teaching programming to physics students - reprise Message-ID: <7.0.1.0.0.20060810222335.0547fdf8@mapledesign.co.uk> Hi, For all of you who were interested, I've put the final version of my Masters' project report online at http://peter.mapledesign.co.uk/writings/physics/teaching-introductory-programming-to-physics-undergraduates.pdf. The project has proved successful, as the school of Physics at the University of Southampton made the decision to use Python for all undergraduate physics courses using programming in the 2006/07 academic year (introductory programming course, equipment control in laboratories, and computational physics course). As yet it remains to be seen whether the approach used to teach programming will change, or just the language used. I will be returning on a voluntary basis in October to assist in the teaching laboratories and monitor the impact changing to Python has had on the understanding of the students. Any suggestions as to how to measure their understanding would be gratefully received, as the questionnaire I used last time didn't get very good responses! I'd like to thank this group for your input last year, and particularly to Bruce Sherin and Hans Fangohr for their extended emails over the year. Peter. -- Maple Design - quality web design and programming http://www.mapledesign.co.uk From kirby.urner at gmail.com Fri Aug 11 00:00:48 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 10 Aug 2006 15:00:48 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DB8F2A.3090703@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> Message-ID: > Is your curriculum available online somewhere? I'd be very interested in > finding out what parts could be done easily and what parts could not. We > have been talking for a while now to step up the age group a little and > it sounds as if this may make an interesting case study. > http://www.4dsolutions.net/ocn/ Drill down to http://www.4dsolutions.net/ocn/cp4e.html for Python. Good overview: http://www.4dsolutions.net/ocn/numeracy0.html -- numeracy3.html Background: http://www.4dsolutions.net/ocn/trends2000.html (importance of OO). For more of the spatial geometry stuff: http://www.grunch.net/synergetics/volumes.html > > I don't want to get involved in a bait and switch situation, where the > > Squeak people lead me on to expect I can write the rule for 1, 12, 42, > > 92... but then when it comes time to make the balls actually appear > > (as in POV-Ray, VRML, VPython, Panda3D or whatever), that suddenly I > > have to switch to a different SmallTalk. > > Ah, I see. No you wouldn't do that. Once you'd learn a little more about > the differences you'd give up the idea of switching between Smalltalk > variants pretty quickly. They are way to different even in their > syntactical aspects (just compare class definitions between VisualWorks > and Squeak which are the closest two of the pack). But I do need my spatial geometry, either as renderings (stills) or as dynamic (like in Pygeo). So my first question for Squeakers, after they show me how to generate my sequences, is how do I convert this to vector-based graphics of a spatial nature. Does Squeakland provide those facilities. Or do I need to start with VisualWorks in order to avoid switching between Smalltalks down the road? For more curriculum overview: Slides from Europython 2005, Gothenburg: http://www.4dsolutions.net/presentations/pythonicmath.pdf with this background paper: http://www.4dsolutions.net/presentations/urner_europython4.pdf > > I realize Paul isn't just on edu-sig to answer my questions as a gnu > > math teacher. I just want to be clear that I'm (a) doing work in the > > field and (b) have to remain at a practical level (I have real > > students at Portland State). PataPata doesn't solve any problem I > > happen to be working on at the moment. > > Can't speak for the latter but I fully realize and value the former. In > fact that's why I was asking to begin with - I'm always interested in > feedback from people who are actively working in the field and your note > sounded as if it might point to something that is relevant for us. What > I'm taking away from the above is that we're probably doing a poor job > in managing the expectations for what "Smalltalk" means. I'm not > surprised, but it's a useful reminder about how people look at these terms. > > Cheers, > - Andreas In terms of the Shuttleworth pipeline, as earlier proposed (URLs shared), we start with: (A) robotics and turtles (turtles a subclass of avatar i.e. animated doer), (B) move to immersion mode in a Squeakland or other "world" phase, (C) then move to a more adult-minded "under the hood" experience with Python, with many forks in the road later. Logo | Smalltalk | Python is another way to describe the trajectory, though in practice it may not be Logo or Smalltalk or Python. These are delegates for the three modes of practice (self controller, fantasy grower, real world developer). All these experiences become a foundation for later ones i.e. controlling action figures, running immersive simulations, tackling new challenges with only the stars to steer by (having gone through these in childhood, we return as adults, and do it all again, but at higher levels). Kirby From ajsiegel at optonline.net Fri Aug 11 02:40:05 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 10 Aug 2006 20:40:05 -0400 Subject: [Edu-sig] Version 0.2.03 of PataPata released (adds Jython/Swing support) In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44D800DE.5010708@kurtz-fernhout.com> <44D80D10.8000405@kurtz-fernhout.com> <44DB289E.9080703@optonline.com> Message-ID: <44DBD1E5.3020302@optonline.com> kirby urner wrote: > I guess what makes me a liberal arts humanities type is our glorious > diversity was never a big problem for me. I sense it's not a big > problem for you, either. Yeah, both liberal arts types. But I guees I see myself more from "the poem is the poem" school. See what's on the page, and teach others to see whats on the page. Or write your own poem. Art From andreas.raab at gmx.de Fri Aug 11 05:52:40 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Fri, 11 Aug 2006 05:52:40 +0200 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> Message-ID: <44DBFF08.3080207@gmx.de> kirby urner wrote: > http://www.4dsolutions.net/ocn/numeracy0.html -- numeracy3.html This is *great* material, thanks. My background being in computer graphics I really enjoyed reading it. I wish I would've had that when I was the right age. (which reminds me: what age group do you usually teach?) Interestingly, if you were to adapt that material to Smalltalk the very first example would be the hardest because you'd have to explain so much more to begin with. E.g., your trivial little: def tri(n): # triangular num n # = sum of n consecutive counting nos (n>=1) if n<=1: return n else: return n + tri(n-1) just has no trivial little counterpart in Smalltalk. The Right Way to do this in Smalltalk (discounting workarounds like arbitrary helper classes) would be to extend class Integer directly: tri " triangular num n " " = sum of n consecutive counting nos (n>=1) " n <= 1 ifTrue:[^n] ifFalse:[^n + (n-1) tri] And besides the maintenance nightmares (so how exactly do I persist a method on Integer?), the above is also a primary example for what is "wrong" about Smalltalk: 1) Conceptually, if we're teaching math we probably want to define f(x) at some point. Not being able to, and instead to define "x f" is just distracting and awkward. 2) Syntactically, the above has quite a number of "weird" binary symbols - like the up-arrow for return and the square braces. One of my mantras for programming languages is that the more binary symbols (instead of words) they use the more obscure they get from an end-user perspective: Simply because except from a few binary symbols that we know from math (plus, minus, equals, parenthesis) their meaning is both arbitrarily assigned by the language designer and typically critical for understanding the language. So if you don't know what the binary symbols of a language mean you're screwed - just try APL. 3) Pragmatically, there is something odd about control structures in Smalltalk - the fact that there is only the "receiver message: argument" syntax necessitates that control structures like if/then are written in sort of a post-fix notation, e.g., ifTrue: instead of the more natural prefix notation "if ". I also strongly believe that the prefix notation for control structures is critical for understanding code - it is one of these things where in a sequence of statements you suddenly get to a point that screams "attention! control flow changes". And having that "warning" upfront signified by "if" or "while" or somesuch is tremendously helpful. Now, there are other things that are very, very right about Smalltalk but those are in my understanding prime reasons of why Python is so much more appealing for beginners. Python just looks right for it, not too much, not too little and the few things that might not be totally obvious you can guess pretty quickly. Interestingly, once we get a little deeper into the curriculum there is nothing in there where I'd say this is particularly difficult or problematic. Like when you actually get into objects, all of this translates directly and some of it may even look nicer (though this may depend on taste). The main hurdle would really be to get through the required mechanics in the beginning. And although it's slightly tangential, here is how something like that may look using the eToys environment: http://people.ofset.org/hilaire/drgeo2/demo/2-thales/ > But I do need my spatial geometry, either as renderings (stills) or as > dynamic (like in Pygeo). > > So my first question for Squeakers, after they show me how to generate > my sequences, is how do I convert this to vector-based graphics of a > spatial nature. Does Squeakland provide those facilities. Yes. All graphical objects can carry a pen - just set it down and draw to your hearts content ;-) Like here: http://squeakland.org/pdf/poster/grapherposter.pdf > Or do I need to start with VisualWorks in order to avoid switching > between Smalltalks down the road? For media-related stuff, *nothing* beats Squeak. It is so far ahead of the others it's not even funny. Bitmap graphics, vector graphics, 3d (software and accelerated), wave sound, fm sound, midi, video, you name it. And those things that aren't in the release are at SqueakMap (http://map.squeak.org/packagesbyname). Cheers, - Andreas From pdfernhout at kurtz-fernhout.com Fri Aug 11 14:25:56 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Fri, 11 Aug 2006 08:25:56 -0400 Subject: [Edu-sig] Learning Math or Simulation with Python or Smalltalk In-Reply-To: <44DBFF08.3080207@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> Message-ID: <44DC7754.4080503@kurtz-fernhout.com> Andreas Raab wrote: > tri > " triangular num n " > " = sum of n consecutive counting nos (n>=1) " > n <= 1 > ifTrue:[^n] > ifFalse:[^n + (n-1) tri] Perhaps a Smalltalk could be changed to accept from a workspace the following? Integer>>tri self <= 1 ifTrue: [self] ifFalse: [self + (self - 1) tri] There is a bug with the use of "n" I think in your example? This modification also eliminates the return, as it is implied as being the result of #ifTrue:ifFalse: and also as it is the last statement in the method. Python needs the return however. I guess I actually don't see this "if" as control flow, by the way, more as result calculation, so the lack of a preceeding if does not bother me in this case. But I agree with you that since the "f(x)" style is how conventional math is taught, "x f" could be disconcerting. The question then is, how far would "gnu math" be willing to depart from current mathematical conventions? :-) For fun, another approach using imaginary Self-like Smalltalk prototypes. :-) ===== Calculator := Proto new. Calculator at: #tri: put: [:n | "triangular num n = sum of n consecutive counting numbers (n>=1)" n <= 1 ifTrue: [n] ifFalse: [n + (self tri: n - 1)] ]. Calculator at: #sqr: put: [:n | "square num = sum of 2 consecutive triangular numbers " n <= 1 ifTrue: [n] ifFalse: [(self tri: n) + (self tri: n - 1)] ]. (Calculator tri: 20) print. (Calculator sqr: 4) print. ====== So, you could select this code in a Workspace and pick "do it". But, explaining the use of brackets to novices could be awkward, as they need to understand a level of abstraction related to deferring a computation. If one could integrate Python-ish identational syntax into Smalltalk somehow, one could have: Calculator at: #tri: put: :n "triangular num n = sum of n consecutive counting numbers (n>=1)" n <= 1 ifTrue: n ifFalse: n + (self tri: n - 1) where indenting a subsequent line implied a block, except when it began with a keyword (not sure that covers all cases though, or if it does not create other problems). Generally I Smalltalk doe snot need indentational syntax as much as Python does, because methods are typically short and managed in a browser, whereas Python functions are often long and managed in a text editor with perhaps hundreds or thousands of lines in one file. In PataPata, this could be done as: ===== import Prototypes Calculator = PrototypeClass() def tri(self, n): # triangular num n # = sum of n consecutive counting nos (n>=1) if n<=1: return n else: return n + tri(n-1) Calculator.tri = tri def sqr(self, n): # square num = sum of 2 consecutive triangular nos return sqr(n) + sqr(n-1) Calculator.sqr = sqr ===== Or as: ===== import Prototypes world = PrototypeClass() class Calculator: __metaclass__ = world.buildPrototype def tri(self, n): # triangular num n # = sum of n consecutive counting nos (n>=1) if n<=1: return n else: return n + tri(n-1) def sqr(self, n): # square num = sum of 2 consecutive triangular nos return sqr(n) + sqr(n-1) ===== Still, a lot more extra stuff than Kirby's orignal: === From: http://www.4dsolutions.net/ocn/numeracy0.html def tri(n): # triangular num n # = sum of n consecutive counting nos (n>=1) if n<=1: return n else: return n + tri(n-1) def sqr(n): # square num = sum of 2 consecutive triangular nos return tri(n) + tri(n-1) ==== But, it is also doing more. Kids spend tens of hours learning to type. Why should we expect them to be doing math from the first minute? Maybe the issue is that kids need to learn about levels and abstraction and pointers first? When I taught C programming to Bio majors I spent a lot of time in the first classes getting the college kids to point to each other and follow that around the room, and to pass string around, and so fort. The reason is I knew that pointers were the hardest part of C programming, and so I started with that fairly early on (Well, after a bit of turtle stuff, and getting kids to pretend to be turtles, or trying to. :-) Then I spent hours in the computer lab with them. (To answer a question Kirby asked previously on teaching style.) Again, both the Smalltalk-sh prototype code and the PataPata example are doing more -- by building objects which respond to messages. But whereas Kirby starts with recursion as important (levels of nesting), from a Smalltalk-ish OO point of view (and by extension, OO simulation) getting kids to understand the abstraction of objects receiving and processing and sending messages may be seen as more important. :-) One of the problems of teaching programming is that many kids need to learn the very basics sometimes. For example, that is one reason learning to play music at an early age may be better for building a programmer than actually learning to program first. Learning to read sheet music to play a song on an instrument creates a simple experience where kids can learn a correspondence between marks on the paper and some process going on producing something of value. That "text to process" abstraction is the biggest abstraction kids need to learn to program (even if the "text" is some other form of eToy symbols). But after that definitely understanding a "levels of nesting" abstraction is important. Kirby's example gets at levels in a sense by focusing on recursion in the first example (I guess he can assume his particular kids know the text to process abstraction already?). Still, one might argue from an OO (and simulation) point of view that understanding the abstraction of message sending is more important than the abstraction of levels of nesting? Guess it depends what you are emphasizing -- math or simulation? (Now some forms of simulation are highly mathematical, so it isn't either/or, of course, but one of emphasis). I think it likely that 75% of the college biology majors I taught way-back-when would have been hopelessly lost after Kirby's first example. :-) Many bio majors choose that major so they (presumably) don't have to do any abstract math. This can be a big problem for them as advanced bio can be very mathematical, and which is why I as a mathematical kid did well taking an advanced college bio class even with little knowledge about college bio at the start and skipping all the intro courses (the real bio majors freaked out at seeing an integral on the chalkboard). From my own experience years later, it's a problem having a mixed bunch of students in a programmign course -- a separate issue relating to educational bureaucracies -- but how to do you teach a a programming class where 25% of kids have not used a computer, 25% know word processing, 25% know BASIC, and 25% already probably know the language of interest? For me, the only thing that worked somewhat was a lot of time in the computer lab providing essentially individualized instruction to one to three people at a computer or two at a time. I think that level of interaction is more important than the specifics of the curriculum (not to say a good text book or curriculum is not of value). Frankly, I'm a poor "classroom" teacher; doing that well is a skill I don't have requiring some good mix of showmanship and prepared pedagogy and projected authority. But put me in a computer lab with doing hands on stuff with a few kids at a time, and then it is a good match, because I am building on my (consulting) strength of being able to help people get past specific programming stumbling blocks to do really neat things they want to do. As Andreas points out, Smalltalk has different stumbling blocks than Python for teaching mathematics. Can one learn from the other? Anyway, when I look at Python for education, I ask myself (theoretically these days, which could be a problem, as Kirby points out) what stumbling blocks would a kid (or anyone, especially myself :-) have to using Python to make a GUI (or core code) for a simulation, and I want to remove those as best as I can (PataPata is one attempt). That's one difference from Kirby's interests and mine -- I'll agree based on the above Python as-it-is (rather than using Smalltalk syntax) is a good vehicle for teaching mathematics the way he does it, and a gentler way (at least at first) for today's kids who already learn a certain notation. :-) Both Smalltalk and PataPata (Python prototypes) require a bigger first leap for that. But, my interest is more to get kids building simulations, where the math is incidental (though eventually important of course). So, I encounter different stumbling blocks than Kirby would. For me, issues like, how do we define a set of parameters and easily display and manipulate them with a GUI is a stumbling block in Python. As is, how do we define an object on the screen that responds to messages by moving? These are things which Squeak (or Squeak with eToys) does fairly easily, by contrast. So, if a different notation is a stumbling block in Smalltalk for mathematics, GUI building and inspecting state is a stumbling block in Python for simulation (not that you can't do it, just that it is perhaps harder than it has to be). --Paul Fernhout From kirby.urner at gmail.com Fri Aug 11 17:19:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 11 Aug 2006 08:19:05 -0700 Subject: [Edu-sig] Learning Math or Simulation with Python or Smalltalk In-Reply-To: <44DC7754.4080503@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DC7754.4080503@kurtz-fernhout.com> Message-ID: On 8/11/06, Paul D. Fernhout wrote: > Again, both the Smalltalk-sh prototype code and the PataPata example are > doing more -- by building objects which respond to messages. But whereas > Kirby starts with recursion as important (levels of nesting), from a > Smalltalk-ish OO point of view (and by extension, OO simulation) getting > kids to understand the abstraction of objects receiving and processing and > sending messages may be seen as more important. :-) Actually, I don't start from recursion first off. The numeracy0.html was written some time ago and I've had more experience teaching math with Python since then. For a more current view (the course I taught to 8th graders twice last year), see: http://www.4dsolutions.net/ocn/winterhaven/ This is the page I shared with the London Knowledge Lab (LKL) last year (URL to Quicktime earlier given). [ This was pre opening my PKL in the new Portland Tech District. http://worldgame.blogspot.com/2006/08/toontown.html ] You'd probably find my approach convenient, as I start into dot notation right off -- the way we intereact with objects in more than just Python (its a prevalent convention). We play with built-ins to study this: strings, lists and dictionaries (I describe the differences) i.e. so-called data structures (data structures + dot notation = my current intro). OK, *then* maybe I tell the story of young Gauss, his class being punished by the teacher (they get that) to add all consecutive integers from 1 to 100. Gauss had this flash that writing the sequence twice, the lower version in reverse order, would give him the same sum over and over. Let's demonstrate in Python: >>> seq = range(1,11) >>> reversed(seq) >>> for i in reversed(seq): print i 10 9 8 7 6 5 4 3 2 1 >>> zip(seq, reversed(seq)) [(1, 10), (2, 9), (3, 8), (4, 7), (5, 6), (6, 5), (7, 4), (8, 3), (9, 2), (10, 1)] >>> [i+j for i,j in zip(seq, reversed(seq))] [11, 11, 11, 11, 11, 11, 11, 11, 11, 11] So what Gauss figured is he'd need 100 101s to get the sum of the two sequences, which is easy 10100, but divide by 2 to get the sum that'll please the teacher so 5050. Did it all in his head, really pissed the teacher off. This actually motivates a discussion of triangular numbers, as a sequence of sums of consecutive integers, starting from 1 (or 0 if you like). We're now in a position to explore more of Python's builtins, especially range (gotta go over the above, make it comprehensible). But there's a chance to segue to slice notation if we like (trapezoidal numbers anyone?). OK, so THEN I show them how to define a function in Python: >>> def gauss(n): """ How Gauss pissed off his teacher """ return n * (n + 1 ) / 2 >>> tri = gauss >>> tri(100) 5050 Kirby From kirby.urner at gmail.com Fri Aug 11 17:31:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 11 Aug 2006 08:31:59 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DBFF08.3080207@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> Message-ID: > For media-related stuff, *nothing* beats Squeak. It is so far ahead of > the others it's not even funny. Bitmap graphics, vector graphics, 3d > (software and accelerated), wave sound, fm sound, midi, video, you name > it. And those things that aren't in the release are at SqueakMap > (http://map.squeak.org/packagesbyname). > > Cheers, > - Andreas OK, so this is good news, at kids 8-18 going through Logo | Smalltalk | Python will already have some key concepts enabled, e.g. bitmapped versus vector graphics. But what's the API to 3d vector graphics like? In numeracy1.html you see I go on to define a Vector class using operator overloading. I want to go Vector((1,1,1)) + Vector((0,1,-1)) and get back the right Vector object. That's still conceptually where I'm at: use sequences to make a lexical <--> graphical connection, with no mention of XYZ coordinating apparatus. Later, talk about XYZ and start developing within a simple API. Pre VPython, my vectors would feed a Writer class for generating scene description language for POV-Ray or whatever. These days, I'm more likely to just go with VPython. In all cases, I focus on E, V and F as primitives, because we're very into V + F = E + 2 in the Fuller School. Kirby From andreas.raab at gmx.de Fri Aug 11 18:37:15 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Fri, 11 Aug 2006 09:37:15 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> Message-ID: <44DCB23B.2000205@gmx.de> kirby urner wrote: > OK, so this is good news, at kids 8-18 going through Logo | Smalltalk > | Python will already have some key concepts enabled, e.g. bitmapped > versus vector graphics. > > But what's the API to 3d vector graphics like? Something like here: v1 := Vector x: 0 y: 0 z: 0. v2 := Vector x: 1 y: 1 z: 1. v1Plus42 := v1 + 42. v1Plusv2 := v1 + v2. It's got pretty much what you'd expect for 3d stuff. > In numeracy1.html you see I go on to define a Vector class using > operator overloading. I want to go Vector((1,1,1)) + Vector((0,1,-1)) > and get back the right Vector object. Operators are just binary messages in Smalltalk, which reminds of another issue that is often a stumbling stone early on: No operator precedence. All binary operations are evaluated strictly left to right since users can define their own binary messages (*sigh*). But of course that means that there is absolutely nothing special about "operator overloading" - it is just a message like any other. > Pre VPython, my vectors would feed a Writer class for generating scene > description language for POV-Ray or whatever. These days, I'm more > likely to just go with VPython. In all cases, I focus on E, V and F > as primitives, because we're very into V + F = E + 2 in the Fuller > School. E, V, F? Don't know that lingo ;-) Cheers, - Andreas From kirby.urner at gmail.com Fri Aug 11 19:31:30 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 11 Aug 2006 10:31:30 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DCB23B.2000205@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> Message-ID: > Something like here: > > v1 := Vector x: 0 y: 0 z: 0. > v2 := Vector x: 1 y: 1 z: 1. > v1Plus42 := v1 + 42. > v1Plusv2 := v1 + v2. > > It's got pretty much what you'd expect for 3d stuff. > OK, but then I want them to draw in 3D. Does Squeak make that easy for me. In VPython, do define a vector is to get on on screen. That's sometimes too immediate for me. I build a scene in vector language, then render it in POV-Ray. How do I draw an Icosahedron using Squeaks built-in 3D vector graphics engine? > Operators are just binary messages in Smalltalk, which reminds of > another issue that is often a stumbling stone early on: No operator > precedence. All binary operations are evaluated strictly left to right How about operator overloading. That's pretty easy right? Like what we do with __add__. > since users can define their own binary messages (*sigh*). But of course > that means that there is absolutely nothing special about "operator > overloading" - it is just a message like any other. But there *is* a way to have + trigger vector addition yes. I was a bit unclear when you went: > v1Plus42 := v1 + 42. > v1Plusv2 := v1 + v2. How did you get that + behavior in Squeak? > > Pre VPython, my vectors would feed a Writer class for generating scene > > description language for POV-Ray or whatever. These days, I'm more > > likely to just go with VPython. In all cases, I focus on E, V and F > > as primitives, because we're very into V + F = E + 2 in the Fuller > > School. > > E, V, F? Don't know that lingo ;-) E = Edges, V = Vertices, F = Faces. Euler's V + F = E + 2 is his law for polyhedra (the +2 goes away if you do a donut, or is +1 on a flat surface). This is where topology enters our curriculum (with Euler). Kirby From scott_list at mischko.com Fri Aug 11 19:39:29 2006 From: scott_list at mischko.com (Scott Chapman) Date: Fri, 11 Aug 2006 10:39:29 -0700 Subject: [Edu-sig] re-doing GvR in xturtle Message-ID: <44DCC0D1.2090905@mischko.com> I'm beginning work on moving GvR into xturtle. The main reason I'm doing this is that I want to get over the language limitations that GvR currently has. (No variable assignment, etc.) In other words, I want to be able to teach much more of Python to young people with such an environment. It'll take a while to get this done. I'm new to TK programming. I do web development. If Crunchy had sufficient graphics and sandboxing, I'd probably do it all in Crunchy for web delivery, etc. I'll keep an eye on their progress. If anyone's interested in the results or has commentary, please let me know. Eventually, it would be very nice to have a whole curriculum around such an environment, with teaching materials, quizzes, tests, answer keys, etc. If anyone has already done this, please let me know. I'd rather not reinvent this if I don't have to. Cordially, Scott From andre.roberge at gmail.com Fri Aug 11 19:57:39 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 11 Aug 2006 14:57:39 -0300 Subject: [Edu-sig] re-doing GvR in xturtle In-Reply-To: <44DCC0D1.2090905@mischko.com> References: <44DCC0D1.2090905@mischko.com> Message-ID: <7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com> On 8/11/06, Scott Chapman wrote: > I'm beginning work on moving GvR into xturtle. > > The main reason I'm doing this is that I want to get over the language > limitations that GvR currently has. (No variable assignment, etc.) This is, in parts, why I designed RUR-PLE (http://rur-ple.sourceforge.net/). RUR-PLE uses Python, instead of a Python-like language like GvR. It also comes with more lessons than GvR does, but could use more. >In other > words, I want to be able to teach much more of Python to young people with > such an environment. It'll take a while to get this done. I'm new to TK > programming. RUR-PLE uses wxPython (instead of Tkinter). >I do web development. If Crunchy had sufficient graphics and > sandboxing, I'd probably do it all in Crunchy for web delivery, etc. I'll > keep an eye on their progress. I started developping Crunchy for that very purpose: to have a web-based version of RUR-PLE. I still plan to do that, eventually... For the foreseeable future, Crunchy will continue to be developped to run locally, however with the ability of "fetching" tutorials located elsewhere on the web. The work lately has focused on doing this part in a secure way. The next release (soon!) should be secure that way. Until there's a way to sandbox Python (i.e. until Brett Cannon finishes his Ph.D.), it would probably be pointless to try to have Crunchy running somewhere on the web and have user "log" remotely into it to run an interactive session. > If anyone's interested in the results or has commentary, please let me know. > > Eventually, it would be very nice to have a whole curriculum around such an > environment, with teaching materials, quizzes, tests, answer keys, etc. > I totally agree. > If anyone has already done this, please let me know. I'd rather not reinvent > this if I don't have to. As far as I know, it has not been done (otherwise I would not be working on it the way I am). If you want to contribute in any way (producing teaching materials, helping implementing browser-based animations, etc.), feel free to do it! Andr? > Cordially, > Scott > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From andreas.raab at gmx.de Fri Aug 11 20:08:05 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Fri, 11 Aug 2006 11:08:05 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> Message-ID: <44DCC785.2020409@gmx.de> kirby urner wrote: > OK, but then I want them to draw in 3D. Does Squeak make that easy > for me. In VPython, do define a vector is to get on on screen. That's > sometimes too immediate for me. I build a scene in vector language, > then render it in POV-Ray. Not knowing what is easy for you that question seems a little hard to answer (also I'm thinking we're getting somewhat off-topic here). There are different ways in whic you can go about this problem: a) Using an immediate mode interface where you truly "draw yourself". For the (older) Squeak 3D engine we have an interface that is similar to OpenGL (in such that it supports very similar operations like submitting vertices, normals, colors etc.) and in Croquet everything is built directly on top of OpenGL. For the immediate mode interface there is a pretty nice tutorial included with Balloon3D. b) Using a retained mode interface, e.g., constructing a polygon mesh and simply visualizing that. In this case you would probably use Wonderland as it provides some nice high-level animation facilities. > How do I draw an Icosahedron using Squeaks built-in 3D vector graphics engine? Not sure what you're looking for here. Do you want to see some actual code? Or are looking for general advice? >> Operators are just binary messages in Smalltalk, which reminds of >> another issue that is often a stumbling stone early on: No operator >> precedence. All binary operations are evaluated strictly left to right > > How about operator overloading. That's pretty easy right? Like what > we do with __add__. Well, yes, that's what I said. Operators are just messages, you treat them like anything else. If you want to implement addition using "+" you just implement a message with the name "+" that's all. > But there *is* a way to have + trigger vector addition yes. I was a > bit unclear when you went: > >> v1Plus42 := v1 + 42. >> v1Plusv2 := v1 + v2. > > How did you get that + behavior in Squeak? By implementing it in the Vector class. Here is a simplified variant of how this may look: Vector>>+ aNumericObject aNumericObject isNumber ifTrue:[^self scalarAdd: aNumericObject] ifFalse:[^self vectorAdd: aNumericObject]. and then: Vector>>scalarAdd: aNumber x := x + aNumber. y := y + aNumber. z := z + aNumber. Vector>>vectorAdd: aVector x := x + aVector x. y := y + aVector y. z := z + aVector z. The case analysis in Vector>>+ can be quite annoying so often there are other techniques (like double-dispatching) used to implement the proper coercion. The common technique currently used by Squeak coerces based on generality, so to implement the "reverse" set of operations you'd do, e.g., Vector>>adaptToNumber: aNumber andSend: aSymbol "If I am involved in arithmetic with a scalar, return a Vector of the results of each element combined with the scalar in that expression." ^Vector x: (x perform: aSymbol with: aNumber) y: (y perform: aSymbol with: aNumber) z: (z perform: aSymbol with: aNumber) But now we're *really* getting off topic. If you are interested in these issues I'd recommend asking questions here: http://lists.squeakfoundation.org/mailman/listinfo/beginners >> E, V, F? Don't know that lingo ;-) > > E = Edges, V = Vertices, F = Faces. Euler's V + F = E + 2 is his law > for polyhedra (the +2 goes away if you do a donut, or is +1 on a flat > surface). This is where topology enters our curriculum (with Euler). Oops, how embarrassing. It's been so long for me that I didn't even recognize it. Of course I do (or should I say I did ;-) know that lingo... Cheers, - Andreas From scott_list at mischko.com Fri Aug 11 22:35:13 2006 From: scott_list at mischko.com (Scott Chapman) Date: Fri, 11 Aug 2006 13:35:13 -0700 Subject: [Edu-sig] re-doing GvR in xturtle In-Reply-To: <7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com> References: <44DCC0D1.2090905@mischko.com> <7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com> Message-ID: <44DCEA01.6000007@mischko.com> Andre Roberge wrote: > On 8/11/06, Scott Chapman wrote: >> I'm beginning work on moving GvR into xturtle. >> >> The main reason I'm doing this is that I want to get over the language >> limitations that GvR currently has. (No variable assignment, etc.) > > This is, in parts, why I designed RUR-PLE > (http://rur-ple.sourceforge.net/). > RUR-PLE uses Python, instead of a Python-like language like GvR. It > also comes with more lessons than GvR does, but could use more. I've downloaded RUR-PLE and played with it a bit also. I simply assumed it had a limited language also. Thanks very much for pointing this out! I'll not bother with xturtle. > I started developping Crunchy for that very purpose: to have a > web-based version of RUR-PLE. I still plan to do that, eventually... > For the foreseeable future, Crunchy will continue to be developped to > run locally, however with the ability of "fetching" tutorials located > elsewhere on the web. The work lately has focused on doing this part > in a secure way. The next release (soon!) should be secure that way. > > Until there's a way to sandbox Python (i.e. until Brett Cannon > finishes his Ph.D.), it would probably be pointless to try to have > Crunchy running somewhere on the web and have user "log" remotely into > it to run an interactive session. No doubt. However I might be willing to deploy it on a student's own box (windows or linux) for them to use in the web environment. Creating tutorials/tests in the web environment would be quite easy. The results of tests could be sent to an on-line web server so the students could send me test results, questions, etc. An ajax library implementing parts of this on my server might be the very useful. It would be very cool to put an entire Crunchy Frog environment on a USB thumb drive with binaries that would work on Linux or Windows, probably including such things as Apache, Python, SQLite, and other useful tools. If you could put it into a chroot jail, you could gain a modicum of security. I haven't thought through what all would still be in "harms way" in that case. I wonder if you could make a thumbdrive be a chroot jail? Probably not on Windows, but maybe on Linux. > As far as I know, it has not been done (otherwise I would not be > working on it the way I am). If you want to contribute in any way > (producing teaching materials, helping implementing browser-based > animations, etc.), feel free to do it! I'll let you know as I get further into it. I'm home schooling my 3 children and hope to use this as the core of their curriculum. Scott From kirby.urner at gmail.com Fri Aug 11 22:43:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 11 Aug 2006 13:43:28 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DCC785.2020409@gmx.de> References: <44D7A969.9050701@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> Message-ID: On 8/11/06, Andreas Raab wrote: > Not knowing what is easy for you that question seems a little hard to > answer (also I'm thinking we're getting somewhat off-topic here). There Think of my 8th graders that I'm trying to give a first exposure to a geometric interpretation of vector arithmetic. We have the lexical mechanics, thanks to the Vector class definition, but now it's time to bind this arithmetic to a visualization in some easy way. In VPython, you hand off the a builtin visual.vector object and you're done. With POV-Ray, it's a little more complicated: use the cylinder for your edge. > are different ways in whic you can go about this problem: > a) Using an immediate mode interface where you truly "draw yourself". > For the (older) Squeak 3D engine we have an interface that is similar to > OpenGL (in such that it supports very similar operations like submitting > vertices, normals, colors etc.) and in Croquet everything is built > directly on top of OpenGL. For the immediate mode interface there is a > pretty nice tutorial included with Balloon3D. It sounds like all the machinery is there (OpenGL is what VPython sits on as well). My question is more to the look of the code. How complicated to get into visual interpretations of expressions with vectors, now that a vector class has been defined. > b) Using a retained mode interface, e.g., constructing a polygon mesh > and simply visualizing that. In this case you would probably use > Wonderland as it provides some nice high-level animation facilities. > I'm not going for a lot of swooshy effects, just a close tie-in between lexical and graphical content. I want the algebra of sequences to move them smoothly through XYZ thinking, to simple expressions of geometric objects, such as polyhedra. All should be code driven (so they see how their vectors work). In Python, I might give them a module with several polyhedra pre-coded (we can study the source later). They do something like this: >>> from rbf import Icosahedron >>> myIcosa = Icosahedron() >>> scenefile = POVwriter("thefile.pov") >>> scenefile.render(myIcosa) At this point, thefile.pov will have all the scene description language needed to render a pretty Icosahedron: http://www.4dsolutions.net/ocn/numeracy1.html > > How do I draw an Icosahedron using Squeaks built-in 3D vector graphics engine? > > Not sure what you're looking for here. Do you want to see some actual > code? Or are looking for general advice? I'd like to get the flavor of the actual code, either out of the box in Squeakland, or after a teacher has written the necessary code to help students get started. What would it look like to just get a simple tetrahedron in some OpenGL context. Do I need to extend pre-existing classes some how? The goal is to involve my new Vector class in some easy way, so that students make the connection between lexical vector arithmetic, and computer graphics. > >> Operators are just binary messages in Smalltalk, which reminds of > >> another issue that is often a stumbling stone early on: No operator > >> precedence. All binary operations are evaluated strictly left to right > > > > How about operator overloading. That's pretty easy right? Like what > > we do with __add__. > > Well, yes, that's what I said. Operators are just messages, you treat > them like anything else. If you want to implement addition using "+" you > just implement a message with the name "+" that's all. OK, thanks. Some other sources were making it sound like operator overloading wasn't a feature of Smalltalk. Sounds like its easy, and more like in Ruby, where you use a literal + to overload + (vs. something like __add__). > > But there *is* a way to have + trigger vector addition yes. I was a > > bit unclear when you went: > > > >> v1Plus42 := v1 + 42. > >> v1Plusv2 := v1 + v2. > > > > How did you get that + behavior in Squeak? > > By implementing it in the Vector class. Here is a simplified variant of > how this may look: > > Vector>>+ aNumericObject OK, so this use of + is where we begin the overloading definition I take it... > aNumericObject isNumber > ifTrue:[^self scalarAdd: aNumericObject] > ifFalse:[^self vectorAdd: aNumericObject]. > > and then: > > Vector>>scalarAdd: aNumber > x := x + aNumber. > y := y + aNumber. > z := z + aNumber. > > Vector>>vectorAdd: aVector > x := x + aVector x. > y := y + aVector y. > z := z + aVector z. > > The case analysis in Vector>>+ can be quite annoying so often there are > other techniques (like double-dispatching) used to implement the proper > coercion. The common technique currently used by Squeak coerces based on > generality, so to implement the "reverse" set of operations you'd do, e.g., > > Vector>>adaptToNumber: aNumber andSend: aSymbol > "If I am involved in arithmetic with a scalar, return a Vector of > the results of each element combined with the scalar in that > expression." > ^Vector > x: (x perform: aSymbol with: aNumber) > y: (y perform: aSymbol with: aNumber) > z: (z perform: aSymbol with: aNumber) I'd simplify this to not allow addition of scalars to vectors. Only vectors add to vectors, plus scalars multiply them (but vectors don't multiply with vectors). > But now we're *really* getting off topic. If you are interested in these > issues I'd recommend asking questions here: > > http://lists.squeakfoundation.org/mailman/listinfo/beginners > This isn't off topic at all from my point of view. Pythonic mathematics dives into operator overloading pretty much immediately. If I were to convert my curriculum to Smalltalk, I'd need to bone up on precisely these details, so thank you. > >> E, V, F? Don't know that lingo ;-) > > > > E = Edges, V = Vertices, F = Faces. Euler's V + F = E + 2 is his law > > for polyhedra (the +2 goes away if you do a donut, or is +1 on a flat > > surface). This is where topology enters our curriculum (with Euler). > > Oops, how embarrassing. It's been so long for me that I didn't even > recognize it. Of course I do (or should I say I did ;-) know that lingo... > > Cheers, > - Andreas Some complain about the "dumbed down" kind of vectors we do, but remember, this is a first pass. All our vectors have their tail at the origin, so if you want a line segment (vs. a vector) you need *two* vectors to specify it, one pointing to each end. It's these line segments we identify with Edges when doing polyhedra. Polyhedra get defined as face-tuples. That's the necessary topology right there, with each element of the tuple a reference to a vector. Polyhedra are of course the next class we get into, once we have our Vectors. Kirby From scott_list at mischko.com Fri Aug 11 23:04:25 2006 From: scott_list at mischko.com (Scott Chapman) Date: Fri, 11 Aug 2006 14:04:25 -0700 Subject: [Edu-sig] re-doing GvR in xturtle In-Reply-To: <7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com> References: <44DCC0D1.2090905@mischko.com> <7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com> Message-ID: <44DCF0D9.1090503@mischko.com> Andre Roberge wrote: > I started developping Crunchy for that very purpose: to have a > web-based version of RUR-PLE. I still plan to do that, eventually... > For the foreseeable future, Crunchy will continue to be developped to > run locally, however with the ability of "fetching" tutorials located > elsewhere on the web. The work lately has focused on doing this part > in a secure way. The next release (soon!) should be secure that way. Andre, I'm thinking of what all is needed to get Crunchy to do RUR-PLE. One thing is the ability to click on the canvas (to build the walls in the "worlds"). Is there any capability to do this yet? What else needs to be done to Crunchy to begin doing RUR-PLE in it? Scott From andre.roberge at gmail.com Sat Aug 12 00:52:04 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 11 Aug 2006 19:52:04 -0300 Subject: [Edu-sig] re-doing GvR in xturtle In-Reply-To: <44DCF0D9.1090503@mischko.com> References: <44DCC0D1.2090905@mischko.com> <7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com> <44DCF0D9.1090503@mischko.com> Message-ID: <7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com> On 8/11/06, Scott Chapman wrote: > Andre Roberge wrote: > > I started developping Crunchy for that very purpose: to have a > > web-based version of RUR-PLE. I still plan to do that, eventually... > > For the foreseeable future, Crunchy will continue to be developped to > > run locally, however with the ability of "fetching" tutorials located > > elsewhere on the web. The work lately has focused on doing this part > > in a secure way. The next release (soon!) should be secure that way. > > Andre, > I'm thinking of what all is needed to get Crunchy to do RUR-PLE. One thing is > the ability to click on the canvas (to build the walls in the "worlds"). Is > there any capability to do this yet? > There isn't. This would involve some javascript coding of the kind I've never done (finding where on a page a click has occurred, etc.). It might be straightforward to do. However, another approach I have been thinking about is to have the world-builder being a Tkinter or wxPython based app that is launched from Crunchy; this would mean only Python programming (no javascript) and totally doable *today* within Crunchy. (not in the last public released version, but in the svn.) > What else needs to be done to Crunchy to begin doing RUR-PLE in it? > Actually, before the world-builder, some means to have the robot moves within a canvas. The first thing to do would be to load an image and have it move on the canvas! My original plan was to use, as a first prototype, the existing Python from rur-ple create a "list" of moves coming from running a user program. This could be passed to a little javascript program with each move executed by a setTimeout call with a suitable delay. At this point, any "toy" program that simulates robot motion within an html canvas would be useful to have to play with and explore ideas. To go back to Crunchy, I'd like to replace the html textarea by an editor with syntax colouring, like editarea (http://cdolivet.net/index.php?page=editArea ). I've already contacted the author and there's a possibility that the current limitation (one instance per page) might be removed soon, making it suitable to be adapted for Crunchy. There's a few more things I want to implement before I'm ready to move on to rur-ple within Crunchy. My (ambitious?) goal is to get there by mid-Fall. Any help of any kind (even creating little toy programs/samples) would be appreciated! Andr? > Scott > From ajsiegel at optonline.net Sat Aug 12 02:43:28 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 11 Aug 2006 20:43:28 -0400 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> Message-ID: <44DD2430.4030002@optonline.com> kirby urner wrote: >> ifTrue:[^self scalarAdd: aNumericObject] >> ifFalse:[^self vectorAdd: aNumericObject]. >> >>and then: >> >>Vector>>scalarAdd: aNumber >> x := x + aNumber. >> y := y + aNumber. >> z := z + aNumber. >> >>Vector>>vectorAdd: aVector >> x := x + aVector x. >> y := y + aVector y. >> z := z + aVector z. >> >>The case analysis in Vector>>+ can be quite annoying so often there are >>other techniques (like double-dispatching) used to implement the proper >>coercion. The common technique currently used by Squeak coerces based on >>generality, so to implement the "reverse" set of operations you'd do, e.g., >> >>Vector>>adaptToNumber: aNumber andSend: aSymbol >> "If I am involved in arithmetic with a scalar, return a Vector of >> the results of each element combined with the scalar in that >> expression." >> ^Vector >> x: (x perform: aSymbol with: aNumber) >> y: (y perform: aSymbol with: aNumber) >> z: (z perform: aSymbol with: aNumber) >> >> At what point does it become appropriate to expect this conversation to move over to "Squeakland" - where kids who are different than I was are treated without condescension. Art From kirby.urner at gmail.com Sat Aug 12 02:47:18 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 11 Aug 2006 17:47:18 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DD2430.4030002@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> <44DD2430.4030002@optonline.com> Message-ID: > At what point does it become appropriate to expect this conversation to > move over to "Squeakland" - where kids who are different than I was are > treated without condescension. > > Art > In general I favor a liberal approach to direct comparison of Python with other langauges at the syntax and design level because: (a) it's a genre, well developed, with lots of literature and (b) it's educational, helps define core concepts and CS and (c) it's relevant, especially to people "just getting into" language X We've had some extended discussions of both Logo and J over the years, per archive, so I don't think which should be especially inhibitory towards Smalltalk. Of course I sound like I'm moderating but I'm not a moderator, just expressing druthers that we set precedent for liberal dumping of alien language syntax (could get to be a problem, if really sophisticated unicode clients are presumed). Kirby From ajsiegel at optonline.net Sat Aug 12 03:00:16 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 11 Aug 2006 21:00:16 -0400 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> <44DD2430.4030002@optonline.com> Message-ID: <44DD2820.60504@optonline.com> kirby urner wrote: >> At what point does it become appropriate to expect this conversation to >> move over to "Squeakland" - where kids who are different than I was are >> treated without condescension. >> >> Art >> > > In general I favor a liberal approach to direct comparison of Python > with other langauges at the syntax and design level because: > > (a) it's a genre, well developed, with lots of literature and > (b) it's educational, helps define core concepts and CS and > (c) it's relevant, especially to people "just getting into" language X Do we have to ignore the question as to whether - all syntactical issues being equal - it is more respectful to children to present it via a tool use by working physicists, astronomers, and at Google - or in some environment someone chose to call "Squeakland" (out of repsect???? for the sensibilities of a bright child). Or am I on my own planet, again? Art From kirby.urner at gmail.com Sat Aug 12 03:15:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 11 Aug 2006 18:15:59 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DD2820.60504@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> <44DD2430.4030002@optonline.com> <44DD2820.60504@optonline.com> Message-ID: > Or am I on my own planet, again? > > Art > I think such issues of esthetics are certainly topical and worth fleshing out. Python actually has issues in this area, as python.com is an oft mis-visited porn site, i.e. naming it after an animal has attracted a following the original full Monty crew might not have intended. Parents get pissed, and junior uses "just trying to do homework" as an alibi (they're learning Python in the schools now, or hadn't you heard). Basically, *any* look and feel is going to rankle some parents, no matter how grown up (*way* too grown up) or how condescending (or otherwise freakazoid). I think Squeakland, like Disney, is only consdescending only on the surface. Under the hood, you'll find real grownup engineers, happy to show you the ropes on a guided tour (if you want to *work* the ropes, you'll have to come through central casting (but in the meantime, go crazy, it's only an image)). Kirby From ajsiegel at optonline.net Sat Aug 12 03:35:52 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 11 Aug 2006 21:35:52 -0400 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44DBFF08.3080207@gmx.de> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> <44DD2430.4030002@optonline.com> <44DD2820.60504@optonline.com> Message-ID: <44DD3078.5090403@optonline.com> kirby urner wrote: > I think Squeakland, like Disney, is only consdescending only on the > surface. I wonder why there is choice to be condescending on any level - seeming you agee that there has been, at some. It's quite easy not to be, really. Lot's of strange choices by a man, who as you said is - "quite confident in his genius". Just another case of a sub-genius like myself unable to keep up? Art From ajsiegel at optonline.net Sat Aug 12 04:06:47 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 11 Aug 2006 22:06:47 -0400 Subject: [Edu-sig] Learning Math or Simulation with Python or Smalltalk In-Reply-To: <44DC7754.4080503@kurtz-fernhout.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44DA1C7F.4040207@optonline.com> <44DAA682.4080903@kurtz-fernhout.com> <44DB36BF.6050108@kurtz-fernhout.com> <44DB79EA.7040301@gmx.de> <44DB8F2A.3090703@gmx.de> <44DBFF08.3080207@gmx.de> <44DC7754.4080503@kurtz-fernhout.com> Message-ID: <44DD37B7.1020008@optonline.com> Paul D. Fernhout wrote: >One of the problems of teaching programming is that many kids need to >learn the very basics sometimes. For example, that is one reason learning >to play music at an early age may be better for building a programmer than >actually learning to program first. > Nice to find something we wholeheartedly agree about. I have said the same here before, almost in so many words. But it is actually a sensitive issue to me. One of my few regrets - so far - as a parent, is that I wasn't more pro-active in seeing my son exposed to the discipline of playing a musical instrument. Makes me sad. Art From kirby.urner at gmail.com Sat Aug 12 04:46:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 11 Aug 2006 19:46:41 -0700 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: <44DD3078.5090403@optonline.com> References: <44D7A969.9050701@kurtz-fernhout.com> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> <44DD2430.4030002@optonline.com> <44DD2820.60504@optonline.com> <44DD3078.5090403@optonline.com> Message-ID: On 8/11/06, Arthur wrote: > I wonder why there is choice to be condescending on any level - seeming > you agee that there has been, at some. > Well it's hard, when you're out in public, to know precisely whom you're dealing with. You don't want to be a hard ass with every friendly face, so you try to be polite, yet not too cold... and immediately they take it as a put down, because if you really respected them, you'd be doing kung fu like in The Matrix. > It's quite easy not to be, really. > I don't experience that. Some people find 'cartoons' as a genre condescending (what, you don't think we could take the 'for real' version?). But I'm saying *only* cartoons work in some corner cases (not really trying to hold back the hard stuff). > Lot's of strange choices by a man, who as you said is - "quite confident > in his genius". > Disney too. > Just another case of a sub-genius like myself unable to keep up? > > Art Praise Bob. Kirby From ajsiegel at optonline.net Sat Aug 12 06:38:35 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 12 Aug 2006 00:38:35 -0400 Subject: [Edu-sig] Freedom: some Smalltalk history and Python implications In-Reply-To: References: <44D7A969.9050701@kurtz-fernhout.com> <44DCB23B.2000205@gmx.de> <44DCC785.2020409@gmx.de> <44DD2430.4030002@optonline.com> <44DD2820.60504@optonline.com> <44DD3078.5090403@optonline.com> Message-ID: <44DD5B4B.4020904@optonline.com> kirby urner wrote: > On 8/11/06, Arthur wrote: > >> I wonder why there is choice to be condescending on any level - seeming >> you agee that there has been, at some. >> > > Well it's hard, when you're out in public, to know precisely whom > you're dealing with. Only a modicum of hard. And "Fantasia" has a modicum of dignity to it. For example. Art From jeff at elkner.net Sat Aug 12 18:02:57 2006 From: jeff at elkner.net (Jeffrey Elkner) Date: Sat, 12 Aug 2006 16:02:57 +0000 Subject: [Edu-sig] Gasp is ready for testing... (and, a look ahead) In-Reply-To: 0 Message-ID: <20060812160257.1717.109912822.divmod.quotient.20763@ohm> Gasp, the rewrite of the livewires API using pygame, is ready for testing. Please see: http://dc.ubuntu-us.org/projects/gasp for more info and to obtain the source. Thanks to David Muffley (sunami.2600 at gmail.com) for writing Gasp! jeff elkner From jeff at elkner.net Sat Aug 12 19:06:34 2006 From: jeff at elkner.net (Jeffrey Elkner) Date: Sat, 12 Aug 2006 17:06:34 +0000 Subject: [Edu-sig] An interactive version of "How to Think Like a Computer Scientist, Learning Python" In-Reply-To: <10c99c2a0608111257o5bd1d6dcmd5db30784e650f4e@mail.gmail.com> Message-ID: <20060812170634.1717.1662689080.divmod.quotient.20815@ohm> Dear Johannes, I am *very* interested in a Crunchy Frog version of the book. I've been working on the 2nd edition this summer, and the latest version can be found here: http://ibiblio.org/obp/thinkCS/python.php I had asked a summer intern of ours, David Muffley (sunami.2600 at gmail.com), to do just what you are offering, but it would be better if you could take the lead and he could provide you assistance if you need it. A few thoughts that may be of help: * the original source for the book is in lore, which is a subset of xhtml. If the VLAM required for Crunchy will pass through lore without complaint, and if it will do "the right thing" on a site that doesn't have Crunchy running, then we could include the VLAM in the main source of the book. * Nick Wheeler has been working on a debian package for Crunchy. I plan to have it running as a server process on our classroom LTSP server, and have it automagically work for students who access the book. I hope we can accomplish that. * In the long term, I was thinking that a Jython version of Crunchy would allow it to be used on-line. If you need any help with Lore, David Muffley said he would be available today. You could also contact me as a backup. Thanks! It is great to see all the progress being made getting tools together for using Python in education. The time since the last Pycon has been *very* active and successful. jeff On Fri, 11 Aug 2006 20:57:33 +0100, Johannes Woolard wrote: >Dear Jeffrey, > >I am one of the Summer of Code students working with the Python >Software Foundation, specifically on educational software. I have been >working on Andre Roberge's Crunchy Frog >(http://www.crunchy.sourceforge.net/) and to finish off my summer's >work I would like to create an interactive version of How to Think >like a Computer Scientist. > >Creating interactive python tutorials with Crunchy is child's play - >it would involve giving all of the examples some form of interactive >element and inserting other interactive bits in the text where >appropriate. You can look at some examples of what I mean if you >download our current preview release from the sourceforge site. > >This would involve minimal changes to the text and content, but would >I believe make the book even more educational and helpful. > >What is your opinion on this? Would you be happy for me to take the >book and (I hope) develop it? > >yrs > >Johannes Woolard > >PS. I am CC'ing this to Andre Roberge, who is also working on crunchy frog. > >-- >Johannes Woolard, >Entz Rep, >Oriel College > >mobile: 07837880296 > From andre.roberge at gmail.com Sat Aug 12 19:28:55 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 12 Aug 2006 14:28:55 -0300 Subject: [Edu-sig] An interactive version of "How to Think Like a Computer Scientist, Learning Python" In-Reply-To: <20060812170634.1717.1662689080.divmod.quotient.20815@ohm> References: <10c99c2a0608111257o5bd1d6dcmd5db30784e650f4e@mail.gmail.com> <20060812170634.1717.1662689080.divmod.quotient.20815@ohm> Message-ID: <7528bcdd0608121028m317f8161t407c7c4e4df067c1@mail.gmail.com> Hi Jeff, and all... Johannes will most likely do a follow-up, but I thought I should add my $0.02. On 8/12/06, Jeffrey Elkner wrote: > Dear Johannes, > [snip] > > * the original source for the book is in lore, which is a subset of xhtml. If the VLAM required for Crunchy will pass through lore without complaint, and if it will do "the right thing" on a site that doesn't have Crunchy running, then we could include the VLAM in the main source of the book. I have not looked at the lore source yet, only at the output from it. It does look like the two could co-exist at the "original source level". The essential bits of VLAM (which stands for Very Little Added Markup) occur inside
 tags, in the form of:
.  If lore doesn't care about the
title attribute of the pre tag (and I would be extremely surprised if
it did), everything should be fine.

When a page is processed by Crunchy (version 0.7 - not released yet),
there is an automatic (style-based) coloring of the python source that
takes place (in addition to the insertion of the interactive
elements.) This means that Crunchy has to be fed an "original source"
rather than one processed from a lore file as it does its own styling;
Crunchy's colourizer would croak on trying to process python code with
added styling.  Furthermore, Crunchy would replace (I think - never
had to check) any existing "class" attribute inside a pre tag by its
own.

We'll try to have the new version released this week so you can see
for yourself; lots has changed since the last public release (0.6).

Andr?

From scott_list at mischko.com  Sat Aug 12 23:00:39 2006
From: scott_list at mischko.com (Scott Chapman)
Date: Sat, 12 Aug 2006 14:00:39 -0700
Subject: [Edu-sig] re-doing GvR in xturtle
In-Reply-To: <7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
References: <44DCC0D1.2090905@mischko.com>	
	<7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com>	
	<44DCF0D9.1090503@mischko.com>
	<7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
Message-ID: <44DE4177.2060809@mischko.com>

Andre Roberge wrote:
> On 8/11/06, Scott Chapman  wrote:
>> Andre Roberge wrote:
>> > I started developping Crunchy for that very purpose: to have a
>> > web-based version of RUR-PLE.  I still plan to do that, eventually...
>> > For the foreseeable future, Crunchy will continue to be developped to
>> > run locally, however with the ability of "fetching" tutorials located
>> > elsewhere on the web.  The work lately has focused on doing this part
>> > in a secure way. The next release (soon!) should be secure that way.
>>
>> Andre,
>> I'm thinking of what all is needed to get Crunchy to do RUR-PLE.  One 
>> thing is
>> the ability to click on the canvas (to build the walls in the 
>> "worlds").  Is
>> there any capability to do this yet?
>>
> 
> There isn't. This would involve some javascript coding of the kind
> I've never done (finding where on a page a click has occurred, etc.).
> It might be straightforward to do.  However, another approach I have
> been thinking about is to have the world-builder being a Tkinter or
> wxPython based app that is launched from Crunchy; this would mean only
> Python programming (no javascript) and totally doable *today* within
> Crunchy. (not in the last public released version, but in the svn.)

Andre,

I'd suggest making world building work in the browser without an external 
application.  This should be easily done with information from these examples:

I found a simple example of painting on a canvas at:
http://blog.monstuff.com/archives/images/JS-graffiti.html

and one with a cute little train animation at:
http://www.xml.com/lpt/a/1639

A fairly simple puzzle example:
http://nic-nac-project.de/~jcm/index.php?nav=puzzle

There is a set of slides from OSCON2006 that have quite a bit of information, 
including a more serious painting program:
http://conferences.oreillynet.com/presentations/os2006/doughtie_gavin.zip
Inside the zip file is oscon_2006\oscon_examples\demos\canvaspainter.html.

http://developer.mozilla.org/en/docs/Canvas_tutorial has lots of great 
information.

Lots of goodies here:
http://andrewwooldridge.com/canvas/

>> What else needs to be done to Crunchy to begin doing RUR-PLE in it?
>>
> Actually, before the world-builder, some means to have the robot moves
> within a canvas.
>
> The first thing to do would be to load an image and have it move on the 
> canvas!

The examples above include this functionality.

> My original plan was to use, as a first prototype, the existing Python
> from rur-ple create a "list" of moves coming from running a user
> program.  This could be passed to a little javascript program with
> each move executed by a setTimeout call with a suitable delay.
 >
> At this point, any "toy" program that simulates robot motion within an
> html canvas would be useful to have to play with and explore ideas.
> 
> To go back to Crunchy, I'd like to replace the html textarea by an
> editor with syntax colouring, like editarea
> (http://cdolivet.net/index.php?page=editArea ).  I've already
> contacted the author and there's a possibility that the current
> limitation (one instance per page) might be removed soon, making it
> suitable to be adapted for Crunchy.  There's a few more things I want
> to implement before I'm ready to move on to rur-ple within Crunchy.
> My (ambitious?) goal is to get there by mid-Fall.
> 
> Any help of any kind (even creating little toy programs/samples) would
> be appreciated!

I'll see what I can do!

Scott

From andre.roberge at gmail.com  Sun Aug 13 21:22:50 2006
From: andre.roberge at gmail.com (Andre Roberge)
Date: Sun, 13 Aug 2006 16:22:50 -0300
Subject: [Edu-sig] re-doing GvR in xturtle
In-Reply-To: <44DE4177.2060809@mischko.com>
References: <44DCC0D1.2090905@mischko.com>
	<7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com>
	<44DCF0D9.1090503@mischko.com>
	<7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
	<44DE4177.2060809@mischko.com>
Message-ID: <7528bcdd0608131222x68446b1ckb325938cd48c922f@mail.gmail.com>

On 8/12/06, Scott Chapman  wrote:
[snip - discussion about what is needed to get rur-ple working within
a browser; first, getting a "world builder"]

> I'd suggest making world building work in the browser without an external
> application.  This should be easily done with information from these examples:

[many good reference sites containing examples deleted...]

> >[Andr? wrote:]
> > Any help of any kind (even creating little toy programs/samples) would
> > be appreciated!
>
> I'll see what I can do!
>
> Scott

Now that Scott has volunteered publicly ;-), I thought I'd issue a
challenge to other edu-sig subscribers: Who is interested in writing a
short mini-tutorial (it can be a single html page, a few screen long)
on a topic of interest to you, that would involve the reader into
trying out the code (even if it's simply executing it by clicking
button, but ideally should suggest trying out changes, etc.) and which
could be included in Crunchy's distribution?   For example, would
Gregor be interested in writing a short intro to x-turtle?   Or do you
have a short doctest-based tutorial you've been thinking about?   Or
perhaps, you've been thinking of possible exercices to use with "How
to think like a computer scientist".

As for "rur-ple", one "conceptual hurdle" I was facing was how to
reproduce the ability to start/pause/resume the program which was
relatively easy to do with Python but which seems much more
complicated with javascript (given that javascript animations use
either setTimeout or setInterval to get them started ... with no
obvious hook into a way to pause and resume the animation).
However, inspired by Scott's search, I searched some more on my own
and found the following:

http://www.adrian.zentner.name/content/projects/javascript/easyAnimation/index.html

Anyone interested in working on javascript-based animation  to be
included within Crunchy (and accessible by the end user by programming
in pure Python) is welcome to join in!

Andr?

From kirby.urner at gmail.com  Sun Aug 13 22:41:36 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 13 Aug 2006 13:41:36 -0700
Subject: [Edu-sig] re-doing GvR in xturtle
In-Reply-To: <7528bcdd0608131222x68446b1ckb325938cd48c922f@mail.gmail.com>
References: <44DCC0D1.2090905@mischko.com>
	<7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com>
	<44DCF0D9.1090503@mischko.com>
	<7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
	<44DE4177.2060809@mischko.com>
	<7528bcdd0608131222x68446b1ckb325938cd48c922f@mail.gmail.com>
Message-ID: 

I'm definitely interested Andr?.  Crunchy Frog could become an
important tool for my Saturday Academy classes and/or Winterhaven
classes (two venues where I've taught Python to pre-college youth),
other classes for adults.

I explored with an earlier version.  I'll see what I can do to get up
to speed with your latest.  Will there be a way to share interactive
sessions independently of the Crunchy Frog platform?  I presume so.
Adapting existing templates is the easiest way to learn a new form.

Kirby


> Who is interested in writing a short mini-tutorial (it can be a single html page, a
> few screen long) on a topic of interest to you, that would involve the reader into
> trying out the code (even if it's simply executing it by clicking button, but ideally
> should suggest trying out changes, etc.) and which could be included in
> Crunchy's distribution?

From andre.roberge at gmail.com  Sun Aug 13 23:09:59 2006
From: andre.roberge at gmail.com (Andre Roberge)
Date: Sun, 13 Aug 2006 18:09:59 -0300
Subject: [Edu-sig] re-doing GvR in xturtle
In-Reply-To: 
References: <44DCC0D1.2090905@mischko.com>
	<7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com>
	<44DCF0D9.1090503@mischko.com>
	<7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
	<44DE4177.2060809@mischko.com>
	<7528bcdd0608131222x68446b1ckb325938cd48c922f@mail.gmail.com>
	
Message-ID: <7528bcdd0608131409r7143dce9kd3f0b41121e3f305@mail.gmail.com>

On 8/13/06, kirby urner  wrote:
> I'm definitely interested Andr?.  Crunchy Frog could become an
> important tool for my Saturday Academy classes and/or Winterhaven
> classes (two venues where I've taught Python to pre-college youth),
> other classes for adults.
>
> I explored with an earlier version.  I'll see what I can do to get up
> to speed with your latest.  Will there be a way to share interactive
> sessions independently of the Crunchy Frog platform?

I'm not totally sure I understand the question.  Perhaps it is my
non-native English understanding, but I read the question like: "Is it
possible to share Python scripts independently of the Python
platform?... i.e. can I run the scripts that someone gave me if I
don't have Python installed on my computer?..."

Interactive "sessions/tutorials" are simply html pages (with minor
markup added).  Crunchy can be thought of as a specialised web server
(with a built-in Python interpreter, etc.)  What Crunchy does is
"fetch" the html page, process it (to add the interactive elements)
and "serve" it to your browser. "Requests" from the browser are
interpreted by Crunchy (the web server) and fed back into the page.

So, users can exchange interactive tutorials (web pages) to their
heart's delight, but they need to have Crunchy running to make use of
them - otherwise, they will be displayed only as static web pages.

> Adapting existing templates is the easiest way to learn a new form.
>
The soon-to-be-released-next-version will have quite a few sample
tutorials as well as documentation that includes all kinds of examples
that can be cut-and-pasted.   We're mostly adding the final touches to
a "security module" before we proceed with the next release (hopefully
this week).

Andr?

> Kirby
>

From kirby.urner at gmail.com  Mon Aug 14 02:46:24 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 13 Aug 2006 17:46:24 -0700
Subject: [Edu-sig] re-doing GvR in xturtle
In-Reply-To: <7528bcdd0608131409r7143dce9kd3f0b41121e3f305@mail.gmail.com>
References: <44DCC0D1.2090905@mischko.com>
	<7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com>
	<44DCF0D9.1090503@mischko.com>
	<7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
	<44DE4177.2060809@mischko.com>
	<7528bcdd0608131222x68446b1ckb325938cd48c922f@mail.gmail.com>
	
	<7528bcdd0608131409r7143dce9kd3f0b41121e3f305@mail.gmail.com>
Message-ID: 

> The soon-to-be-released-next-version will have quite a few sample
> tutorials as well as documentation that includes all kinds of examples
> that can be cut-and-pasted.   We're mostly adding the final touches to
> a "security module" before we proceed with the next release (hopefully
> this week).
>
> Andr?


Thanks Andr?, you answered my question about what teachers would pass
around, assuming Crunchy Frog installed / working.

Tried in Python 2.5 but even after changing to xlm.etree, could find
HTMLTreeBuilder, so ended up with separate ElementTree installation.

It'd be nice if a VLAM evaluation would then give an ensuing Python
interpreter access to the namespace created thereby, something like
i.e. if I define a class and user Evaluates, then user might create
objects of that class in the following line-by-line dialog.

Or is that capability already somehow present and I've missed seeing it?

Kirby

From andre.roberge at gmail.com  Mon Aug 14 03:34:18 2006
From: andre.roberge at gmail.com (Andre Roberge)
Date: Sun, 13 Aug 2006 22:34:18 -0300
Subject: [Edu-sig] re-doing GvR in xturtle
In-Reply-To: 
References: <44DCC0D1.2090905@mischko.com>
	<7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com>
	<44DCF0D9.1090503@mischko.com>
	<7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
	<44DE4177.2060809@mischko.com>
	<7528bcdd0608131222x68446b1ckb325938cd48c922f@mail.gmail.com>
	
	<7528bcdd0608131409r7143dce9kd3f0b41121e3f305@mail.gmail.com>
	
Message-ID: <7528bcdd0608131834x1d1360bfife9d8b2d86bf8dd1@mail.gmail.com>

On 8/13/06, kirby urner  wrote:
> > The soon-to-be-released-next-version will have quite a few sample
> > tutorials as well as documentation that includes all kinds of examples
> > that can be cut-and-pasted.   We're mostly adding the final touches to
> > a "security module" before we proceed with the next release (hopefully
> > this week).
> >
> > Andr?
>
>
> Thanks Andr?, you answered my question about what teachers would pass
> around, assuming Crunchy Frog installed / working.
>
> Tried in Python 2.5 but even after changing to xlm.etree, could find
> HTMLTreeBuilder, so ended up with separate ElementTree installation.

I was hoping that this was not going to be necessary with Python 2.5
(I'm still using 2.4 myself)... It's too bad that ElementTree will
still be required as a separate download.

>
> It'd be nice if a VLAM evaluation would then give an ensuing Python
> interpreter access to the namespace created thereby, something like
> i.e. if I define a class and user Evaluates, then user might create
> objects of that class in the following line-by-line dialog.
>
> Or is that capability already somehow present and I've missed seeing it?
>
No, you did not miss it.  "Evaluate" is used, among others, with an
"editor" (html textarea).  Upon clicking on the Evaluate button, the
code is executed within its own local dict, to avoid possible
interference with Crunchy's own code.

The Python interpreter is also working with its own namespace.  I
think it might be potentially really confusing (for students, not so
for teachers like you) if all the code used within a single session
was somehow all put in the same namespace.  However....

One thing we are working on is the ability to save a file (from an
"editor").  Then, it will be possible to import that file from the
interpreter and proceed from there.  So, one could start with a sample
lesson containing some pre-defined class that could be executed ...
and/or saved into a file.  It could then either be further edited
(within the "editor") or imported at an embedded prompt and "played"
with from there - a bit like you could do with Idle I guess.

One possibility not available with Idle is if you plan a lesson that
way, you can "cut and paste" your interractive practice session right
into a web page (you might need to put in the fake interpreter
prompt), and use it both as a guide when doing a demo, and as a
reference for the students.  The "soon to be released version" will,
if desired, take a "fake interpreter session", extract the input from
the user and put the Python code (minus the interpreter prompt and the
output, but keeping the indentation intact) into an "editor" so that
it can be run all at once, without having to retype everything - and
the output of the live session can be compared with  the one
"recorded" on the html page.
For example, putting the following inside an html page (with the
appropriate vlam code)
==============
>>> def p3():
...     print 3
...
>>> p3()
3
========
will insert the following inside an "editor" box:
====
def p3():
    print 3

p3()
====
Ready to be further edited or evaluated as is.  Or, if you prefer, you
can simply have an interpreter prompt inserted right underneath the
"fake interpreter session", which you can then reproduce.

Thanks for trying it!
Andr?

> Kirby
>

From kirby.urner at gmail.com  Mon Aug 14 17:38:23 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Mon, 14 Aug 2006 08:38:23 -0700
Subject: [Edu-sig] re-doing GvR in xturtle
In-Reply-To: <7528bcdd0608131834x1d1360bfife9d8b2d86bf8dd1@mail.gmail.com>
References: <44DCC0D1.2090905@mischko.com>
	<7528bcdd0608111057m351479dch7a58c9b41232bd0b@mail.gmail.com>
	<44DCF0D9.1090503@mischko.com>
	<7528bcdd0608111552r7d0ceac8y2a3bd723532e52fb@mail.gmail.com>
	<44DE4177.2060809@mischko.com>
	<7528bcdd0608131222x68446b1ckb325938cd48c922f@mail.gmail.com>
	
	<7528bcdd0608131409r7143dce9kd3f0b41121e3f305@mail.gmail.com>
	
	<7528bcdd0608131834x1d1360bfife9d8b2d86bf8dd1@mail.gmail.com>
Message-ID: 

> No, you did not miss it.  "Evaluate" is used, among others, with an
> "editor" (html textarea).  Upon clicking on the Evaluate button, the
> code is executed within its own local dict, to avoid possible
> interference with Crunchy's own code.
>

That is of course the safest thing, and the least confusing in some
applications.

My model coming in, to the genre of interactive tutorials, was the way
J allows users to build "labs" that walk you through a module.  A
little text, a little play, a little text, a little play, just like
Crunchy.  But stuff we've taken the trouble to define at the top,
remains relevant through the session.  So if there's a function def,
you want that in local memory, until with lab is completed.

I think you've given the idea of an easy work around in Crunchy.  Put
all the accumulative code in a module and just import it in every VLAM
to populate a namespace.  Like we import string for example (which I
don't want to go away, but maybe that's just me).

The specific application I have in mind (lesson plan, Crunchy Frog
XHTML), involves defining Integers Modulo N, not by subclassing int or
anything, but simply by redefining __add__ __mul__ and their inverses,
modulo some class variable.  I've written the module many times.  Once
a student VLAMs the class def, I want new objects to be instantiable
throughout.  The solution is easy:  import modulo in each VLAM
textarea.

Kirby

From vceder at canterburyschool.org  Mon Aug 14 17:08:16 2006
From: vceder at canterburyschool.org (Vern Ceder)
Date: Mon, 14 Aug 2006 11:08:16 -0400
Subject: [Edu-sig] Gasp is ready for testing...  (and, a look ahead)
In-Reply-To: <20060812160257.1717.109912822.divmod.quotient.20763@ohm>
References: <20060812160257.1717.109912822.divmod.quotient.20763@ohm>
Message-ID: <44E091E0.9040205@canterburyschool.org>

Uh, I must be missing something...

When I try to import gasp it hits what is in effect an endless loop at 
line 52 because READY is explicitly compared to -1 but above it was set 
to False, which is not necessarily the same as -1. (And it apparently 
never gets changed before it hits the "while 1:" loop)

Am I right in thinking that it would be better (or at least more 
Pythonic?) to do something like:

while 1:
     if READY: break
     else:
         PYGAMEIMPORTERROR = 'Pygame is not installed on your computer'
         raise PYGAMEIMPORTERROR #waits for pygame to be imported and

Even with that changed, it still fails to load pygame in the 
_event_handler section and even if I import pygame manually beforehand, 
I still get the "pygame is not installed" error and the import of gasp 
fails.

Inside the loop at line 50 READY always == False.

My system is an Ubuntu 6.06 with Python 2.4 and pygame 1.7.1.

I hope this makes sense.

Cheers,
Vern Ceder



Jeffrey Elkner wrote:
> Gasp, the rewrite of the livewires API using pygame, is ready for 
> testing.  Please see: http://dc.ubuntu-us.org/projects/gasp for more 
> info and to obtain the source.  Thanks to David Muffley 
> (sunami.2600 at gmail.com) for writing Gasp!
> 
> jeff elkner

-- 
This time for sure!
    -Bullwinkle J. Moose
-----------------------------
Vern Ceder, Director of Technology
Canterbury School, 3210 Smith Road, Ft Wayne, IN 46804
vceder at canterburyschool.org; 260-436-0746; FAX: 260-436-5137

From da.ajoy at gmail.com  Mon Aug 14 22:59:32 2006
From: da.ajoy at gmail.com (Daniel Ajoy)
Date: Mon, 14 Aug 2006 15:59:32 -0500
Subject: [Edu-sig] Wizard Schools (have you heard about them?)
Message-ID: <44E09DE4.4040.91063D6@da.ajoy.gmail.com>

I'm not sure where I got this from. But it's quite
interesting:

http://steve-yegge.blogspot.com/2006/07/wizard-school.html

Daniel


From kirby.urner at gmail.com  Tue Aug 15 00:24:55 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Mon, 14 Aug 2006 15:24:55 -0700
Subject: [Edu-sig] Wizard Schools (have you heard about them?)
In-Reply-To: <44E09DE4.4040.91063D6@da.ajoy.gmail.com>
References: <44E09DE4.4040.91063D6@da.ajoy.gmail.com>
Message-ID: 

It's a spoof aka satire:

"I wish I'd thought of it back in 2006. I guess we all do."

but has lots of truths woven through it -- like all good science fiction.

The classism (rich vs. poor) is troubling, as one hopes the
wizard-recruiters come through *every* neighborhood in their gnu math
bizmos.  Why give preferential treatment to the historically
advantaged?  My biases run in the other direction, I must confess.

Not spoofing (though it may sound like it):

http://mybizmo.blogspot.com/2006/08/scripting-road-show.html

Kirby


On 8/14/06, Daniel Ajoy  wrote:
> I'm not sure where I got this from. But it's quite
> interesting:
>
> http://steve-yegge.blogspot.com/2006/07/wizard-school.html
>
> Daniel
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>

From johannes.wollard at gmail.com  Tue Aug 15 03:01:28 2006
From: johannes.wollard at gmail.com (Johannes Woolard)
Date: Tue, 15 Aug 2006 02:01:28 +0100
Subject: [Edu-sig] Crunchy version 0.7 is here!
Message-ID: <10c99c2a0608141801pe59a833t25b1e3971c10a4e2@mail.gmail.com>

Hi Everyone,

Version 0.7 of Crunchy has been released.  It is available on Sourceforge
(http://sourceforge.net/project/showfiles.php?group_id=169458)

Crunchy, the Interactive Python Tutorial Maker, is an application that
transforms an ordinary html-based Python tutorial into an interactive
session within a web browser.  Currently, only Firefox is supported.
Crunchy is developed and tested on Windows XP and Ubuntu Dapper Drake,
but should work on any suitable windows or UNIX system. Apart from
Firefox and Python, Crunchy's only dependency is Elementtree,
available from http://effbot.org/zone/element-index.htm. This still
applies if you are using Python 2.5 because we use parts of Elementtree
that are not included in the Python 2.5 standard library.

0. Name change
To prevent confusion with an existing program named CrunchyFrog,
"Crunchy Frog" has been renamed as "Crunchy", short for "Crunchy, the
Interactive Python Tutorial Maker".

1. *Security fix*
The previous versions of Crunchy allowed tutorials containing
arbitrary (and hidden) javascript code to be loaded within a browser
window.  The new version removes any existing javascript code prior to
processing for display within a browser.

Feel free to try and break this - and please report any findings back to us.

2. New functionality.
* It is possible to run external programs from within the browser;
sample demos include GUI programs with 1. Tkinter, 2. pyGtk, 3.
wxPython, 4. Pygame
* Automatic syntax colouring of (static) Python code, including (as an
option) line numbering.
* New plotting canvas with simple to use api to draw mathematical functions
* Drawing & plotting canvas can be set to arbitrary size.
* Multiple canvas can now appear on same page.
* New addition and simplification to the sound api.
* Simplification of error message (tracebacks) more suitable for beginners.

3. New visual design:
* Integrated menu which can be styled through custom css
* Three sample css styles now included (selectable via the browser menu)

4. New content:
* First draft sound tutorial exploring concepts of frequency, beats,
harmonics (Fourier series), etc.
* New addition to the basic "Crunchy user" tutorial
* Additions to all reference documentation (sound & graphics api, vlam
options, etc.)

Please send bug reports and feedback to Andr? Roberge (andre.roberge at gmail.com)
and/or Johannes Woolard (johannes.wollard at gmail.com).

We hope you enjoy it!


-- 
Johannes Woolard,
Entz Rep and CompSci,
Oriel College, Oxford, UK

mobile: 07837880296

From kirby.urner at gmail.com  Tue Aug 15 08:28:34 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Mon, 14 Aug 2006 23:28:34 -0700
Subject: [Edu-sig] What was that syntax again?
Message-ID: 

Someone (Dethe?  Ian?) showed me syntax I'd never seen before around
Python dictionary defining, involving an equal sign I thought.  Tried
searching my gmail, other things.  Maybe faster to just ask:  what was
that syntax again?

Kirby

From john.zelle at wartburg.edu  Tue Aug 15 15:21:49 2006
From: john.zelle at wartburg.edu (John Zelle)
Date: Tue, 15 Aug 2006 08:21:49 -0500
Subject: [Edu-sig] What was that syntax again?
In-Reply-To: 
References: 
Message-ID: <200608150821.49927.john.zelle@wartburg.edu>

Is this what you're looking for:
>>> d = dict(key1=52, key2=12)
>>> d
{'key2': 12, 'key1': 52}

Of course this only works for keys that are strings.

--John

On Tuesday 15 August 2006 1:28 am, kirby urner wrote:
> Someone (Dethe?  Ian?) showed me syntax I'd never seen before around
> Python dictionary defining, involving an equal sign I thought.  Tried
> searching my gmail, other things.  Maybe faster to just ask:  what was
> that syntax again?
>
> Kirby
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig

-- 
John M. Zelle, Ph.D.             Wartburg College
Professor of Computer Science    Waverly, IA     
john.zelle at wartburg.edu          (319) 352-8360  

From kirby.urner at gmail.com  Tue Aug 15 18:51:19 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 15 Aug 2006 09:51:19 -0700
Subject: [Edu-sig] What was that syntax again?
In-Reply-To: <200608150821.49927.john.zelle@wartburg.edu>
References: 
	<200608150821.49927.john.zelle@wartburg.edu>
Message-ID: 

Yes, thank you.  I was forgetting that this is ordinary function
syntax, with assignment (dict being the function).  I was trying to do
it with curly braces.

Kirby


On 8/15/06, John Zelle  wrote:
> Is this what you're looking for:
> >>> d = dict(key1=52, key2=12)
> >>> d
> {'key2': 12, 'key1': 52}
>
> Of course this only works for keys that are strings.
>
> --John
>
> On Tuesday 15 August 2006 1:28 am, kirby urner wrote:
> > Someone (Dethe?  Ian?) showed me syntax I'd never seen before around
> > Python dictionary defining, involving an equal sign I thought.  Tried
> > searching my gmail, other things.  Maybe faster to just ask:  what was
> > that syntax again?
> >
> > Kirby
> > _______________________________________________
> > Edu-sig mailing list
> > Edu-sig at python.org
> > http://mail.python.org/mailman/listinfo/edu-sig
>
> --
> John M. Zelle, Ph.D.             Wartburg College
> Professor of Computer Science    Waverly, IA
> john.zelle at wartburg.edu          (319) 352-8360
>

From radenski at chapman.edu  Thu Aug 17 01:50:36 2006
From: radenski at chapman.edu (Radenski, Atanas)
Date: Wed, 16 Aug 2006 16:50:36 -0700
Subject: [Edu-sig] Python as  first language - yet another paper
Message-ID: 

For those of you who might be interested, I have posted a recent paper
on the use of Python as a first language. The paper is entitled:

"Python First": A Lab-Based Digital Introduction to Computer Science

http://www1.chapman.edu/~radenski/research/abstracts/python-iticse06.htm
l

http://www1.chapman.edu/~radenski/research/papers/python-iticse06.pdf

I presented the above paper at ITiCSE 06, the Eleventh Annual Conference
on Innovation and Technology in Computer Science Education, Bologna,
Italy, 26-28 June, 2006. The Conference was sponsored by the ACM Special
Interest Group on Computer Science Education. 

Others have already published successful experiences with Python in
CS1-type courses. The original contribution of this work can be found in
"Python First", a comprehensive online study pack which includes
detailed self-guided lab assignments, among other useful resources. With
detailed self-guided labs, students are free to make various choices
that best suit their background and goals. 

The "Python First" pack is published at http://studypack.com.

Atanas Radenski      
mailto:radenski at chapman.edu      http://www.chapman.edu/~radenski/

There are wavelengths that people cannot see, there are sounds that
people cannot hear, and may be computers have thought that people cannot
think -- Richard Hamming

From kirby.urner at gmail.com  Thu Aug 17 06:08:48 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Wed, 16 Aug 2006 21:08:48 -0700
Subject: [Edu-sig] Python as first language - yet another paper
In-Reply-To: 
References: 
Message-ID: 

On 8/16/06, Radenski, Atanas  wrote:
> For those of you who might be interested, I have posted a recent paper
> on the use of Python as a first language. The paper is entitled:
>
> "Python First": A Lab-Based Digital Introduction to Computer Science
>

Thank you sir.

I think your arguments will be understandable to people outside of CS,
which is important, as there's a lot of concern about how we're not
getting enough competent technical people across the board, and CS is
seen as a bottleneck, i.e. its inability to recruit seems
counter-intuitive given it has, in principle, access to a lot of the
best toys.  CS-related careers have a lot of glitz and glamour.  But
as you say, a dry course in nothing-but-Java doesn't give that
impression, and would-be stars wander off to other majors.

Internally to CS, however, there's the more esoteric line we draw, not
between commercial and education languages, but between system and
agile languages, the former being used to write the latter.  Classic
core Python is a very commercial project because it's written in
lickity-split C code, and that's about the fastest on the planet.

But you don't want to recruit through a tiny pinhole.  Hard core C
coders will emerge later in the game.  Initially, you want something
softer and broad spectrum, and that means no system language at all,
but an agile one.  If we leave "agile" strategically under-defined, we
can use it to sneak J and APL into the fold, i.e. lets snarf up some
functional assets while we're at it and not always toot just OO.  What
we're *really* talking about are VHLLs (very high level languages).

But this latter way of drawing the battle map is too esoteric for the
average non major, unless you want to build it in as a feature of your
intro course.  And this, I think, is a good strategy in any showcase
class designed to recruit new majors:  give a lot of overviews and
previews, about what's ahead, forks in the road, expected
developments.

Use Python as exemplary of what we mean by "source code", but don't
discourage the impression that this is a vast territory, with as many
languages as O'Reilly has animals, and then some.  Plus we like to
give a sense of history, of how we got to this point.  We allude to
other disciplines, even tell some war stories (e.g. Turing versus
Enigma @ Bletchley Park).

I'm hoping that Python continues to win friends among those who write
game engines, so that one day, you want to build your own dinosaur,
with Python for a nervous system, that's just a matter of importing a
module and modifying its types.  Pretty soon you'll have the creature
of your dreams, plus you've gained some insight into how coded
operations are behind every screen, every menu (we hope delivering
snappy performance, but that's not always the case).

A mouse click is an event.  You've poked in the guts of wxPython, so
you know what that means.

Every surface is sensitive, because every widget inherits not just
from Window, but from Event.  And Python makes this easy because it
supports multiple inheritance.  By the end of the first quarter,
students should understand what that means, even without ever having
to have written a line of Java or C.

As for whether Java is the right follow-on for a CS2, I think a bigger
success in recruiting will open more options there too.

Yes, the Java track is secure for the time being.  But don't deny
those who wish to dive into C, now that they're hooked, now that they
know that coding is for them.  Explore the guts of CPython, the study
the Java and C# implementations.

It'd be wonderful for Python's future if we could be assured of future
system language competence in our community, as that's the only reason
we have this community in the first place.  Our heros are system
language programmers.  We don't diss those languages, and those that
use them.  We love that these VLLLs were powerful enough to in turn
give us something less painful to code in.

A generation (Guido's, some younger, some older) has sucked a lot of
pain out of the programming experience, and that's a very good thing
for CS over the long haul.

Kirby

From da.ajoy at gmail.com  Thu Aug 17 18:36:11 2006
From: da.ajoy at gmail.com (Daniel Ajoy)
Date: Thu, 17 Aug 2006 11:36:11 -0500
Subject: [Edu-sig] 20,000 Indiana students are now Linux-enabled
Message-ID: 

20,000 Indiana students are now Linux-enabled

http://www.crn.com/sections/breakingnews/breakingnews.jhtml?articleId=192201386


Daniel

From kirby.urner at gmail.com  Thu Aug 17 22:16:51 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 17 Aug 2006 13:16:51 -0700
Subject: [Edu-sig] 20,000 Indiana students are now Linux-enabled
In-Reply-To: 
References: 
Message-ID: 

Thanks Daniel, I just put some spin on that in a Math Forum thread,
with last line acknowledgement to you as my source for this link:
http://mathforum.org/kb/thread.jspa?threadID=1429595&tstart=0

Kirby

On 8/17/06, Daniel Ajoy  wrote:
> 20,000 Indiana students are now Linux-enabled
>
> http://www.crn.com/sections/breakingnews/breakingnews.jhtml?articleId=192201386
>
>
> Daniel
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>

From andre.roberge at gmail.com  Thu Aug 17 22:49:09 2006
From: andre.roberge at gmail.com (Andre Roberge)
Date: Thu, 17 Aug 2006 17:49:09 -0300
Subject: [Edu-sig] Request advice/opinions on translations for Crunchy
Message-ID: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>

Hi everyone,

This message may not be of huge interest to people who don't need to
use languages other than English.

I've started the French translation for Crunchy.  There are four types
of translations that need to be done:
1. Navigation menu within Crunchy. [Done]
2. Actual documentation and tutorials. [Not done except for the intro
html page - will not be done for a *long* time, at least not by me.]
3. "messages" to the user.  For example, we've simplified the Python
tracebacks so that the message is more user-friendly.  Also "button
labels" are going to be translated. This is the main part I am working
on to translate.
4. [and this is what I'm mostly asking about]  Graphics commands, for
example circle() or set_line_color() or set_line_colour()  [we support
both syntax ;-)].  The strings are ready to be translated [i.e.
replace circle() by cercle(), or set_line_color() by
couleur_de_ligne()] but, since the documentation (and tutorials) are
likely to be only in English, I'm wondering about the wisdom of
translating them.

Any idea?

Andr?

From johannes.wollard at gmail.com  Thu Aug 17 23:22:21 2006
From: johannes.wollard at gmail.com (Johannes Woolard)
Date: Thu, 17 Aug 2006 22:22:21 +0100
Subject: [Edu-sig] Request advice/opinions on translations for Crunchy
In-Reply-To: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>
References: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>
Message-ID: <10c99c2a0608171422h2ad54341rb5b7c6ad59bebfa@mail.gmail.com>

Hiya,

> [snip other stuff]

> 4. [and this is what I'm mostly asking about]  Graphics commands, for
> example circle() or set_line_color() or set_line_colour()  [we support
> both syntax ;-)].  The strings are ready to be translated [i.e.
> replace circle() by cercle(), or set_line_color() by
> couleur_de_ligne()] but, since the documentation (and tutorials) are
> likely to be only in English, I'm wondering about the wisdom of
> translating them.

While the docs and tutorials will only be in English for now I think
the infrastructure for translating the API should be present. One of
the main aims of the Ubuntu project is that all the included software
has full translations into as many languages as possible, so if we
want Crunchy to be part of EdUbuntu at some point in the future we
should to at least make it possible to translate everything.

> Any idea?
>
> Andr?
>

Johannes

From andre.roberge at gmail.com  Thu Aug 17 23:37:57 2006
From: andre.roberge at gmail.com (Andre Roberge)
Date: Thu, 17 Aug 2006 18:37:57 -0300
Subject: [Edu-sig] Request advice/opinions on translations for Crunchy
In-Reply-To: <10c99c2a0608171422h2ad54341rb5b7c6ad59bebfa@mail.gmail.com>
References: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>
	<10c99c2a0608171422h2ad54341rb5b7c6ad59bebfa@mail.gmail.com>
Message-ID: <7528bcdd0608171437n3990d4fbo280c884907c06117@mail.gmail.com>

Hi Johannes,

Now, edu-sig readers will get a feel for the kind of discussions that
goes behind the scene while Crunchy is being improved upon ;-)

On 8/17/06, Johannes Woolard  wrote:
> Hiya,
>
> > [snip other stuff]
>
> > 4. [and this is what I'm mostly asking about]  Graphics commands, for
> > example circle() or set_line_color() or set_line_colour()  [we support
> > both syntax ;-)].  The strings are ready to be translated [i.e.
> > replace circle() by cercle(), or set_line_color() by
> > couleur_de_ligne()] but, since the documentation (and tutorials) are
> > likely to be only in English, I'm wondering about the wisdom of
> > translating them.
>
> While the docs and tutorials will only be in English for now I think
> the infrastructure for translating the API should be present. One of
> the main aims of the Ubuntu project is that all the included software
> has full translations into as many languages as possible, so if we
> want Crunchy to be part of EdUbuntu at some point in the future we
> should to at least make it possible to translate everything.
>
Well, as Johannes knows, everything in the code is in place for
translating these graphics instructions.  So, it is possible to
translate everything.

The actual translation process involves the creation of a "catalog"
(that's the term used in i18n) for each language, where every
translatable string included in Crunchy is mapped to an appropriate
translation in that language.  I am currently in the process of
translating the various strings into French.  All messages to the
user, button labels, menus, etc., will definitely be translated.

At this point, I am inclined to have the French catalog contain the
string "color" as a translation of "color"  (that's right... no actual
translation performed) since there's no documentation or tutorial
written that would indicate that the graphics command in French would
be "couleur".  I imagine someone reading the English doc and trying a
program with "color" get extremely frustrated getting the message
"color n'est pas une commande reconnue", not realising that he can't
trust the docs but has to guess how that command has been translated
in French.  (Easy here ... but not so easy for other commands like
set_fill_color...).

Of course, when thousands of people start using Crunchy in a myriad of
languages, with tutorials translated ... the decision of providing a
true translation in the "catalog" of graphics commands will likely be
different.

Andr?

From dcrosta at sccs.swarthmore.edu  Thu Aug 17 23:53:58 2006
From: dcrosta at sccs.swarthmore.edu (Dan Crosta)
Date: Thu, 17 Aug 2006 17:53:58 -0400
Subject: [Edu-sig] Request advice/opinions on translations for Crunchy
In-Reply-To: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>
References: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>
Message-ID: <11DF3885-BF83-4ECE-B01F-EC0E4BC99591@sccs.swarthmore.edu>

On Aug 17, 2006, at 4:49 PM, Andre Roberge wrote:
> 4. [and this is what I'm mostly asking about]  Graphics commands, for
> example circle() or set_line_color() or set_line_colour()  [we support
> both syntax ;-)].  The strings are ready to be translated [i.e.
> replace circle() by cercle(), or set_line_color() by
> couleur_de_ligne()] but, since the documentation (and tutorials) are
> likely to be only in English, I'm wondering about the wisdom of
> translating them.

Out of curiosity, how are you going to handle translating the api? Is  
there some functionality for this in python itself? Are you actually  
emulating method accesses with __getattr__()? Are you using some  
other tool to translate the method names (and presumably if you were,  
for readability you could translate variable names, comments, etc, as  
well) into actual internationalized source files?

- d

From andre.roberge at gmail.com  Fri Aug 18 00:32:29 2006
From: andre.roberge at gmail.com (Andre Roberge)
Date: Thu, 17 Aug 2006 19:32:29 -0300
Subject: [Edu-sig] Request advice/opinions on translations for Crunchy
In-Reply-To: <11DF3885-BF83-4ECE-B01F-EC0E4BC99591@sccs.swarthmore.edu>
References: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>
	<11DF3885-BF83-4ECE-B01F-EC0E4BC99591@sccs.swarthmore.edu>
Message-ID: <7528bcdd0608171532h7650678ey66e168183631aa4e@mail.gmail.com>

On 8/17/06, Dan Crosta  wrote:
> On Aug 17, 2006, at 4:49 PM, Andre Roberge wrote:
> > 4. [and this is what I'm mostly asking about]  Graphics commands, for
> > example circle() or set_line_color() or set_line_colour()  [we support
> > both syntax ;-)].  The strings are ready to be translated [i.e.
> > replace circle() by cercle(), or set_line_color() by
> > couleur_de_ligne()] but, since the documentation (and tutorials) are
> > likely to be only in English, I'm wondering about the wisdom of
> > translating them.
>
> Out of curiosity, how are you going to handle translating the api? Is
> there some functionality for this in python itself? Are you actually
> emulating method accesses with __getattr__()? Are you using some
> other tool to translate the method names (and presumably if you were,
> for readability you could translate variable names, comments, etc, as
> well) into actual internationalized source files?

I'll address the last question first.  I am not aware of *any* program
that has its source files translated.  Nor do I see any reason to ever
want to do so.  The source code (including comments) for Crunchy is
written in English and will remain as such.  This is the same for the
source code of the Python standard library.

A good reference (with links) for understanding translations for
computer programs is:
http://wiki.wxpython.org/index.cgi/Internationalization

In what follows, I'll provide a "simplified" description....

First, some background. Crunchy is designed to deliver interactive
Python tutorials.  In order to make tutorials more interesting, some
basic graphics capabilities (shape drawing, function plotting, etc.)
have been built-in.  A simple graphics program might include things
like:
===
circle( (100, 100), 30)
set_fill_color("red")
filled_circle( (200, 200), 50)
===  etc...
This program, when executed, produces a series of javascript commands
that are used to draw the corresponding shapes within an html
.  The way this is done is that the
user code are "exec"uted in a Python dict that contains mappings from
{"circle" : actual_command_that_draws_circles, # other dict definitions here }

The actual code (inside Crunchy) used to process the code entered by
the user looks something like:
exec user_code in graphics_dict

and the resulting output is the javascript code required to produce a
graphics in the browser.

To allow a possible translation of the commands, the string "circle"
is actually written in the code as
_("circle")
following the standard "gettext" notation to denote strings that can
be translated.  At present the function
_("args")
simply returns "args".  When translation is introduced, _() is
redefined and returns the translated value provided by the "catalog".
Thus, I can have in the catalog the correspondance
"cercle" <--> "circle"
which will mean that the Python code
_("circle"): actual_command_that_draws_circles
will actually be taken to mean
"cercle": actual_command_that_draws_circles

Note that we've only provided translations for Crunchy-specific
commands, like the graphics api.  In theory, it would be possible to
do the same for Python functions/methods i.e. we
could have a translation of
getcwd
to
trouver_le_repertoire_courant
but that would be rather silly and not very helpful for someone who
wants to learn Python.

This is a rather brief description and I will gladly attempt to
clarify any specific point.

Andr?

>
> - d
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>

From kirby.urner at gmail.com  Fri Aug 18 01:52:04 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Thu, 17 Aug 2006 16:52:04 -0700
Subject: [Edu-sig] Request advice/opinions on translations for Crunchy
In-Reply-To: <7528bcdd0608171532h7650678ey66e168183631aa4e@mail.gmail.com>
References: <7528bcdd0608171349m4a7ec275q98231c05fcbc20ea@mail.gmail.com>
	<11DF3885-BF83-4ECE-B01F-EC0E4BC99591@sccs.swarthmore.edu>
	<7528bcdd0608171532h7650678ey66e168183631aa4e@mail.gmail.com>
Message-ID: 

As we learned from Plone, internationalization has much to do with
"skinning", with a quick way to recustomize depending on a user's
needs.

(a) should we just freeze a master disk for each language,
(b) or might one distro handle multiple languages through some core
library reskinning service?

I think interimly, the former is more practical, as these core
services don't exist yet, what with unicode still being somewhat in
its infancy and so on.

We need the assistance of locales to get their versions defined in
some electronic archive.  Like, where's the gaelic version of Linux,
or at least a GNU desktop thereon?

One solution I've found: http://www.kde.ie/ga.php

Kirby


On 8/17/06, Andre Roberge  wrote:
> On 8/17/06, Dan Crosta  wrote:
> > On Aug 17, 2006, at 4:49 PM, Andre Roberge wrote:
> > > 4. [and this is what I'm mostly asking about]  Graphics commands, for
> > > example circle() or set_line_color() or set_line_colour()  [we support
> > > both syntax ;-)].  The strings are ready to be translated [i.e.
> > > replace circle() by cercle(), or set_line_color() by
> > > couleur_de_ligne()] but, since the documentation (and tutorials) are
> > > likely to be only in English, I'm wondering about the wisdom of
> > > translating them.

From mpaul at bhusd.k12.ca.us  Fri Aug 18 23:58:07 2006
From: mpaul at bhusd.k12.ca.us (Michel Paul)
Date: Fri, 18 Aug 2006 14:58:07 -0700
Subject: [Edu-sig] where can I find xturtle?
Message-ID: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F01@MAIL.bhusd.k12.ca.us>

It was recommended that I take a look at xturtle.

I've tried:  http://ada.rg16.asn-wien.ac.at/~python/xturtle

but for some reason keep getting "object not found".  I have found many discussions about xturtle, but I can't find another route to the actual code.

Thanks very much,

Michel Paul

From pdfernhout at kurtz-fernhout.com  Sun Aug 20 17:48:00 2006
From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout)
Date: Sun, 20 Aug 2006 11:48:00 -0400
Subject: [Edu-sig] PataPata 0.2.04 released (Smalltalk parser;
	unified worlds)
Message-ID: <44E88430.1070507@kurtz-fernhout.com>

I've released version 0.2.04 of PataPata on SourceForge:
  http://sourceforge.net/project/showfiles.php?group_id=165910

Big changes:

* DandelionGarden, ExampleWorld, and WorldInspector now all use identical 
code file for TK and Swing. This is a big milestone, as even if the 
results don't always look 100% the same, being able to have an identical 
source file could be the basis for making a HyperCard-like format for 
PataPata to do simple stacks that work with both Python and Jython.
There remains work to be done on unifying the support files, but that is 
hidden to the user worlds. The xturtle example is in a separate 
TK-specific world file now. WX and GLUT still use their own world files.

* Added Pointrel version with Smalltalk-like parser (in Pointrel 
directory, not integrated into GUI yet, but included wx version).
This is based mostly on work I did about two years ago, but which I never 
released before. The Pointrel Smalltalk-like parser work may be of 
interest for a few reasons:
1. It shows Python (the language plus libraries) being a universal VM for 
other languages. (Yes, performance is a potential issue, etc.)
2. The Pointrel data storage format used makes explicit a lot of implicit 
things in data storage for programs, and so might be of interest for 
people learning how program compiling and evaluation can be represented 
abstractly (using Python).
3. It might someday support blending Python and Smalltalk/Self syntaxes 
for prototype development under PataPata.
Anyway, it's an experiment more than anything else. It does not use 
bytecodes to represent compiled programs, instead it uses "triads". 
MethodContext objects should work; BlockContext objects are probably 
broken in this variation (though BlockContext objects should work in the 
older 20041201 code).

 From the Pointrel subdirectory README.txt file:

=====
Work in progress toward support Smalltalk syntax (for prototypes) on 
Python using triadal data storage.

File pointrel20041201.py is a standalone program which offers a 
smalltalk-like development environment (with a browser, inspector, 
debugger, and workspace) Python under wxWidgets using a Pointrel triadal 
approach. This is the most complete. It can read and write the image.p 
file. From the first window you can open others.

File smalltalkToPython.py is a first cut at translating Smalltalk to 
Python (not finished). This just prints out an attempt at Python code to 
the console. It is mostly the same code as pointrel20041201.py without the 
GUI and with a different code generator.

File protos20060808.py calls pointrel20060808.py and other pointrel*.py 
files to parse a Smalltalk-like syntax with a different pointrel and VM 
approach  (intended to be simpler and clearer than 20041201 version).
Essentially, this is mostly the same code as pointrel20041201.py but 
broken up into separate files and with changes to the VM instruction 
evaluation (and triadal storage approach) and with the wx GUI removed. It 
prints out:
"""
Welcome to Protos
('String', 'The result of adding 10 and 20 is:')
('Integer', '30')
halting
"""
As minor as that output is, it accomplishes the addition using a message 
send and a stack of two [MethodContext] objects.

Usage:
  python pointrel20041201.py
  python smalltalkToPython.py
  python protos20060808.py
  python pointrel20060808.py (makes and reads test.im, and prints test output)

============

--Paul Fernhout

From kirby.urner at gmail.com  Sun Aug 20 22:21:45 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 20 Aug 2006 13:21:45 -0700
Subject: [Edu-sig] Another update from the field...
Message-ID: 

Per blog, I've been huddling with M language, basis of MUMPS, given
its huge installations and emerging dino language status.

CS has a new challenge:  whereas round one was about a scatter gun of
languages "making it" into commercial use, round two is about
recruiting critical numbers to a veritable dinotopia of exotic
solutions that nevertheless work, and starting over would be more
expensive than simply holding on to a good thing.

What I think this means in practice is marketing CS to humanities
majors as a way to gain an esoteric proficiency in some vintage museum
quality hieroglyphics, sufficient to pay quite a few bills, if not all
of them.  That might be an avocation more than your core identity
(you're a scuba diver for a living, not a J programmer -- but yes, you
write J and it at least pays for your air).

I'm afraid I'm pretty harsh in my criticisms of current CS (this is
back office stuff, so I feel free to take the gloves off), for its
dry-as-bones mono-lingual culture.  We should be advertising the
diversity of lifestyles available through this intro-level portal
(CS0).  As recruiters, we're hear to expand their horizons, not force
'em into cubicles (or visions thereof) before their time.

On another front (closer to Plone), I'm busy trying to talk a client
*out* of using a content management system (CMS) where plain old
static web pages would do.  The problem with pouring your content into
a ZODB or some such, is your stuff has no legs, no autonomy, without
this complicated wrapper.  For some, that's the whole point.

For others, they see a CMS as a crutch, something to save them from
learning any XHTML/CSS.  What they don't realize:

(a) the learning curve is just as steep, at least up to the basic
level in both areas (operating a CMS API as an end user is really no
easier than mastering beginner-level DreamWeaver) and

(b) you're hitching your star to the arc of a CMS, whereas straight
HTML is pretty much guaranteed to run anywhere.

In my client's case, the CMS is an open source PHP project, and looks
to be capable and high caliber.  As soon as you want to add eCommerce
features, polling, forums, other bells and whistles, a CMS starts to
look pretty good (I love Plone by the way, even if I'm not a master
archetypes programmer).  But if you're just wanting a "cyber business
card" web site, as this client does, static HTML is likely a better
solution.

I recommend this party line to Zope sales by the way.  Don't be afraid
to turn people away on the basis of "you just need to learn some
webmaster basics or hire a smart HTML jockey for your needs" i.e.
don't market a CMS as "the right solution for everybody" any more than
"computer programming for everybody" means we all program the same
way, or all have to use Python.

Kirby

From kirby.urner at gmail.com  Sun Aug 20 23:39:52 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 20 Aug 2006 14:39:52 -0700
Subject: [Edu-sig] Another update from the field...
In-Reply-To: 
References: 
	
Message-ID: 

On 8/20/06, Dethe Elza  wrote:

> Eliot Kimber (aka Dr. Macro) has a great series on his blog about
> building an XML-based CMS.  It is really applicable beyond XML (and
> most XML stuff is applicable to HTML).  He advises (and is building
> open-source and blogged all the way) a solution on top of Subversion
> (versioning software).

Does Eliot consider Zope 3 a good example of XML-based CMS?  I've seen
it presented as Model-View-Controller, with ZODB providing an API to
the model, XML controlling the View, and Zope + custom Python being
the controller.

> If HTML is the scary bit, I suggest looking at reStructured Text/
> Markdown/Textile as alternatives (depending on need).  All convert to
> nice (X)HTML.  reST is the most complicated, but can also be
> converted to XML, PDF, PPT, and other formats, and you can add your
> own hooks to bring in more advanced features.

"Convert to nice (X)HTML" where though?  You're still implying some
engine doing the translation, whereas straight XHTML/CSS liberates you
from anybody's Wiki or whatever framework.

Per my friend Gene Fowler's vision, I think we should just plan on
spreading XML fluency at least to a point where fear of XHTML is the
exception, not the rule.  The basics aren't that hard -- arguably as
simple as all the rules reST gives you.

Gene's vision:
http://controlroom.blogspot.com/2006/08/more-cast.html

> If getting the content up on the web is the problem, a wiki or blog
> tool might be the answer, or simply showing them how to share a
> remote directory to the desktop for editing.

Too non-standard for a basic company website.  This is a small startup
that can't afford to look too quirky, given the invention itself is
already on the wild side.  For a sneak peak:
http://www.4dsolutions.net/flextegrity/ (I'll be taking it down within
12 hours, so expect a broken link pretty soon -- sharing with you
because you track the Bucky stuff some).

The real site will debut on flextegrity.com in the near future,
probably as a PHP site (i.e. I expect my good advice to be rejected).

> A full-fledged CMS is often the wrong solution even for the high-end
> corporations that they're generally targetted for, and always require
> more effort than is anticipated.
>
> --Dethe
>

Yes.  A CMS is a wonderful thing when it's the right tool for the job,
but in too many cases it's promulgated as a way to make the web
"friendly" to newbies, whereas just learning a little HTML in a
WYSIWIG editor would be a kinder gentler thing to share with them
(keeps them free of the CMS itself, a gravitational field).

Per Gene's vision, I want to see more mixing of XML with everyday
language arts.  Learn some tags at the same time you're learning basic
punctuation, and the difference between a verb and a noun.  No one
finishing the Shuttleworth sequence, for example, should feel "afraid
of HTML".

Kirby

From ms at cerenity.org  Mon Aug 21 02:49:42 2006
From: ms at cerenity.org (Michael)
Date: Mon, 21 Aug 2006 01:49:42 +0100
Subject: [Edu-sig] Another update from the field...
In-Reply-To: 
References: 
	
	
Message-ID: <200608210149.43592.ms@cerenity.org>

On Sunday 20 August 2006 22:39, kirby urner wrote:
...
> whereas straight XHTML/CSS liberates you
> from anybody's Wiki or whatever framework.

People write and use wikis to have *human* friendly markup. (Specifically and 
most often more friendly to the person who wrote it, and people who think 
like them) XML & friends are machine friendly, human readable markup.

There's a huge world of difference between the two - both in terms of human 
factors and practicalities. This often boils down to the fact that many 
complex (but human friendly) wiki markups are actually best parsed as context 
sensitive grammars (which is why they're often so repeated-pass regex heavy). 
Whereas machine friendly markup is more often (not always) single pass 
parseable.

Also *often* the ability of wiki style markup to be understood in a
plain text environment is much easier for people to parse, than XML style annotations. But far less parseable than a 
wysiwyg engine (such as included in dojo toolkit) which already does the 
parsing :-) (and spits out plain old HTML)

(It's worth remembering a design goal of XML is machine friendliness and human 
readability, not the other way round - wiki markup tends to favour the human)


Michael.

From kirby.urner at gmail.com  Mon Aug 21 03:17:39 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 20 Aug 2006 18:17:39 -0700
Subject: [Edu-sig] Another update from the field...
In-Reply-To: <200608210149.43592.ms@cerenity.org>
References: 
	
	
	<200608210149.43592.ms@cerenity.org>
Message-ID: 

> (It's worth remembering a design goal of XML is machine friendliness and human
> readability, not the other way round - wiki markup tends to favour the human)
>
>
> Michael.

I find this an interesting discussion because it recapitulates a
central theme on edu-sig over the years:  how much hand-holding versus
how much "they just need to learn it too"?

Some have the model that technologists are supposed to infantalize
non-technologists, by pandering to the vision of some "mindless
consumer" wanting "no brainer" controls.

In contrast, some believe humans are tool-users by nature, so once the
tool is "good enough" by some reasonable standard, it's OK to tune out
all the whiners and "still don't get it" types.

Fortunately, there's not just one big fat omnitechnology out there
that one either knows inside-out, or is completely clueless about.
It's not that simple a picture.

We all distribute our competencies and bring interesting "hands" to
the table ("hands" in the sense of "in card games" but I'm also
imagining a surgeon's).

I'm really incompetent in so many dimensions, and I don't feel I'm
underselling myself by admitting that.  I take it for granted in
everyone I meet.

We're all "just chickens" in this soup, even if we sometimes look like
superchick to one another, based on our specializations (allusions to
'Chicken Little' movie,
http://worldgame.blogspot.com/2005/11/chicken-little-movie-review.html
).

In other words, there's just too much technology out there to for
anyone to credibly claim to have mastered it all.  So if we just relax
a little bit, we can at least agree on some regions of overlap,
so-called background knowledge that's widely distributed across
specialties.

I would include XML in this category, and I'm talking about including
minors (people under the age of 18) in this loop.  They should be
informed of it.  No kidding.

You'll see what I mean here:
http://www.4dsolutions.net/winterhaven/

Plus I'm influenced by Gene Fowler's way of weaving it together:
http://controlroom.blogspot.com/2006/08/more-cast.html

Plus here's a mathcast I've just been working on:
http://mybizmo.blogspot.com/2006/08/mathcast-storyboard.html

Kirby

From kirby.urner at gmail.com  Mon Aug 21 03:20:20 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 20 Aug 2006 18:20:20 -0700
Subject: [Edu-sig] Another update from the field...
In-Reply-To: 
References: 
	
	
	<200608210149.43592.ms@cerenity.org>
	
Message-ID: 

> You'll see what I mean here:
> http://www.4dsolutions.net/winterhaven/
>

Nope, not there.

Let's try here:
http://www.4dsolutions.net/ocn/winterhaven/

Kirby

From ms at cerenity.org  Mon Aug 21 05:01:49 2006
From: ms at cerenity.org (Michael)
Date: Mon, 21 Aug 2006 04:01:49 +0100
Subject: [Edu-sig] Another update from the field...
In-Reply-To: 
References: 
	<200608210149.43592.ms@cerenity.org>
	
Message-ID: <200608210401.50195.ms@cerenity.org>

On Monday 21 August 2006 02:17, kirby urner wrote:
> I find this an interesting discussion because it recapitulates a
> central theme on edu-sig over the years: ?how much hand-holding versus
> how much "they just need to learn it too"?

Actually, no, you miss my point. That's completely tangential to what I was 
saying, and totally irrelevant. I wrote a long reply to this, but realised I 
can shorten it dramatically.

Knowing how something works so you can change it? Good (necessary even - up
to the limit the person is capable of understanding (bell curves and all 
that)). Being forced to always use nuts and bolts because it "liberates you" 
from useful [1] tools that you can change [2] to suit your needs? Not so 
good. (Especially you merely want tools fit for purpose)

   [1] Useful is in the hand of the user and what they want to do with their
       time.
   [2] Assumption, but having chosen to write a wysiwyg wiki, blog and local
       editor because I've been bored of writing markup (wiki or HTML) after
       years of doing so, I'm happy to make that assumption :-)

Put another way:

> don't market pure XML/XHTML as "the right solution for everybody" any more
> than "computer programming for everybody" means we all program the same
> way, or all have to use Python.

A much more fun way of making your main point (which I think boils down to 
being able to get under the hood when you want/need to and being able to 
easily change systems) is to merely point at the film "Robots".

Makes the point in a much more fun way :)

(especially if you notice some possible references to a particular hardware
manufacturers, who could be said to successfully "infantalize" (to use
your derogatory term) technology in a way that millions of people want,
demonstrably so by buying said technology by their millions...)

Regards,


Michael.


From kirby.urner at gmail.com  Mon Aug 21 05:15:37 2006
From: kirby.urner at gmail.com (kirby urner)
Date: Sun, 20 Aug 2006 20:15:37 -0700
Subject: [Edu-sig] Another update from the field...
In-Reply-To: <200608210401.50195.ms@cerenity.org>
References: 
	<200608210149.43592.ms@cerenity.org>
	
	<200608210401.50195.ms@cerenity.org>
Message-ID: 

> Actually, no, you miss my point. That's completely tangential to what I was
> saying, and totally irrelevant. I wrote a long reply to this, but realised I
> can shorten it dramatically.

Heh.  As if yer point mattered. ;-D

> Knowing how something works so you can change it? Good (necessary even - up
> to the limit the person is capable of understanding (bell curves and all
> that)). Being forced to always use nuts and bolts because it "liberates you"
> from useful [1] tools that you can change [2] to suit your needs? Not so
> good. (Especially you merely want tools fit for purpose)

Aye, there's the rub.  What's the most fit tool for the job.  Enter
the wonderful world of self-fulfilling prophecies and other
tautologies.  Like *of course* you should use X, because X is the most
fit for what you need right now...

I don't think reST or Wiki rules are all that much easier than
learning the amount of XHTML it'd take to do pretty much the same
thing, plus you'll be encountering XMLs again and again, so the skills
are transferrable.

That doesn't mean you should always hand-code everything (I like
starting with templates, and a large library of already-done CSS
sheets).

Telling a startup to show up on radar inside a Wiki or Blog for its
web debut is crummy advice I think.

It's OK to link to those things (as does python.org) but your flagship
needs to feel like an outer frame (reskinning Plone does the trick,
but a plain vanilla Plone implies "I haven't put much of my own
creativity into this site" -- maybe not true, so why send that
message?

> Put another way:
>
> > don't market pure XML/XHTML as "the right solution for everybody" any more
> > than "computer programming for everybody" means we all program the same
> > way, or all have to use Python.

Interpolating into my text.  Madlib idea.

Right.  Some use Ruby on Rails.  Quite hostile to XML.  I like it.

> A much more fun way of making your main point (which I think boils down to
> being able to get under the hood when you want/need to and being able to
> easily change systems) is to merely point at the film "Robots".
>
> Makes the point in a much more fun way :)
>
> (especially if you notice some possible references to a particular hardware
> manufacturers, who could be said to successfully "infantalize" (to use
> your derogatory term) technology in a way that millions of people want,
> demonstrably so by buying said technology by their millions...)
>
> Regards,
>
>
> Michael.

The problem with infantalizating others is the people into it tend to
also steal candy from babies.

Kirby

From delza at livingcode.org  Mon Aug 21 07:08:41 2006
From: delza at livingcode.org (Dethe Elza)
Date: Sun, 20 Aug 2006 22:08:41 -0700
Subject: [Edu-sig] Another update from the field...
In-Reply-To: 
References: 
	
	
Message-ID: <097F0626-4929-43D3-9F0D-9A07D591D78D@livingcode.org>

On 20-Aug-06, at 2:39 PM, kirby urner wrote:

> On 8/20/06, Dethe Elza  wrote:
>
> Does Eliot consider Zope 3 a good example of XML-based CMS?  I've seen
> it presented as Model-View-Controller, with ZODB providing an API to
> the model, XML controlling the View, and Zope + custom Python being
> the controller.

Doubtful.  I don't know of anyone who considers Zope 3 as a good  
example of much of anything, as it's too new.  Zope 2 is an  
application server and framework you can use to build a CMS, but it  
certainly is not a CMS, XML or no.  Plone is a CMS built on Zope 2,  
and Silva is an XML-based CMS built on Zope 2.

>
>> If HTML is the scary bit, I suggest looking at reStructured Text/
>> Markdown/Textile as alternatives (depending on need).  All convert to
>> nice (X)HTML.  reST is the most complicated, but can also be
>> converted to XML, PDF, PPT, and other formats, and you can add your
>> own hooks to bring in more advanced features.
>
> "Convert to nice (X)HTML" where though?  You're still implying some
> engine doing the translation, whereas straight XHTML/CSS liberates you
> from anybody's Wiki or whatever framework.

All three lightweight markup tools I mentioned have python  
implementations.  So to your question, "convert where," the answer  
is, "wherever *you* want."  It's just Python.  Straight XHTML/CSS can  
be very liberating, but I've used/taught HTML for more than ten years  
and frankly I still prefer:

There are three kinds of lies:

* Lies
* Damned Lies
* Statistics

to:

There are three kinds of lies:

  • Lies
  • Damned Lies
  • Statistics
Granted, you can do this with a WYSIWYG HTML editor, but frankly, that isn't going to get you any closer to understanding the HTML than a lightweight format is. I'm all in favor of knowing how to sling raw HTML in a text editor, but also for knowing when to take shortcuts and save yourself some headaches. The lightweight markup tools tend to produce very clean HTML, too, while what I've seen from WYSIWYG tools has left permanent scars on my retinas. > Per my friend Gene Fowler's vision, I think we should just plan on > spreading XML fluency at least to a point where fear of XHTML is the > exception, not the rule. The basics aren't that hard -- arguably as > simple as all the rules reST gives you. And the basics are great, as far as they go. The basics of reST are even simpler, just format your text the way we used to in email, back before HTML mail became the norm. You don't have to use all of reST any more than you have to code fully accessible, fully semantic HTML, for example not everyone needs to start with Mark Pilgrims treatise on accessibility: http://diveintoaccessibility.org/introduction.html > Gene's vision: > http://controlroom.blogspot.com/2006/08/more-cast.html > >> If getting the content up on the web is the problem, a wiki or blog >> tool might be the answer, or simply showing them how to share a >> remote directory to the desktop for editing. > > Too non-standard for a basic company website. This is a small startup > that can't afford to look too quirky, given the invention itself is > already on the wild side. For a sneak peak: > http://www.4dsolutions.net/flextegrity/ (I'll be taking it down within > 12 hours, so expect a broken link pretty soon -- sharing with you > because you track the Bucky stuff some). Looks interesting. How the site looks should be up to the CSS though, not the tools used to write it. I understand that most wikis and blog tools have default layouts that mark them as distinctively wikis and blog, but they don't have to, and they're usually pretty easy to customize. Of course, I'm speaking as a guy who is writing his own blog software because the existing ones weren't easy enough to customize for me, so take my opinions with a grain of salt. Heck, most simple websites don't need more than a standard template, static files, and some server-side includes. > The real site will debut on flextegrity.com in the near future, > probably as a PHP site (i.e. I expect my good advice to be rejected). Too often true. >> A full-fledged CMS is often the wrong solution even for the high-end >> corporations that they're generally targetted for, and always require >> more effort than is anticipated. > > Yes. A CMS is a wonderful thing when it's the right tool for the job, > but in too many cases it's promulgated as a way to make the web > "friendly" to newbies, whereas just learning a little HTML in a > WYSIWIG editor would be a kinder gentler thing to share with them > (keeps them free of the CMS itself, a gravitational field). CMSii (what's the plural of CMS?) may be marketed as making things easier, but they're also about vendor lock-in, management control, and knowledge capture. > Per Gene's vision, I want to see more mixing of XML with everyday > language arts. Learn some tags at the same time you're learning basic > punctuation, and the difference between a verb and a noun. No one > finishing the Shuttleworth sequence, for example, should feel "afraid > of HTML". Hear hear. I fully agree and support that vision. On the other claw, XML/HTML shouldn't be put on a pedastal either. XML is the new ASCII. I'm amazed that there are still conferences and such talking about the wonders of XML. It's time to move past that and work with the formats that matter (of which XHTML is one). XML is important, but it's low-level important. > Kirby --Dethe "The Brazilian government is definitely pro-law. But if law doesn't fit reality anymore, law has to be changed. That's not a new thing. That's civilisation as usual." --Gilberto Gil, Brazilian Minister of Culture From kirby.urner at gmail.com Mon Aug 21 18:50:30 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 21 Aug 2006 09:50:30 -0700 Subject: [Edu-sig] Another update from the field... In-Reply-To: <097F0626-4929-43D3-9F0D-9A07D591D78D@livingcode.org> References: <097F0626-4929-43D3-9F0D-9A07D591D78D@livingcode.org> Message-ID: On 8/20/06, Dethe Elza wrote: > > "Convert to nice (X)HTML" where though? You're still implying some > > engine doing the translation, whereas straight XHTML/CSS liberates you > > from anybody's Wiki or whatever framework. > > All three lightweight markup tools I mentioned have python > implementations. So to your question, "convert where," the answer > is, "wherever *you* want." It's just Python. The problem is that in this model I'm advising a client as to whether to go with a CMS (a PHP one it so happens, called website.baker) or to develop XHTML/CSS skills inhouse. The CMS is being used as a way to avoid having to learn much XHTML, but I think this makes them way too dependent on a framework. According to this model, "it's just Python" is no help to them. They don't have Python or know how to use it. I'm not volunteering to make my skills mission critical to them (my whole M.O. is about being valuable without becoming indespensible). One might ask why I'm even bringing this up then. Answer: I think Plone and other CMS people in Python World should think twice about hooking clients on a CMS when all they really need is bare bones XHTML/CSS. The learning curve is about the same when it comes to the basics, and the latter skill set is more transferrable (as are the skills). Also, since this is a discussion list focused on education: I think schools should keep XHTML front and center, plus talk about the DOM, and not buy into some CMS-based approach for letting students each publish a website. That's in school. On your own time, if you want a page in myspace.com (a framework) or whatever, go right ahead (it's a free country). But recognize your dependence, and the associated costs (e.g. mandatory banner ads cluttering up your page). > There are three kinds of lies: > > * Lies > * Damned Lies > * Statistics > > to: > >

There are three kinds of lies:

>

    >
  • Lies
  • >
  • Damned Lies
  • >
  • Statistics
  • >
But if using the former means you had to develop within a CMS, then I don't think it's worth the savings in typing. XML is quite consistent: every tag is paired with an ending tag except sometimes :-D. > I'm all in favor of knowing how to sling > raw HTML in a text editor, but also for knowing when to take > shortcuts and save yourself some headaches. The lightweight markup > tools tend to produce very clean HTML, too, while what I've seen from > WYSIWYG tools has left permanent scars on my retinas. DreamWeaver produces pretty clean HTML, plus has a facility to strip out all the poopka you get if you "Save As HTML" from Microsoft Word (and there, you *do* get incredible amounts of clutter). I'm recommending that startups with simple needs (no ecommerce, basically a cyber business card, a presence pictures and contact info) invest in a WYSIWYG XHTML editor, and develop those minimal skills it'd take to avoid using *any* server-side infrastructure other than the web server itself. At least to start. It's not all about text after all. There's picture placement, borders, links between pages. Why lock them in to using WikiWords, or the chronological blog structure? The shortcuts you need should be in the client, the web site design tool, not on a server. > >> If getting the content up on the web is the problem, a wiki or blog > >> tool might be the answer, or simply showing them how to share a > >> remote directory to the desktop for editing. > > > > Too non-standard for a basic company website. This is a small startup > > that can't afford to look too quirky, given the invention itself is > > already on the wild side. For a sneak peak: > > http://www.4dsolutions.net/flextegrity/ (I'll be taking it down within > > 12 hours, so expect a broken link pretty soon -- sharing with you > > because you track the Bucky stuff some). > > Looks interesting. How the site looks should be up to the CSS > though, not the tools used to write it. I understand that most wikis main.css contained all the coloring and font info. I started with a canned template in DreamWeaver that matched the color theme on their logo. However, as I suspected, the client already feels tied to the PHP website.baker solution, and is going ahead with the CMS. At the end of the day, someone will have worked hard to develop competence within a specific framework, and will have content that cannot easily be enhanced or moved independently of that huge server-side engine. That same time and energy could have gone into developing a free-standing XHTML site, movable anywhere, and requiring a skillset that's broadly shared in our culture. I'd have been just as skeptical of using heavy server-side processing had the client chosen Plone. It's not a Python vs. PHP thing. It's a framework-as-crutch vs. rolling-your-own thing. > and blog tools have default layouts that mark them as distinctively > wikis and blog, but they don't have to, and they're usually pretty > easy to customize. Of course, I'm speaking as a guy who is writing > his own blog software because the existing ones weren't easy enough > to customize for me, so take my opinions with a grain of salt. Heck, > most simple websites don't need more than a standard template, static > files, and some server-side includes. Blogs don't allow the customary tree structure you'd expect in a company website. Customizing the look of a Wiki is to suggest some framework where the client has to effectively fill in a CSS template, either with straight CSS (as in myspace.com) or through some API. It also implies using a Wiki for purposes it was not design for i.e. a lot of static text and graphics with no need for community collaboration. So again, we're locking the client into some clunky "engine" for no other reason than that they don't want to learn XHTML/CSS, even with a WYSIWYG like DreamWeaver. Speaking of myspace.com, I think that *is* an option if you just want a simple banner page and don't mind the advertising. I'd never recommend it as the home site for a company, but as a storefront or footprint in a populous bazaar it works, e.g. see myspace.com/4dstudios. > > Yes. A CMS is a wonderful thing when it's the right tool for the job, > > but in too many cases it's promulgated as a way to make the web > > "friendly" to newbies, whereas just learning a little HTML in a > > WYSIWIG editor would be a kinder gentler thing to share with them > > (keeps them free of the CMS itself, a gravitational field). > > CMSii (what's the plural of CMS?) may be marketed as making things > easier, but they're also about vendor lock-in, management control, > and knowledge capture. Exactly. Vendor lock-in. A scrupulous vendor will steer people away who'd be better served just learning the basic tools of the trade. Otherwise they'll take out their frustration out on the CMS later. "Can't say I didn't warn you". What I see as a goal for education systems is to promote self-sufficiency at the individual and community level. What are the minimal tools you'll need to get your self and your enterprise launched effectively, *without* depending on a lot of "doers" who will charge for this and that service? Of course you need a lot more than just a few web skills -- but you should have those as part of the complement (along with some understanding of bookkeeping). Once you have the luxury of being able to hire helpers, then maybe go for a bigger framework, but still you should have a lot of the skills inhouse. Being overly dependent on technologies you could have avoided in the first place is the pitfall. These lessons go for development work in general: Self-sufficient communities develop appropriate technologies they know how to operate and maintain themselves. Dependent communities use a lot of borrowed money to pay a lot of consultants and at the end of the day are worse off than when they started. > Hear hear. I fully agree and support that vision. On the other > claw, XML/HTML shouldn't be put on a pedastal either. XML is the new > ASCII. I'm amazed that there are still conferences and such talking > about the wonders of XML. It's time to move past that and work with > the formats that matter (of which XHTML is one). XML is important, > but it's low-level important. > > > Kirby > > --Dethe Yes, agreed. XML in the abstract is a bit too abstract. The focus should usually be a particular XML. Per my blog: """ Curriculum objective: gradually increase a student's comfort level with XML, with previews of and forays into such markups as SVG, XHTML, MathML, DocBook, X3D plus roll-your-own XMLs (and/or SGMLs if you must). """ http://mybizmo.blogspot.com/2006/08/mathcast-storyboard.html Kirby From ajsiegel at optonline.net Thu Aug 24 16:18:14 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 24 Aug 2006 10:18:14 -0400 Subject: [Edu-sig] Appreciating Crunchy Frog Message-ID: <44EDB526.2060404@optonline.com> Crunchy Frog is cool! Must be, since even grouchy Arthur thinks so. To me the attraction is not so much "web-based" - at least any more than the attraction of something like html docs is that they are necessarily web-based - in the sense of Web as in Net, as in Remote. 127.0.0.1 is cool too. Don't think that the computer obsoletes text as the primary vehicle for learning. And it seems pretty clear that reading straight text documents via computer has *disadvantages* over the dead tree approach. And in fact most web based interactive learning efforts I have seen seem lame to me. See Not Pi. http://www.sock-monkey.com/pi.html I do not see too much more than that in javascript turtles that folks seem to find so exciting. But I, and most everybody else, appreciate the fact that hyperlink technology for documentation - as an example -can add a level of truly useful functionality to text documents. Seeing Crunchy embedded in, and extending, a substantive text document as in the Crunchy .7 mini-howto helps me understand and appreciate its usefulness in extending text documents. Here, existing "how to" docs were extended with Crunchy. If they were written from scratch with embedded Crunchy they might have taken a slightly different approach. Might be a while before the possibilities here get appropriately shaped. Why is all the cool stuff being done by us "hobbyists"? Art. From andre.roberge at gmail.com Thu Aug 24 22:38:19 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Thu, 24 Aug 2006 17:38:19 -0300 Subject: [Edu-sig] Appreciating Crunchy Frog In-Reply-To: <44EDB526.2060404@optonline.com> References: <44EDB526.2060404@optonline.com> Message-ID: <7528bcdd0608241338t7a390fa1x54fb3ad19c15ec8a@mail.gmail.com> On 8/24/06, Arthur wrote: > Crunchy Frog is cool! :-D Thanks!! > > Must be, since even grouchy Arthur thinks so. > I can't think of a more encouraging message to read (from Arthur no less!!!) before I am ready to head off for a vacation, to replenish my batteries. Hopefully I'll have more to add when I come back. Happy discussions on edu-sig. Andr? From glingl at aon.at Sat Aug 26 17:24:05 2006 From: glingl at aon.at (Gregor Lingl) Date: Sat, 26 Aug 2006 17:24:05 +0200 Subject: [Edu-sig] where can I find xturtle? Message-ID: <44F06795.7020501@aon.at> There was a server-crash at rg16 while I was on vacation. That has been fixed now. You can find xturtle again at http://ada.rg16.asn-wien.ac.at/~python/xturtle Sorry for the inconvenience Gregor From pdfernhout at kurtz-fernhout.com Sun Aug 27 05:10:18 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Sat, 26 Aug 2006 23:10:18 -0400 Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? Message-ID: <44F10D1A.2090001@kurtz-fernhout.com> http://ask.slashdot.org/article.pl?sid=06/08/27/000248 Teaching Primary School Students Programming? Posted by Cliff on Saturday August 26, @08:25PM from the toddlers-as-coders dept. Education Programming NotesSensei asks: "Recently I was teasing the teacher who runs the computer club in my sons' primary school: 'You teach the kids only how to use software but not how to make software.' Today I got an email: 'OK, you're in: teach them programming.' Now I wonder what language should I pick? My first lesson will be the board game c-jump, but after that? The contestants are: Kids programming language KPL (ab VB.net derivate; Java using BlueJ; Greenfoot (and the BlueJ); and HTML. Does it sound like I'm on the right track or should I try something completely different? We are looking at primary 3-5 (that's 10-13 in this part of the world). Where can I find inspiration for the curriculum?" === Python is mentioned there, along with a lot of other suggestions. From kirby.urner at gmail.com Sun Aug 27 21:14:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 27 Aug 2006 12:14:28 -0700 Subject: [Edu-sig] An Urner update on doings/undoings Message-ID: I did a quick coin of HP4E but haven't used it for much since: http://mathforum.org/kb/thread.jspa?threadID=1437142&tstart=0 Basically, I'm refining the "gnu math" concept, addressing concerns about the New Math resonance, which one teacher worried had "Titanic" connotations (as in "went down").[1] But I'm pointing to what we've saved from that shipwreck: an emphasis on bases (as in subtraction in base eight), and on Venn Diagrams (boolean algebra), and on Sets (unions and intersections). All that stuff is still in the mainstream, from Saxon to Singapore (those're textbook allusions, much talked about on the math-teach list I frequent). Gnu math uses a non-proprietary substrate on top of proprietary hardware (e.g. Intel's, AMD's...) to keep computer programming a "for everybody" sport, i.e. we won't wall them out on the basis of price alone (never a good way to promote a meritocracy). Yes, gnu software also runs on proprietary operating systems, and yes, we might someday have an open source chip, i.e. the designs are free and clear to anyone with a fab (still a huge barrier to entry at this point -- clean rooms ain't cheap). But until that blessed day, when it's all open source as far as the eye can see (the Debian ideal), I'm not averse to using whatever public venues they leave open to us laypeople (even as we keep fighting to make inroads). In the gnu math I envision, sets are just another data structure (added somewhat late to Python, as dictionaries with null values, only keys, did pretty much the same work). We're not as beholden to early 20th century philosophies of mathematics, which made the set front and center in some theory of types, with Russell's paradox about what might be "empty" or not. Per Wittgenstein, all that Cathedral talk does *not* underwrite what we do in the Bazaar (set theoretic logic provides a painted foundation under a painted castle, to paraphrase the guy). The genesis of mathematics is ordinary ethno-arithematic, and as such is "all in the open" i.e. doesn't depend on special Harry Potter powers to see in "higher dimensions" (another position of mine: contra the HyperCross Dogmatists (but I'm fine with Coxeter's polytopes and recognize their utility in higher mathematics (but a hypercube is *not* the same thing as a time machine remember, per 'Regular Polytopes' on page 119))).[2] So yeah, we've got sets (lists, dictionaries...), and math.pi, and pi generators, and let's not forget phi. Phi is actually at least as important as pi as a curriculum asset, once we're into the greek letters and spooky greek metaphysics ("infinitely extended infinitely thin planes" and all that ghostly stuff). People tend to dismiss phi, out of bias against anything to do with the pentacle. Holdover superstitions. But we can't deny the pentagon its due, phi being the reciprocal of its edge-to-diagonal ratio, although some call that tau. Five-fold symmetry *is* important in Nature. Who are we, the naked apes, to argue with her wisdom? In fact, we've done a lot of homework on pentagon math right here on edu-sig, including in the form of continued fractions (a perennial favorite, as phi is "just ones" all the way to the bottom, like turtles). Plus you've got this convergence to phi along the Fibonacci sequence, already paradigm generator in the Pythonic literature, right up there with Guido's cute little gcd function. I'm still liking the fact of fib.next()/fib.next() getting closer and closer to the most irrational irrational, every time we hit the Enter key (again, the bigger number will be in the denominator, given left-to-right evaluation, so the convergence is to 0.618..., not to 1.618...). >>> from __future__ import division >>> def fibs(a=0,b=1): while True: yield a a,b = b,a+b >>> genfib = fibs() >>> genfib.next()/genfib.next() 0.0 >>> genfib.next()/genfib.next() 0.5 >>> genfib.next()/genfib.next() 0.59999999999999998 >>> genfib.next()/genfib.next() 0.61538461538461542 >>> genfib.next()/genfib.next() 0.61764705882352944 >>> genfib.next()/genfib.next() 0.6179775280898876 >>> genfib.next()/genfib.next() 0.61802575107296143 >>> genfib.next()/genfib.next() 0.61803278688524588 >>> genfib.next()/genfib.next() 0.6180338134001252 >>> genfib.next()/genfib.next() 0.61803396316670656 >>> genfib.next()/genfib.next() 0.61803398501735796 >>> genfib.next()/genfib.next() 0.61803398820532507 >>> genfib.next()/genfib.next() 0.61803398867044324 A general thrust of gnu math is to use OO concepts to build awareness of "maths as extended type systems" (class hierarchies if you will). That's a bridge to our Fuller School geometry, as we regard the Tetrahedron as a kind of superclass object or parent, for the whole idea of Polyhedron in general. You have edges, vertices, faces (V + F = E + 2), and an inside and outside. Every subsequent Polyhedron inherits those elements, and the machinery to go with 'em. And we don't have anything simpler. The sphere is actually much more complicated to think about, given its reliance on a continuum hypothesis. The tetrahedron is friendlier to discrete math engines like Python. We don't need some infinitely perfect pi to think about our what's in our tree.[3] If you've followed my rbf.py thread's evolution, you know that it builds on a primitive vector class (of the kind any first year student could write), and face-tuples, to define a vocabulary of primitive prefrequency polyhedra. If I go: >>> from rbf import Tetrahedron, Octahedron, Cube >>> mycube = Cube() >>> mytetra = Tetrahedron() >>> myocta = Octahedron() and then ask for volumes I get: >>> mycube.volume 3.0 >>> mytetra.volume 1.0 >>> myocta.volume 4.0 Whereas if you *haven't* been following my rbf.py's thread's evolution, you'll probably just be asking yourself "Why?" at this point. Because that's how we've designed our little zen rock garden in Synergetics.[4] The tetrahedron is unit volume, given it anchors the Polys class hierarchy (introduces the whole idea of an inside versus outside for example). Two tetrahedra, per Kepler's stella octangula, define a Cube of thrice the volume. And that Cube's dual, with edge intersections at 90 degrees, is the Octahedron of volume 4, and anchors our 6-rayed XYZ coordinate system (which, notice, comes somewhere on down the hierarchy tree i.e. the primitive tetra is topological such that no coordinate system machinery need apply). OK, that's a lot of verbiage. You're likely happy I don't flood edu-sig with all these threads. When I'm blabbing about Bucky a lot, I tend to firehose in the direction of some Bucky-friendly e-list, like Synergeo on Yahoo. Or maybe I'm on wittgenstein-dialognet (pretty quiet lately), or just discussing stuff privately among Wanderers (wwwanderers.org). Finally, in addition to Glenn's global matrix, I've been caught up in Sam's and LaJean's scenario. They've been trying to cobble together a website, using a content management system. I've brought this up on edu-sig because I thought it relevant to our community, given Python has one or more of the flagship CMSs out there. We shouldn't over sell them (CMSs) to people who just need static web content and could get by with XHTML/CSS. Client side WYSIWYG tools make it easy to avoid server-side dependence. Unless you're hosting the server yourself, beware of getting captured by your own ISP. However, in the case of flextegrity.com, I think it's turning out OK. They're likely to need those fancy CMS features down the road (implemented in PHP in their case), i.e. it was never all that "static" a design (even though it may have started out that way). Kirby 4D Solutions Portland, Oregon Notes: [1] re 'Titanic' http://mathforum.org/kb/message.jspa?messageID=5055407&tstart=0 [2] Coxeter & 4d: http://controlroom.blogspot.com/2006/08/more-dimension-talk.html [3] More About Pi: http://groups.yahoo.com/group/synergeo/message/28550 [4] rock garden: http://www.grunch.net/synergetics/volumes.html From lavendula6654 at yahoo.com Mon Aug 28 08:27:30 2006 From: lavendula6654 at yahoo.com (Elaine) Date: Sun, 27 Aug 2006 23:27:30 -0700 (PDT) Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: <44F10D1A.2090001@kurtz-fernhout.com> Message-ID: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> When I was the computer teacher in a primary school back in 1983, I taught Logo. Everyone loved it! -Elaine --- "Paul D. Fernhout" wrote: > http://ask.slashdot.org/article.pl?sid=06/08/27/000248 > > Teaching Primary School Students Programming? > Posted by Cliff on Saturday August 26, @08:25PM > from the toddlers-as-coders dept. > Education Programming > NotesSensei asks: "Recently I was teasing the > teacher who runs the > computer club in my sons' primary school: 'You teach > the kids only how to > use software but not how to make software.' Today I > got an email: 'OK, > you're in: teach them programming.' Now I wonder > what language should I > pick? My first lesson will be the board game c-jump, > but after that? The > contestants are: Kids programming language KPL (ab > VB.net derivate; Java > using BlueJ; Greenfoot (and the BlueJ); and HTML. > Does it sound like I'm > on the right track or should I try something > completely different? We are > looking at primary 3-5 (that's 10-13 in this part of > the world). Where can > I find inspiration for the curriculum?" > > === > > Python is mentioned there, along with a lot of other > suggestions. > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From ajsiegel at optonline.net Mon Aug 28 16:13:20 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 28 Aug 2006 10:13:20 -0400 Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> Message-ID: <44F2FA00.3060501@optonline.com> Elaine wrote: >When I was the computer teacher in a primary school >back in 1983, I taught Logo. Everyone loved it! > >-Elaine > > > The problem might be the "progress" of Logo since 1983. When I go to: http://el.media.mit.edu/Logo-foundation/logo/programming.html I see the potential of Logo in introducing kids to programming abstraction. One types within the framework of a defined syntax, and gets immediate results, or informative errors. When I take the next step and look at major current implementations - I downloaded StarLogo and NetLogo - I am confronted with Logo environments with lots of GUI doo-dads. And lots of ambiguity about the purpose of this environment. Is its primary focus to introduce programming, or to explore computer simulations for the benefit of what it is the simulations teach us. There *is* a fundamental difference. It is hard for me not to describe these environments as "self-involved". That is always the problem with these kinds of environments - to me. One, in some sense, must "submit" to them, with a promise of rewards if one does so. But the kids most likely to excell at Logo are, IMO, also the ones least likely to be the ones comfortable with submitting to an imposed (not selected) environment. The solution is simple - simplicity, less environment. Why is this obvious to me, and lost on the MIT folks? Art >--- "Paul D. Fernhout" >wrote: > > > >http://ask.slashdot.org/article.pl?sid=06/08/27/000248 > > >>Teaching Primary School Students Programming? >>Posted by Cliff on Saturday August 26, @08:25PM >>from the toddlers-as-coders dept. >>Education Programming >>NotesSensei asks: "Recently I was teasing the >>teacher who runs the >>computer club in my sons' primary school: 'You teach >>the kids only how to >>use software but not how to make software.' Today I >>got an email: 'OK, >>you're in: teach them programming.' Now I wonder >>what language should I >>pick? My first lesson will be the board game c-jump, >>but after that? The >>contestants are: Kids programming language KPL (ab >>VB.net derivate; Java >>using BlueJ; Greenfoot (and the BlueJ); and HTML. >>Does it sound like I'm >>on the right track or should I try something >>completely different? We are >>looking at primary 3-5 (that's 10-13 in this part of >>the world). Where can >>I find inspiration for the curriculum?" >> >>=== >> >>Python is mentioned there, along with a lot of other >>suggestions. >>_______________________________________________ >>Edu-sig mailing list >>Edu-sig at python.org >>http://mail.python.org/mailman/listinfo/edu-sig >> >> >> > > >__________________________________________________ >Do You Yahoo!? >Tired of spam? Yahoo! Mail has the best spam protection around >http://mail.yahoo.com >_______________________________________________ >Edu-sig mailing list >Edu-sig at python.org >http://mail.python.org/mailman/listinfo/edu-sig > > > > From ianb at colorstudy.com Mon Aug 28 18:57:39 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Mon, 28 Aug 2006 11:57:39 -0500 Subject: [Edu-sig] ANN: PyLogo 0.3 Message-ID: <44F32083.5050406@colorstudy.com> With the recent mention of Logo, I realized I forgot to announce PyLogo 0.3 here: http://cheeseshop.python.org/pypi/PyLogo/ This release features the addition of object-oriented language additions (TELL, ASK, class definitions), a doctest mode (see docs/test* for examples of Python doctests), and slightly cleaned up interpreter interaction. Ideally going forward with PyLogo I'd like to keep it focused on the language implementation and look elsewhere for IDE/GUI support (removing what little is currently there). I believe (but this is not confirmed by experience) that it should be relatively easy to integrate into other Python-oriented environments -- it can call Python functions and deal with Python objects. Since there's already a lot of interesting projects from several directions this decoupling of language and environment seems more fruitful for experimentation. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From kirby.urner at gmail.com Mon Aug 28 19:33:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 28 Aug 2006 10:33:28 -0700 Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: <44F2FA00.3060501@optonline.com> References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> <44F2FA00.3060501@optonline.com> Message-ID: On 8/28/06, Arthur wrote: > The solution is simple - simplicity, less environment. > > Why is this obvious to me, and lost on the MIT folks? > > Art Is it the MIT folks behind the slick new Logo environments, with all the eye candy? I'm not up to date. I think we need to respect that people have different career goals, even when very young. To be a "prodigy" doesn't mean you're a cookie cutter copy of the "prodigy" in the seat next to you. For some, the eye candy aspect *is* the point. Just moving a stupid turtle around is boring boring boring, and we understood all about it the very first day (and so what?). Geometry, so what? Some people think that way. Do we beat them into submission then, just because "we" find Geometry beautiful all on its own? Kirby From ajsiegel at optonline.net Mon Aug 28 19:36:34 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Mon, 28 Aug 2006 17:36:34 +0000 (GMT) Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> <44F2FA00.3060501@optonline.com> Message-ID: ----- Original Message ----- From: kirby urner Date: Monday, August 28, 2006 1:33 pm Subject: Re: [Edu-sig] slashdot: Teaching Primary School Students Programming? To: Arthur , "edu-sig at python.org" > On 8/28/06, Arthur wrote: > > > The solution is simple - simplicity, less environment. > > > > Why is this obvious to me, and lost on the MIT folks? > > > > Art > > Is it the MIT folks behind the slick new Logo environments, with all > the eye candy? I'm not up to date. > > I think we need to respect that people have different career goals, > even when very young. To be a "prodigy" doesn't mean you're a cookie > cutter copy of the "prodigy" in the seat next to you. Cynical Arthur suspects that much of the problem has to do with the career goals of folks at MIT, not those of the very young. I won't expand on that without being asked to. Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060828/556b896c/attachment.htm From andreas.raab at gmx.de Mon Aug 28 19:39:11 2006 From: andreas.raab at gmx.de (Andreas Raab) Date: Mon, 28 Aug 2006 10:39:11 -0700 Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: <44F2FA00.3060501@optonline.com> References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> <44F2FA00.3060501@optonline.com> Message-ID: <44F32A3F.2040904@gmx.de> Arthur wrote: > The problem might be the "progress" of Logo since 1983. Try this on for size: http://education.mit.edu/starlogo-tng/ I saw a demo last week and there is definitely some serious potential in it. Cheers, - Andreas > > When I go to: > > http://el.media.mit.edu/Logo-foundation/logo/programming.html > > I see the potential of Logo in introducing kids to programming > abstraction. One types within the framework of a defined syntax, and > gets immediate results, or informative errors. > > When I take the next step and look at major current implementations - I > downloaded StarLogo and NetLogo - I am confronted with Logo environments > with lots of GUI doo-dads. And lots of ambiguity about the purpose of > this environment. Is its primary focus to introduce programming, or to > explore computer simulations for the benefit of what it is the > simulations teach us. There *is* a fundamental difference. > > It is hard for me not to describe these environments as > "self-involved". That is always the problem with these kinds of > environments - to me. One, in some sense, must "submit" to them, with a > promise of rewards if one does so. But the kids most likely to excell > at Logo are, IMO, also the ones least likely to be the ones comfortable > with submitting to an imposed (not selected) environment. > > The solution is simple - simplicity, less environment. > > Why is this obvious to me, and lost on the MIT folks? > > Art > > >> --- "Paul D. Fernhout" >> wrote: >> >> >> >> http://ask.slashdot.org/article.pl?sid=06/08/27/000248 >> >> >>> Teaching Primary School Students Programming? >>> Posted by Cliff on Saturday August 26, @08:25PM >> >from the toddlers-as-coders dept. >>> Education Programming >>> NotesSensei asks: "Recently I was teasing the >>> teacher who runs the >>> computer club in my sons' primary school: 'You teach >>> the kids only how to >>> use software but not how to make software.' Today I >>> got an email: 'OK, >>> you're in: teach them programming.' Now I wonder >>> what language should I >>> pick? My first lesson will be the board game c-jump, >>> but after that? The >>> contestants are: Kids programming language KPL (ab >>> VB.net derivate; Java >>> using BlueJ; Greenfoot (and the BlueJ); and HTML. >>> Does it sound like I'm >>> on the right track or should I try something >>> completely different? We are >>> looking at primary 3-5 (that's 10-13 in this part of >>> the world). Where can >>> I find inspiration for the curriculum?" >>> >>> === >>> >>> Python is mentioned there, along with a lot of other >>> suggestions. >>> _______________________________________________ >>> Edu-sig mailing list >>> Edu-sig at python.org >>> http://mail.python.org/mailman/listinfo/edu-sig >>> >>> >>> >> >> __________________________________________________ >> Do You Yahoo!? >> Tired of spam? Yahoo! Mail has the best spam protection around >> http://mail.yahoo.com >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig at python.org >> http://mail.python.org/mailman/listinfo/edu-sig >> >> >> >> From kirby.urner at gmail.com Mon Aug 28 20:22:07 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 28 Aug 2006 11:22:07 -0700 Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> <44F2FA00.3060501@optonline.com> Message-ID: On 8/28/06, ajsiegel at optonline.net wrote: > Cynical Arthur suspects that much of the problem has to do with the career > goals of folks at MIT, not those of the very young. Cynical Kirby thinks: if they *watch* cartoons, they probably wanna *make* cartoons. The eye candy palaces are an intro to Puppet World. One of my favorite passtimes as a kid growing up in Rome (not many kids in my building spoke American): use Piazza Navona clay puppets to entertain my sister with stories, complete with pre-recorded sound track on the cassette player. Today, I might consider doing that on my laptop (which does *not* mean I can't use the Navona Puppets, maybe to help storyboard the computerized version). You think kids don't think this way? > > I won't expand on that without being asked to. > > Art Not sure if I'm asking, but I think fascination with High Church geometry ala Klein is an acquired taste, like coffee. You might call it "pandering in Panda3D" to get all cartoony like that, but against the backdrop of underground comix and ToonTown, it sounds like good ol' New York to me (plus I've got my Portland Knowledge Lab in Portland). Kirby From ajsiegel at optonline.net Mon Aug 28 23:19:31 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Mon, 28 Aug 2006 21:19:31 +0000 (GMT) Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> <44F2FA00.3060501@optonline.com> Message-ID: > > Today, I might consider doing that on my laptop (which does > *not* mean > I can't use the Navona Puppets, maybe to help storyboard the > computerized version). > > You think kids don't think this way? Cynical Arthur would welcome the ability to exercise his imagination in the creation of animated cartoons that expressed his imagination, by way of computer technology. Except that his imagination is his own (everybodys' is) , and he would expect to need to wait until an appropriate age and undergo some serious study before such an ability were accessible to him. The kind of study, in fact, that I suspect college students at CMU expect to have to undertake to be able to utilize Panda3d - a serious tool for doing this kind of thing. Young cynical Arthur had a good sense of when he was been humored and indulged, and never really liked it much.. A lot of my take and talk is trying to be sensitive to young Arthur's needs - since I have no reason to believe that they were extraordinary, nor was he. Arthur Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060828/e2a91748/attachment.html From kirby.urner at gmail.com Tue Aug 29 00:38:32 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 28 Aug 2006 15:38:32 -0700 Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> <44F2FA00.3060501@optonline.com> Message-ID: On 8/28/06, ajsiegel at optonline.net wrote: > Cynical Arthur would welcome the ability to exercise his imagination in the > creation of animated cartoons that expressed his imagination, by way of > computer technology. Good. Cynical Kirby looks forward to viewing some of Cynical Arthur's cartoons. > Except that his imagination is his own (everybodys' is) , and he would > expect to need to wait until an appropriate age and undergo some serious > study before such an ability were accessible to him. Yes, Arthur knows that skills come in exchange for hard work. Even prodigies need to practice. Use it or lose it. > The kind of study, in fact, that I suspect college students at CMU expect to > have to undertake to be able to utilize Panda3d - a serious tool for doing this > kind of thing. Yes, Panda3d is hard and you need some adult-level patience to master the tool (which I really haven't by the way). But is that any reason to not look for *much easier* ways to the same ends? Like, if we weren't *lying* about wanting to actually see their cartoons, shouldn't we *stop* with the bait and switch? I think you're pointing to the *means* (hard work) as the worthy goal. I'm agreeing but saying: let's not lose site of the *ends* (lots of good cartoons -- some of them by kids much younger than could make them before (that in itself is new territory)). I think there will always be that next sought-after skill at the other end of some hard work rainbow. But I'm not into making kids sweat it just to do what we did, an earlier generation. I *want* them to look at all our hard work... and make it look easy (call me an optimist, but I think we're still evolving as a species). They'll have *new* hard stuff to tackle, not just the same stuff we did (like, how to make those cartoons *funny* -- a whole new ball game). > > Young cynical Arthur had a good sense of when he was been humored and > indulged, and never really liked it much.. A lot of my take and talk is trying to be > sensitive to young Arthur's needs - since I have no reason to believe that > they were extraordinary, nor was he. > > Arthur I like your young Arthur and want him to be pandered to too. :-D I think we share a certain affinity for "no frills" experiences that pack a wallop, in terms of straight information content. You want the jet boat, not the cushy cruise liner. Where I think this must be heading is towards a more individualized curriculum, with lots of trail heads. It's still a mix of live and in-the-can recordings, but you're freer to string the beads in the order you like, instead of the order some distant Kid Factory decided was best for you. Kirby From ajsiegel at optonline.net Tue Aug 29 02:12:23 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 28 Aug 2006 20:12:23 -0400 Subject: [Edu-sig] slashdot: Teaching Primary School Students Programming? In-Reply-To: References: <20060828062730.1468.qmail@web31712.mail.mud.yahoo.com> <44F2FA00.3060501@optonline.com> Message-ID: <44F38667.9010900@optonline.com> kirby urner wrote: > On 8/28/06, ajsiegel at optonline.net wrote: > >> Cynical Arthur would welcome the ability to exercise his imagination >> in the >> creation of animated cartoons that expressed his imagination, by way of >> computer technology. > > > Good. Cynical Kirby looks forward to viewing some of Cynical Arthur's > cartoons. Well this field is not totally unknown to Silly Arthur, who has a small repetoire of claymations and other animations that one can accomplish by single framing with a movie camera (Bolex 8mm, tool of choice). In the can, as we filmmakers say. And I have been collecting random vintage 16mm footage over the years - home movies, etc. from garage sales, antique stores, and such. The master plan is to find a way to economically and adequately digitize what I have (telecine is the general term for the technology) and then go play - recognizing the considerable advantage of digital editing over cut and splicing. Technology might also come into play in doing some offbeat colorization of black and white footage, and even perhaps exploring some of the technology available to 3d-ize still images. Soundtrack sync, of course. Perhaps even soundtrack production. A point is that if the point is to get imaginations exercised and realized in this general realm, for children particularly, purely digital, synthetic production is way, way the long way around. More an excuse not to do it, than an avenue towards doing it. Art From radenski at chapman.edu Tue Aug 29 03:49:14 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Mon, 28 Aug 2006 18:49:14 -0700 Subject: [Edu-sig] Python as first language - yet another paper Message-ID: > -----Original Message----- > From: kirby urner [mailto:kirby.urner at gmail.com] > Sent: Wednesday, August 16, 2006 9:09 PM > Subject: Re: [Edu-sig] Python as first language - yet another paper > > On 8/16/06, Radenski, Atanas wrote: > > For those of you who might be interested, I have posted a recent paper > > on the use of Python as a first language. The paper is entitled: > > > > "Python First": A Lab-Based Digital Introduction to Computer Science > > > Thank you sir. Thank you for reading the paper. I agree with most of your comments; a thoughtful message indeed. Your reasoning on terminology needs some response, though (below). > I think your arguments will be understandable to people outside of CS, > which is important, as there's a lot of concern about how we're not > getting enough competent technical people across the board, and CS is > seen as a bottleneck, i.e. its inability to recruit seems > counter-intuitive given it has, in principle, access to a lot of the > best toys. CS-related careers have a lot of glitz and glamour. But > as you say, a dry course in nothing-but-Java doesn't give that > impression, and would-be stars wander off to other majors. > > Internally to CS, however, there's the more esoteric line we draw, not > between commercial and education languages, but between system and > agile languages, the former being used to write the latter. Classic > core Python is a very commercial project because it's written in > lickity-split C code, and that's about the fastest on the planet. I use terminology with a purpose in this paper. Speaking of educational and commercial languages serves my purpose, while speaking of system and agile languages would not. Here is part of my message: "In the not so distant past, introductory computer science education was dominated by languages that were specifically designed for education, such as Pascal, Basic, and Logo." I mean Wirth's Pascal (not Delphi), Kurtz's and Kemeny's Basic - the one also beloved by Bill gates (not VB.net), and the Logo of the Feurzeig and Papert flavor. Such educational languages are intended for small scale programming. They are simple and manageable by beginners. Also: "Today, the majority of introductory computer science courses are based on a commercial language, such as Java or C++." Commercial languages, such as Java and C++, are intended for large scale software development. Such languages are naturally complex and difficult to learn by beginners (who originally do only small scale programming). The full discussion is in the paper (http://www1.chapman.edu/~radenski/research/abstracts/python-iticse06.ht ml). My point is that this particular conversation cannot be carried out in terms of 'system' and 'agile' language. For one thing, Pascal, Java, and C++ are all considered system languages [http://en.wikipedia.org/wiki/Systems_programming_language]. Besides, it is difficult to decide if Logo and Basic (the original ones) are system or agile languages. May be they are neither system nor agile languages, yet these languages are quite clear educational ones. So I think that speaking of educational and commercial is the right thing to do in the context of the paper. > As for whether Java is the right follow-on for a CS2, I think a bigger > success in recruiting will open more options there too. > > Yes, the Java track is secure for the time being. But don't deny > those who wish to dive into C, now that they're hooked, now that they > know that coding is for them. Explore the guts of CPython, the study > the Java and C# implementations. ANSI C is a wonderful language. The only hurdle to a student is to understand that arrays and pointers are the nearly the same thing. Once this is realized, C should look like a really simple language to the student. C++ is a different story. It is the product of a pretty long evolution. The whole thing lacks uniform design and is messy. For example, is it really necessary to have C++ objects possibly allocated on the stack, not only in the heap? And look at exceptions - they seem pretty ugly linguistically. Java is now going the same way - evolution clutters and complicates the language. Until Java 5, Sun managed to hide the evolution inside the API only, though. Python, in its entirety is not simple, either. Hey, we got two styles of classes, for example. But Python has this beautiful kernel that one can use to teach beginners effectively, by arranging concepts in a reasonable hierarchy, without many cyclic dependencies. It is not like teaching Java, when you have to say all the time: "This concept is important, but we will study it later." The design of Python was initially motivated with educational goals, and it shows. Yet, the language caught up with industry, which is very fortunate. A wonderful hybrid language: good for beginners and good for advanced work. Functional, imperative, OOP - you name it :-) > Kirby Atanas Atanas Radenski mailto:radenski at chapman.edu http://www.chapman.edu/~radenski/ There are wavelengths that people cannot see, there are sounds that people cannot hear, and may be computers have thought that people cannot think -- Richard Hamming From sdeibel at wingware.com Wed Aug 30 03:49:05 2006 From: sdeibel at wingware.com (sdeibel) Date: Tue, 29 Aug 2006 21:49:05 -0400 (EDT) Subject: [Edu-sig] Wing IDE 101 for Intro Programming Courses Message-ID: Hi, Wingware has been working with the University of Toronto on an experimental new member of the Wing IDE product line that is designed for teaching introductory programming courses. Our goal is to try to support more wide-spread use of Python as a language for teaching programming. The result is called Wing IDE 101 and has been released semi-publically here: http://wingware.com/wingide-101 It runs on Windows, Mac OS X with X11 Server, and Linux. Although Wing IDE is commercial, this edition of the product is free to use without charge. It is not, however, open source. As I noted, this is experimental, and we're not yet sure where the experiment will lead us. Please feel free to try it and if you are interested in using it for course work, contact us at support at wingware.com. Thanks! Stephan Deibel -- Wingware Wing IDE for Python Advancing Software Development www.wingware.com