[Edu-sig] PySqueak: "Self" as the source of many ideas in Squeak

Paul D. Fernhout pdfernhout at kurtz-fernhout.com
Sun May 7 06:09:16 CEST 2006


Ian-

Thanks again for this pointer.

I've added two more proof of concept files to PataPata.

The second one demonstrates inheritance with a parent and two children,
as well as graphically displaying the morphs. See:
http://svn.sourceforge.net/viewcvs.cgi/patapata/PataPata/proof_of_concept_002.py?view=markup
I started trying to do it in OpenGL (which I have had working before) and 
got some errors so punted and chose wx and 2D for that. I don't like 
making initial proof of concepts that rely on too many dependencies.
OpenGL remains a real possibility down the road, but this one problem just 
shows how installation issues can bite you (in this case, I had commented 
out the driver for it in my xorg.conf file when I was having other
problems related to one of my two ATI cards having problems driving its 
secondary display head, and didn't care to restart X in the middle of my 
development to try fixing that.)

The third P.O.C. demonstrates the problem your solution addresses.
http://svn.sourceforge.net/viewcvs.cgi/patapata/PataPata/proof_of_concept_003.py?view=markup

I found two other variants of solutions on the web (differences include 
are who does the wrapping etc.), and I need to decide how best to proceed 
on that.
Links to these three options including yours:
http://svn.colorstudy.com/home/ianb/ruby_blocks.py
http://zephyrfalcon.org/weblog/arch_d7_2002_11_16.html
http://lists.canonical.org/pipermail/kragen-hacks/2000-September/000264.html
[The latter two are more specific to Prototype inheritance in Python.]

Going to be traveling much of next week, so probably not much more 
activity on this for a while. Frustrating to me as I think this is just 
picking up some speed. A little OpenGL, a few Self-like GUI widgets for 
inspecting values like in the movie of just rectangles and lines and text, 
using a wrapper approach for inserting methods into prototypes, adding a 
remote debugging process perhaps derived from Idle, making some program 
writing code derived from pickle perhaps, dropping in some bitmap and icon 
content from our garden simulator, and the result might be a nice proof of 
concept constructivist educationally-oriented system in a week's work or 
so. Obviously not everything, and with very rough edges, but something 
that could show the basic ideas. Sigh. With distractions, and part-time, 
be nice to get all that together by the end of June, if that, 
realistically. No promises though.

Thanks again for your feedback.

--Paul Fernhout

Ian Bicking wrote:
> For direct assignment, you might find the "magic_set" decorator I wrote 
> useful: http://svn.colorstudy.com/home/ianb/ruby_blocks.py (toward the 
> bottom)
> 
> It lets you do:
> 
>    @magic_set(foo)
>    def spam(self): print 'hi'
> 
> which handles the closure to add instance methods directly to instances 
> (which doesn't work if done just through assignment), among other 
> assignments.  It uses the name of the first argument (self, cls, or 
> anything else) to determine what kind of function you are trying to create.



More information about the Edu-sig mailing list