[Edu-sig] Accessibility to non CS types?
francois schnell
francois.schnell at gmail.com
Tue May 30 23:59:32 CEST 2006
On 30/05/06, Paul D. Fernhout <pdfernhout at kurtz-fernhout.com> wrote:
>
>
> and later making documentation especially when the system settles down a
> bit (including perhaps a movie of yours for SourceForge? Or even a main
> page?).
I would be pleased to help with that, maybe one or two neat "5 minutes
programs" and also a collection of short "how-to".
For now I've added quick "raw/draft" recording of :
How to add a method to a morph:
http://francois.schnell.free.fr/bazar/patapata-add-method/patapata-add-method.html
How-to send an order from one morph to another one:
http://francois.schnell.free.fr/bazar/pata-send-order/pata-pata-send-order.html
Concerning the licences your choice seems fine to me and I also think that a
wiki section helping to find our way in the 2D/3D jungle of Python would be
a breeze :)
( I'll propably give a look at cairo and mirra later ).
francois
As for promotion, I don't want too many users just yet with the
> system in its early stages and still subject to major changes before it
> settles down (why I have not announced it to the general Python list), but
> in the long term that would be great. What a young project needs most is a
> handful of very interested people such as yourself, so low key recruiting
> like that even now would be wonderful. Also, if after using it a bit you
> decide to make a roughly prioritized list of desirable minor changes, that
> would help too.
>
> Here is a new release as a zip file with a few files in it.
>
> http://sourceforge.net/project/showfiles.php?group_id=165910&package_id=188385&release_id=420989
> Or:
>
> http://svn.sourceforge.net/viewcvs.cgi/patapata/trunk/releases/PataPata_v101.zip?view=log
> This is mainly to fix some bugs I introduced when adding properties and wx
> widget support which prevented properly loading and saving world defining
> Python files. Files should now save and load correctly again (I noticed
> you did not show that in your movie :-). A big change from before is that
> I finally split up the single file into three files -- one for the GUI,
> one for the Example World and one for the Prototype library classes (which
> is why it is now in a zip file which expands to a directory). I also
> changed how the world file is loaded, from an eval to an import statement
> (which means the world files need to be in your Python path I think, or
> the local directory).
>
> I also added a license.txt file clearly stating the current work is under
> the GPL (meaning applications written with it would also be under the
> GPL). Still, my intent down the road is that if there is any small pieces
> of core technology in PataPata that would make sense to be in the core
> Python distribution (like improvements to Python or Jython so they
> supported prototypes in a better way, or perhaps support related to hooks
> for networked debugging and such), those parts would (if all relevant
> contributors agree) be dual licensed under the latest Python license as
> well as the GPL. However, I think a lot of the system will end up GPL,
> including all the self-drawn widgets. I know the GPL precludes adoption by
> certain developers and uses, but I think it also is desirable by certain
> others including because it solves certain coordination issues as a sort
> of project constitution. Looking at the licenses you or Ian or some others
> posting here (e.g. Art's PyGeo) have chosen I think GPL should work out
> well enough for making a free educational platform (especially given that
> the more general programming skills kids learn with it are usable on any
> Python application). Also, it allows me to draw from GPL-d code such as
> from some GPL's parts of GNU Smalltalk or the GPL'd Pyxel (widgets in
> Python) which might help speed development of some parts and otherwise
> would be precluded if I did not go with the GPL.
>
> A next goal is then to get some more widgets working (buttons, edit
> fields, bitmaps) and support basic HyperCard-like functionality, and do a
> simple card stack (possibly Bucky Fuller, but could be other topics; if
> you have a specific simulation idea or topic area you would like to see, I
> could make some widgets to support that). Important to this is supporting
> a system of nested views of some widgets inside another (or even nested
> worlds). Someday, perhaps even converting a lot of the examples from
> PythonCard might be a goal, so it makes sense early on to draw from
> PythonCard as much as possible, especially some of their naming
> conventions.
>
> Using properties, the system can now wrap wxWidgets (or perhaps TK, not
> that I have tried that), and while that is useful, right now I just don't
> think I want to focus on that. Or to look at it from another point of
> view, what's the point of making a RAD (Rapid Application Development)
> system if I am just going to use it to wrap wxPython wrappers for
> wxWidgets (which is tedious)? Building widgets its itself a good test of
> what the system can do and motivates further work on it. And if I develop
> new widgets using a few primitive operations based around BitBlit (or
> other simple drawing) like Squeak does it (drawing on whatever I can find
> on the web that uses Python) then I can probably also get them running
> under Jython without too much trouble, which means they could run as a
> Java applet. [Although something like Cairo might not be accessible to an
> Applet?] Basically, that is a Squeak-like approach, sending in mouse and
> key events into a world of custom Morphs. So I plan to pull out the
> wrapped wxButton and go to pure Morphs pretty soon. Still, it was worth it
> to actually wrap a few wxWidgets because that caused the improvements in
> the property system. Should doing the basic widgets prove too difficult,
> then I can fall back on wrapping wxWidgets or TK widgets or even GTK
> widgets etc.
>
> If you know of any GPL compatible sources of widget sets in Python to draw
> from, that could really help a lot in terms of minimizing wheel
> reinvention (Dethe just posted some which I need to look at). Right now
> I'm thinking of PythonCard for the event naming structure, and maybe Pyxel
> and OcempGUI and GNU Smalltalk for some implementation ideas. The GUI uses
> wx right now, but I've been musing over using Cairo or something like it
> instead -- but it would be best if whatever is used can work both in
> Python and in a Jython Applet (either as a simple layer written for
> PataPata that works on both, or as one library like Cairo that might work
> in both). For now, my default is to just do some basic drawing with wx and
> then port it to Jython/Swing at some point.
>
> I also have a few more things I want to add to properties from Smalltalk,
> mostly automatically tracking dependencies and sending changed messages,
> but more on that if/when I get to that.
>
> You wrote: "make PataPata a good imagination amplifier !" That sounds like
> a good concept to always keep in mind as it develops.
>
> All the best.
>
> --Paul Fernhout
> By the way, I was the one mentioning Ocaml :-) though I mainly see it as a
> "much better C" than something I want to be coding in all of the time. I
> prefer Smalltalk-like and Self-like systems with dynamic objects,
> including Python, but that's because, except for coding the VM or certain
> libraries, I am more interested in changing the system while it runs (like
> Smalltalk & Python can) than having the fastest system (like OCaml & C
> can). Naturally, for other people working on other problems (especially
> numerically oriented-ones), their priorities may differ.
>
> francois schnell wrote:
> > On 29/05/06, Paul D. Fernhout <pdfernhout at kurtz-fernhout.com> wrote:
> >
> >>
> >> Francois-
> >>
> >> Wow! Thanks for making that Flash recording:
> >>
> >>
> http://francois.schnell.free.fr/bazar/patapata-test1/patapata-test1.html
> >> That is a neat demo showing things I had not even thought of, like with
> >> the jumping Morphs (and far beyond my presentation skills).
> >
> >
> >
> > Well what I''m doing here is not really a "neat" presentation it's just
> > that
> > when I find something interesting like this I like to show it to other
> > people :) (I'm also very much into Free Culture and Free Software
> > advocating).
> >
> > My wife is now
> >
> >> finally impressed somewhat with what I am doing. :-) The version you
> are
> >> using did benefit from her trying an earlier version and her feedback
> on
> >> it, as several things she (also a programmer) tried that were hard or
> >> confusing or generated errors, I made easier or fixed.
> >
> >
> >
> > Oh , send also to her "mes homages" and congratulations from the french
> man
> > :) (my English spouse still have nearly no idea what I'm doing with
> > electronics bits and computers all over the place).
> >
> >
> >> To answer your first question: To add a method, try right-clicking in
> the
> >> yellow inspector pane [...]
> >>
> >
> > Dear me ... I didn't think you already have that and didn't try ... it
> > works
> > great thanks ! fun times ahead :)
> >
> > To answer your second question: To execute a method in another morph,
> you
> >
> >> must first have a pointer to that morph directly. Ideally, that would
> be
> >> supported by cut and paste in the inspector, but you can't do that yet.
> >> However, you can, say, go to Morph 0 and add a field and call it
> "morph1"
> >> and then when asked for the value, enter (without quotes):
> >> "world.morphs[1]" which will evaluate to Morph 1 in the world. Then you
> >> could reference "self.morph1" in any method of Morph 0, like to call
> >> "self,morph1.X()" directly.[...]
> >
> >
> >
> > Great my objects can now talk to each others ! It will be awesome when
> > you'll also have "quick integration" of this. :) More fun times ahead
> :))
> >
> >
> >> I'm guessing you're using WinXP? Nice to see the wxWindows button
> >> dragging
> >> properly.
> >
> >
> >
> > I'm mainly using XP for software I don't have on my Ubuntu Dapper
> > (like quick sreencasting, itunes/podcasts for my ipod, etc). I have one
> > screen/keyboard/mouse and a switch quickly between the Linux and XP box.
> >
> > So many times one does things and thinks no one notices or cares, so I'm
> >
> >> very excited to see someone trying it (and going to the effort to make
> a
> >> Flash video, too). Thanks again for trying it and the encouragement.
> >
> >
> >
> > Well ... maybe it's why Einstein said it's difficult for people to
> > understand what they never experienced (ie in our case a visual hands-on
> > squeak-like familiarity of objects land) , that's also why he said that
> > imagination is more important than knowledge. I believe it's Alan Kay
> who
> > said that the computer revolution haven't started yet in education and
> that
> > kids ~need "imagination amplifiers" => make PataPata a good imagination
> > amplifier !
> >
> >
> >> As
> >> regards future evolution, right now I'm at a decision point as to
> whether
> >> to push forward in Python further or, as per my previous discussions
> here
> >> with Kirby where he rightly points to dominant paradigms in specific
> >> languages, to jump to something like OCaml and use it to build a
> >> Self-like
> >> prototype language on top of it (something like io, which looks great,
> >> http://www.iolanguage.com/about/
> >> but with a Smalltalk/Self-derived keyword syntax, which I feel is
> >> desirable), and so essentially producing a system that supports two
> >> extremes of permissiveness at two different levels -- strong (but
> >> implicit) typing at a speedy supporting layer and anything-goes
> >> prototypes
> >> above that for most GUI development work. On the other hand, I am
> >> making a
> >> lot of progress with Python (and not knowing OCaml much) and a Python
> >> version has value to me for other reasons. So, this seems like a big
> vote
> >> on keeping it all in Python for now?
> >
> >
> >
> > Well I don't know OCaml and io but If I were you I would be suspicious
> of a
> > "yankee" advising you a language written by french people ;)
> >
> > I personally would *love* if you continue this in Python, I'm not
> > anymore in
> > a testing phase, I've seen enough to "adopt" it and see how I can use it
> > for
> > games/simulations/teaching and help where I can :)
> >
> > I probably won't be able to help on the core "PataPata" but my Python
> > skills gets better and better (I'm quite new to Python).
> >
> > I can help with :
> > - bug tracking
> > - playing with it and doing short examples/demos (games/simulations)
> > - promoting and doc (especially in the French Python sphere)
> > - i18n and French translation
> > - I begin to know more and more the multimedia part of Python (sound,
> > video,
> > streaming), could be handy one day
> > - extend morphs to the analog world (data acquisition and automation)
> > - I'm good at testing plenty of things and finding gems (useful if you
> > don't
> > want to reinvent the wheel). :)
> >
> > Well it's bed time on this part of the globe => $ python dreamland.py
> >
> > Please keep up your excellent work <subliminal> and use Python :)
> > </subliminal>
> >
> > francois
> >
> > All the best.
> >
> >>
> >> --Paul Fernhout
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/edu-sig/attachments/20060530/726766f8/attachment.htm
More information about the Edu-sig
mailing list