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
_______________________________________________
Edu-sig mailing list
[email protected]
http://mail.python.org/mailman/listinfo/edu-sig