Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

So you think PythonCard is old? Here's new wine in an old bottle.

99 views
Skip to first unread message

John Henry

unread,
Apr 26, 2008, 2:18:24 AM4/26/08
to
For serveral years, I have been looking for a way to migrate away from
desktop GUI/client-server programming onto the browser based network
computing model of programming. Unfortunately, up until recently,
browser based programs are very limited - due to the limitation of
HTML itself. Eventhough PythonCard hasn't keep up with the latest
widgets in wxpython, the programs so created still works a lot better
- until now.

If you look at programs at some of the major sites these days - like
Google calendar, Netflix, blockbuster, and so forth - you would
undoubtedly notice that the quality of the programs are pretty much at
par with the desktop programs we use everyday. Since the curious mind
wanted to know how these programs are done, I started investigating
and found out that what a difference a few years have made to
Javascript - the once much hated beast of the Internet age - and
during my search for perfection, I found Qooxdoo (http://
qooxdoo.org/).

Qooxdoo is a Javascript toolkit that sits on top of Ajax. Take a look
at some of the *impressive* widgets
at http://demo.qooxdoo.org/current/showcase/#Form.

So, what's that got to do with Pythoncard? Read on.

After trying for a few days learning Qooxdoo, my head really really
hurts. Getting too old to learn this stuff, I was mumbling.

Then I looked some more. I found QxTransformer (http://
sites.google.com/a/qxtransformer.org/qxtransformer/Home) which is a
XSLT toolkit that creats XML code that invoke qooxdoo.

So, what's that got to do with Pythoncard? Read on.

After trying for a few days learning QxTransformer, my head really
really hurts. Getting too old to learn
this stuff, I was mumbling.

I want Pythoncard.

Damn Pythoncard! Once you got hooked, everything else looks
impossibly complicated and unproductive.

But then I looked closer. It turns out the XML file created by
QxTransformer is *very* similar in structure when compared to the
resource files used in PythonCard. Since there are no GUI builders
for QxTransformer, and I can't affort to buy the one for Qooxdoo
(Java! Yuk!), I decided to roll up my sleeves, took the Pythoncard's
Layout Manager and modified it and created my own "Poor Man's Qooxdoo
GUI Layout Designer".

The result? See the partially completed application at:

http://test.powersystemadvisors.com/

and the same application running from the desktop:

http://test.powersystemadvisors.com/desktopHelloWorld.jpg

It shouldn't be long before I can fill in the gaps and have the GUI
builder maps the rest of the Pythoncard widgets to Qooxdoo widgets.
Once I've done that, I can have the same application running from the
desktop, or from the browser. And it shouldn't take more than minutes
to create such applications.

Welcome to the modernized world of Pythoncard!!!

Aahz

unread,
Apr 26, 2008, 11:46:49 AM4/26/08
to
In article <9028496e-30de-4853...@h1g2000prh.googlegroups.com>,

John Henry <john10...@hotmail.com> wrote:
>
>But then I looked closer. It turns out the XML file created by
>QxTransformer is *very* similar in structure when compared to the
>resource files used in PythonCard. Since there are no GUI builders
>for QxTransformer, and I can't affort to buy the one for Qooxdoo
>(Java! Yuk!), I decided to roll up my sleeves, took the Pythoncard's
>Layout Manager and modified it and created my own "Poor Man's Qooxdoo
>GUI Layout Designer".

Cute! When you have working code, please do upload to PyPI.
--
Aahz (aa...@pythoncraft.com) <*> http://www.pythoncraft.com/

Why is this newsgroup different from all other newsgroups?

John Henry

unread,
Apr 26, 2008, 6:03:32 PM4/26/08
to
On Apr 26, 8:46 am, a...@pythoncraft.com (Aahz) wrote:
> In article <9028496e-30de-4853-8f57-b55d14e52...@h1g2000prh.googlegroups.com>,

> John Henry <john106he...@hotmail.com> wrote:
>
>
>
> >But then I looked closer. It turns out the XML file created by
> >QxTransformer is *very* similar in structure when compared to the
> >resource files used inPythonCard. Since there are no GUI builders

> >for QxTransformer, and I can't affort to buy the one for Qooxdoo
> >(Java! Yuk!), I decided to roll up my sleeves, took thePythoncard's

> >Layout Manager and modified it and created my own "Poor Man's Qooxdoo
> >GUI Layout Designer".
>
> Cute! When you have working code, please do upload to PyPI.
> --
> Aahz (a...@pythoncraft.com) <*> http://www.pythoncraft.com/

>
> Why is this newsgroup different from all other newsgroups?

So far, I have the following widgets working:

window, button, checkbox, static text, static box, list, combobox,
spinner, radio button group

Shouldn't be long before the following works:

static line, image, image button, choice.

casti...@gmail.com

unread,
Apr 26, 2008, 7:05:07 PM4/26/08
to
> static line, image, image button, choice.- Hide quoted text -
>
> - Show quoted text -

Should static text GUI class support the operations of a string?

John Henry

unread,
Apr 26, 2008, 7:11:11 PM4/26/08
to

Say what?

John Henry

unread,
Apr 27, 2008, 12:04:58 AM4/27/08
to
> static line, image, image button, choice.- Hide quoted text -
>
> - Show quoted text -

All of the above works!

TextFields next.

casti...@gmail.com

unread,
Apr 27, 2008, 1:27:44 PM4/27/08
to
> TextFields next.- Hide quoted text -

>
> - Show quoted text -

Actually, I was asking what operations you chose to support in 'static
text'. Additional Python methods of strings could be made to work on
them.

Ron Stephens

unread,
Apr 27, 2008, 2:36:45 PM4/27/08
to
John,

This is very interesting! Please do make this available. I love
PythonCard, but I am doing mainly web programming these days.

I will mention this on my next podcast. Can you do a slider?

Ron Stephens
Python411 www.awaretek.com/python/index.html

Fred Pacquier

unread,
Apr 27, 2008, 3:23:30 PM4/27/08
to
John Henry <john10...@hotmail.com> said :

> Welcome to the modernized world of Pythoncard!!!

Hey, that's really neat !

I remember dabbling in Pythoncard in the early days, some years ago, it was
a very interesting project. I gave it up eventually, partly because it
seemed somewhat abandoned (I see it's still stuck in 2006 ?), but mostly
because the wxPython dependency was either unavailable or too hefty for the
sort of machines I was interested in using it on (a Sharp Zaurus then, now
Nokia Internet tablets). Since then I've been doing web apps instead,
hosted and used on the devices themselves.

So using Pythoncard as a designer for web apps, of course that rings a
bell...

Do you have any idea of the computing requirements of Qooxdoo and
QxTransformer, compared to a native Pythoncard app ? I wonder if your stuff
would run acceptably on today's mobile platforms (the Nokias have a Firefox
derivative that is reasonably competent at javascript), and would give it a
try if it's not too arcane.

Do keep us posted !

TIA,
fp


John Henry

unread,
Apr 27, 2008, 4:55:55 PM4/27/08
to

Not sure if Qooxdoo supports slider yet. I have to ask.

John Henry

unread,
Apr 27, 2008, 4:59:38 PM4/27/08
to
On Apr 27, 12:23 pm, Fred Pacquier <xne...@fredp.lautre.net> wrote:
> John Henry <john106he...@hotmail.com> said :

The performance of Qooxdoo is quite amazing - for a Javascript based
web application. Don't know about cell-phones though. You can try
their showcase web site I cited earlier.

Yes, who would have throught we don't have to give up on Pythoncard?

Fred Pacquier

unread,
Apr 28, 2008, 2:47:21 PM4/28/08
to
John Henry <john10...@hotmail.com> said :

> The performance of Qooxdoo is quite amazing - for a Javascript based
> web application. Don't know about cell-phones though. You can try
> their showcase web site I cited earlier.

Just for the record, Nokia Internet tablets (770, N800, N810) are the only
things made by Nokia that are not cell-phones... They're ARM machines with
a 800x480 4" screen, Wifi, Bluetooth, and Linux. And Python, pyGTK and
Pygame. Probably pyQt next as they just bought Trolltech. But no wxPython.

I was not speaking of running just the client part in the device's browser,
either - but the full Monty (haha) with the web server and the application
engine, python, middleware and all. I'm doing it right now using a full-
blown framework (web2py), so it's not unreasonable. There's no Ajax in
there though, so I'm wondering what kind of impact those tools you mention
would have, server side.



> Yes, who would have throught we don't have to give up on Pythoncard?

Proof of superior vision, architecture and design, all that time ago...

John Henry

unread,
Apr 28, 2008, 3:41:16 PM4/28/08
to
On Apr 27, 12:23 pm, Fred Pacquier <xne...@fredp.lautre.net> wrote:
>
> Do keep us posted !
>
> TIA,
> fp

Check it out now.

Only one to be added is the Multicolumn List (table), and then menus.
The other widgets (Togglebutton, BitmapCanvas, Gauge, Notebook,
CodeEditor) will not be implemented initially.

http://test.powersystemadvisors.com

John Henry

unread,
Apr 29, 2008, 1:40:11 AM4/29/08
to

table and menus all work

Panyasan

unread,
Apr 29, 2008, 4:57:05 AM4/29/08
to
Hi,

I am one of the two developers working on the xml-to-javascript
converter (qxtransformer) John has mentioned and we are thrilled that
our project has found a use in the PythonCard community.

However, we have a problem getting PythonCard to work on our Macs (Mac
OS 10.5 Leopard). We should probably be asking this on the PythonCard
help list, but since the list seems to be somewhat deserted (very few
posts) and John is active here and people seem to be using PythonCard,
maybe someone has an idea. It might be very simple and stupid - I have
never worked with python before.

I am using
- PythonCard 0.8.2 release on Leopard, which is copied by setup.py to /
Library/Python/2.5/site-packages
- John's layoutEditor package, (http://qxtransformer.googlegroups.com/
web/layoutEditor.zip)

PythonCard email list says that Leopard and PythonCard 0.8.2 seem to
like each other generally:

http://sourceforge.net/mailarchive/forum.php?thread_name=EE5213D5-A005-4ED0-9512-111B6D4F06A7%40bu.edu&forum_name=pythoncard-users

and I can get the examples working. However, when I start John's
modified layoutEditor.py, I get an empty window and the following
error is thrown:

no resource file for /Users/bibliograph/Programme/PythonCard/tools/
layoutEditor/multipropertyEditor
Traceback (most recent call last):
File "/BinaryCache/wxWidgets/wxWidgets-11~57/Root/System/Library/
Frameworks/Python.framework/Versions/2.5/Extras/lib/python/wx-2.8-mac-
unicode/wx/_core.py", line 14095, in <lambda>
File "/Library/Python/2.5/site-packages/PythonCard/tools/
layoutEditor/layoutEditor.py", line 153, in on_initialize
self.propertyEditorWindow = model.childWindow(self,
PropertyEditor)
File "/Library/Python/2.5/site-packages/PythonCard/model.py", line
213, in childWindow
rsrc = resource.ResourceFile(filename).getResource()
File "/Library/Python/2.5/site-packages/PythonCard/resource.py",
line 45, in __init__
self.dictionary = util.readAndEvalFile(rsrcFileName)
File "/Library/Python/2.5/site-packages/PythonCard/util.py", line
39, in readAndEvalFile
f = open(filename)
TypeError: coercing to Unicode: need string or buffer, NoneType found

there is a file PythonCard/tools/layoutEditor/modules/
multipropertyEditor.rsrc.py

When I resize the window, I get the following errors

Tue Apr 29 10:48:08 noname Python[40440] <Error>: CGContextConcatCTM:
invalid context
Tue Apr 29 10:48:08 noname Python[40440] <Error>: CGContextSaveGState:
invalid context
Tue Apr 29 10:48:08 noname Python[40440] <Error>: doClip: invalid
context
Tue Apr 29 10:48:08 noname Python[40440] <Error>: CGContextSaveGState:
invalid context
Tue Apr 29 10:48:08 noname Python[40440] <Error>:
CGContextSetBlendMode: invalid context
Tue Apr 29 10:48:08 noname Python[40440] <Error>:
CGContextSetShouldAntialias: invalid context
Traceback (most recent call last):
File "/Library/Python/2.5/site-packages/PythonCard/model.py", line
884, in _dispatch
handler(background, aWxEvent)
File "/Library/Python/2.5/site-packages/PythonCard/tools/
layoutEditor/layoutEditor.py", line 560, in on_size
self.createDC()
File "/Library/Python/2.5/site-packages/PythonCard/tools/
layoutEditor/layoutEditor.py", line 556, in createDC
dc.SetLogicalFunction(wx.INVERT)
File "/BinaryCache/wxWidgets/wxWidgets-11~57/Root/System/Library/
Frameworks/Python.framework/Versions/2.5/Extras/lib/python/wx-2.8-mac-
unicode/wx/_gdi.py", line 4079, in SetLogicalFunction
wx._core.PyAssertionError: C++ assertion "status == noErr" failed
at ../src/mac/carbon/graphics.cpp(1324) in EnsureIsValid(): Cannot
nest wxDCs on the same window

Thanks for any pointers,

Christian

John Henry

unread,
Apr 29, 2008, 10:11:40 AM4/29/08
to
On Apr 29, 1:57 am, Panyasan <c.boulan...@qxtransformer.org> wrote:
> Hi,
>
> I am one of the two developers working on the xml-to-javascript
> converter (qxtransformer) John has mentioned and we are thrilled that
> our project has found a use in the PythonCard community.
>
> However, we have a problem getting PythonCard to work on our Macs (Mac
> OS 10.5 Leopard). We should probably be asking this on the PythonCard
> help list, but since the list seems to be somewhat deserted (very few
> posts) and John is active here and people seem to be using PythonCard,
> maybe someone has an idea. It might be very simple and stupid - I have
> never worked with python before.
>
> I am using
> - PythonCard 0.8.2 release on Leopard, which is copied by setup.py to /
> Library/Python/2.5/site-packages
> - John's layoutEditor package, (http://qxtransformer.googlegroups.com/
> web/layoutEditor.zip)
>
> PythonCard email list says that Leopard and PythonCard 0.8.2 seem to
> like each other generally:
>
> http://sourceforge.net/mailarchive/forum.php?thread_name=EE5213D5-A00...

Christian,

It appears you're missing a file. Where did you placed my program? I
see that there are two places being mentioned:

> no resource file for /Users/bibliograph/Programme/PythonCard/tools/
> layoutEditor/multipropertyEditor

and

Panyasan

unread,
Apr 29, 2008, 11:28:30 AM4/29/08
to

> Christian,
>
> It appears you're missing a file. Where did you placed my program? I
> see that there are two places being mentioned:
>
> > no resource file for /Users/bibliograph/Programme/PythonCard/tools/
> > layoutEditor/multipropertyEditor
>
> and
>
> > File "/Library/Python/2.5/site-packages/PythonCard/tools/
> > layoutEditor/layoutEditor.py", line 556, in createDC

I unzipped the folder you uploaded and placed it in the PythonCard/
tools folder. I get the same error if I try to start the default
resourceEditor.py or layoutEditor.py scripts, so it does not seem to
have to do with your modifications.
When I copy multipropertyEditor.rsrc.py files from PythodCard/tools/
resourceEditor/modules folder to PythodCard/tools/resourceEditor/, it
will throw the error about a different file - might this be some kind
of PATH error?

C.

John Henry

unread,
Apr 29, 2008, 12:17:01 PM4/29/08
to

It certainly looks like it's not finding a file. Not knowing Mac or
Linux, I don't know how files are searched.

There are a whole bunch of test programs that comes with Pythoncard.
Do they work? (Not all of them will work - some requires a database)

Panyasan

unread,
Apr 29, 2008, 2:30:23 PM4/29/08
to
On 29 Apr., 18:17, John Henry <john106he...@hotmail.com> wrote:

>
> There are a whole bunch of test programs that comes with Pythoncard.
> Do they work? (Not all of them will work - some requires a database)

Yes, the examples work. Just the resourceEditor.py and the
layoutEditor.py in the distributed version and your modified
layoutEditor.py don't.

Panyasan

unread,
Apr 29, 2008, 4:16:04 PM4/29/08
to

Ok, here is how it works for me: copy all the *.rsrc.py from the
modules subdirectory to the parent directory. This works for the
standard resourceEditor folder and your custom layoutEditor folder.
What the heck. Now I can deal with more productive things...

John Henry

unread,
Apr 29, 2008, 6:23:35 PM4/29/08
to

Mmmmmm...this is a Mac thing.

jbar...@gmail.com

unread,
May 5, 2008, 2:04:08 PM5/5/08
to
John, you are the man

> during my search for perfection, I found Qooxdoo (http://qooxdoo.org/).
>

> ...
>
> I found QxTransformer (http://sites.google.com/a/qxtransformer.org/qxtransformer/Home) which is a


> XSLT toolkit that creats XML code that invoke qooxdoo.

Qooxdoo is indeed really impressive. But I read that YAHOO will serve
the javascript files for you from their CDN when you use YUI, for
free, and that's no peanuts, so I wonder, did you find anything at all
like that that could be used with YUI?

I have evaluated XForms, Laszlo, Flex, ZK, ... but I have to say
QxTransformer is the cleverest solution I have found so far (thanks to
you). I love it.


> I want Pythoncard.

I feel with you

Thanks!
Jaime

John Henry

unread,
May 6, 2008, 10:07:30 PM5/6/08
to
On May 5, 11:04 am, jbarci...@gmail.com wrote:
> John, you are the man
>
> > during my search for perfection, I found Qooxdoo (http://qooxdoo.org/).
>
> > ...
>
> > I found QxTransformer (http://sites.google.com/a/qxtransformer.org/qxtransformer/Home) which is a
> > XSLT toolkit that creats XML code that invoke qooxdoo.
>
> Qooxdoo is indeed really impressive. But I read that YAHOO will serve
> the javascript files for you from their CDN when you use YUI, for
> free, and that's no peanuts, so I wonder, did you find anything at all
> like that that could be used with YUI?
>

Sorry but I don't know any of this. I am pretty new to web
programming.

> I have evaluated XForms, Laszlo, Flex, ZK, ... but I have to say
> QxTransformer is the cleverest solution I have found so far (thanks to
> you). I love it.
>
> > I want Pythoncard.
>
> I feel with you
>

I have done quite a bit of work to improve things. We are now
officially calling the project PyQooxCard. See:

http://sites.google.com/a/qxtransformer.org/qxtransformer/Home

I put together my first app which took less than a day. Not bad
because there are 36 screens, and over 100 data fields. See:

http://epc.powersystemadvisors.com

3 cheers to PythonCard.


> Thanks!
> Jaime

pa...@ulkarodgers.com

unread,
May 29, 2008, 7:50:20 PM5/29/08
to
Have you shown this stuff to the google AppEngine folks!
Thats being touted as the thing that'll make web-2 easy

but you have to write code (Python) which will turn off 99% of
possible users.

What made Hypercard really great (and Supercard on DOS, and the new
clones like Revolution) is that it was a drag-n-drop GUI designer, it
"built-in" the data storage (persistence layer is what we call it now)
it was INTEGRATED, (you only had to get the one thing, not heinz-57-
bloody-pieces) and it used an easily-readable interpreted programming
language.

App-Engine has the persistence, and the integration, its missing the
others and without them it'll never be great.

call those guys, they need you!
I need your stuff on their infrastructure. THAT would be worth a case
of champagne.

alex23

unread,
May 29, 2008, 8:00:19 PM5/29/08
to
On May 30, 9:50 am, p...@ulkarodgers.com wrote:
> Have you shown this stuff to the google AppEngine folks!
> Thats being touted as the thing that'll make web-2 easy
> App-Engine has the persistence, and the integration, its missing the
> others and without them it'll never be great.

Google App Engine is _only_ focused on providing a framework for
scaleable apps, the GUI end is left entirely up to the developer (and
really _shouldn't_ be integrated at that level, IMO).

There's nothing preventing you from building something on top of GAE
that does what you want; using their AJAX Libraries API is a good
place to start: http://code.google.com/apis/ajaxlibs/

0 new messages