Suggestions for a development environment?

2008-02-21 Thread James Newton
Hi Python activity developers,

I am fairly new to Python and to Linux.  I have a number of ideas for
educational activities that I would like to create for the XO.   I'm
currently working on a Snakes and Ladders game.  I have plans for several
other activities, including an Abacus, a game for stimulating mental imagery
and a co-operative game based on micro-loans.

I have spent some weeks now looking for the right tools to help me develop
these activities.  In the hope that I may have missed an obvious but ideal
solution, I'd like to give a summary of what I'm hoping to do, and ask you
for your suggestions. 

Snakes and Ladders
==
Snakes and Ladders is an implementation of the classic board game
http://en.wikipedia.org/wiki/Snakes_and_ladders.  My aim is to help young
children to learn to count (use number names in the correct order, count
each square in order, count each square only once, associate number name
with quantity, ...).

You can find a (non-XO) draft implementation of it at:
http://olpc-dev.fuelindustries.com/snakes_080116.zip

Issues
==
1) Show the numbers in a localized writing system (Roman, Arabic,
   Chinese, ...)
2) Show multiple counters on the same square with an offset, so that 
   all are visible.
3) Show the current player's counter at the front (z-order)
4) Use SVG images for the default graphics, to limit file size
5) Allow user to import custom artwork for the background from (say)
   the Paint activity to override the default graphics
6) Allow user to customize the Snake and Ladder start and end points
   to match those in their background image
7) Allow user to import custom sound files from (say) Record
   (Sound files are used to count aloud, so it would be great to use
   a recording of the player's own voice)
8) Allow multiple players to share one machine, and multiple
   machines to share a single game 
9) Show a preferences screen to allow choice of number of players,
   number of dice, and so on.

Modules
===
So far, I've been using Pygame to display the background and counters at
precise positions on the screen.  My understanding is the PyGTK might more
economical in terms of CPU usage than PyGame, and that it would let me use
Glade to layout the screens.  

On the one hand, I am unsure how I could deal with multiple overlapping
counters [2] or a criss-cross arrangement of snakes and ladders [4, 5] in
PyGTK.  On the other, creating a separate screen for setting seems simpler
in PyGTK than in Pygame.

Is it possible to use the two approaches together?

Platform

My background is in Macromedia Director, which I have used at a high level
for over ten years.  I'd probably be most productive most quickly if I could
find a similar authoring environment for Python.  Having said that, I
understand that Python uses a very different metaphor, so, in the long term,
I would be better off using a purely Pythonic environment.  I'm looking for
new good habits to acquire.

I have done most of my Python development so far on Windows, using IDLE.  I
am also very much at ease on Macintosh.  I would guess that the closer my
development environment is to the XO environment, the smoother the
development process will go.  I have managed to get a machine set up to run
Ubuntu 7.10, but I haven't found how to install IDLE on it.

I have found a list of Python IDEs at
http://linuxmafia.com/faq/Devtools/ides.html, but no reviews that allow me
to compare them.  I would be willing to pay for an IDE (shareware or
otherwise) if that is what you recommend.


I understand that personal preferences play a large part in choosing both
what modules to use for a particular development and what platform and
environment to work with.  So what would your personal preferences be for
the project I describe above and why?


Thanks in advance for your insight.  In return, I plan to create a series of
tutorials[1], written from my beginner-to-the-whole-Python-Linux-XO-thing
point of view, so that others interested in writing XO activities can get up
and running faster.

James


[1] Examples
For the XO:   http://wiki.laptop.org/go/Ethiopian_Setup
For Director: http://nonlinear.openspark.com/articles/index.htm

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Suggestions for a development environment?

2008-02-21 Thread Gerard J. Cerchio
I prefer IDE's too, and have been using Eclipse: http://www.eclipse.org 
I am pretty sure Ubuntu has it packaged.

Have you tried running your development environment in a virtual machine?

Here are a few notes on OLPC development: 
http://wiki.laptop.org/go/User:Gcerchio.diary
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Suggestions for a development environment?

2008-02-21 Thread Dana Pellerin
James, I too am brand new to the whole Python/GTK/Linux thing as well. 
I'm really looking forward to reading about your experiences as you 
learn and I have planned to document mine as well. There seems to be 
very few entry level tutorials for people who are new to the entire 
platform. Coming from the Windows/Visual Studio world, I've had a lot of 
trouble just getting things set up so I can write some code. I don't 
know how much I can help you with your particular issue, but I will 
share what I am doing so far in case there are other folks struggling.

I have managed to get Ubuntu 7.10 running under VMWare. I downloaded a 
prebuilt VM here: 
http://isv-image.ubuntu.com/vmware/Ubuntu-7.10-desktop-i386.zip. It 
seems to work pretty well and saved me a lot of install time. I then 
used the built in package manager to install what looks like a pretty 
decent IDE called Eric. The website is at: 
http://www.die-offenbachs.de/eric/index.html. If you decide to use GTK, 
check out a GUI builder called Gazpacho. It's like GLADE but seems a 
little slicker to me at first glance. It can also be installed from the 
package manager in Ubuntu, but the website is located here: 
http://gazpacho.sicem.biz/.

You asked about mixing GTK and PyGame and I ran across a Wiki entry 
saying it can't be done. I don't know first hand, but here's the entry: 
http://www.pygame.org/wiki/gui?parent=index.

I don't actually have an XO laptop, so I installed it in a VM by 
downloading a prebuilt image here: http://dev.laptop.org/pub/virtualbox/.

So that's the environment I have set up and I'm just starting to write 
some basic hello world type apps using GTK. I have no idea how they 
will appear or integrate with Sugar on the XO though. What I have not 
figured out yet is how to get my programs over to the XO virtual 
machine. This is where my lack of Linux knowledge is really killing me. 
Do I FTP it over somehow?

Dana

James Newton wrote:
 Hi Python activity developers,

 I am fairly new to Python and to Linux.  I have a number of ideas for
 educational activities that I would like to create for the XO.   I'm
 currently working on a Snakes and Ladders game.  I have plans for several
 other activities, including an Abacus, a game for stimulating mental imagery
 and a co-operative game based on micro-loans.

 I have spent some weeks now looking for the right tools to help me develop
 these activities.  In the hope that I may have missed an obvious but ideal
 solution, I'd like to give a summary of what I'm hoping to do, and ask you
 for your suggestions. 

 Modules
 ===
 So far, I've been using Pygame to display the background and counters at
 precise positions on the screen.  My understanding is the PyGTK might more
 economical in terms of CPU usage than PyGame, and that it would let me use
 Glade to layout the screens.  

 On the one hand, I am unsure how I could deal with multiple overlapping
 counters [2] or a criss-cross arrangement of snakes and ladders [4, 5] in
 PyGTK.  On the other, creating a separate screen for setting seems simpler
 in PyGTK than in Pygame.

 Is it possible to use the two approaches together?

 Platform
 
 My background is in Macromedia Director, which I have used at a high level
 for over ten years.  I'd probably be most productive most quickly if I could
 find a similar authoring environment for Python.  Having said that, I
 understand that Python uses a very different metaphor, so, in the long term,
 I would be better off using a purely Pythonic environment.  I'm looking for
 new good habits to acquire.

 I have done most of my Python development so far on Windows, using IDLE.  I
 am also very much at ease on Macintosh.  I would guess that the closer my
 development environment is to the XO environment, the smoother the
 development process will go.  I have managed to get a machine set up to run
 Ubuntu 7.10, but I haven't found how to install IDLE on it.

 I have found a list of Python IDEs at
 http://linuxmafia.com/faq/Devtools/ides.html, but no reviews that allow me
 to compare them.  I would be willing to pay for an IDE (shareware or
 otherwise) if that is what you recommend.


 I understand that personal preferences play a large part in choosing both
 what modules to use for a particular development and what platform and
 environment to work with.  So what would your personal preferences be for
 the project I describe above and why?


 Thanks in advance for your insight.  In return, I plan to create a series of
 tutorials[1], written from my beginner-to-the-whole-Python-Linux-XO-thing
 point of view, so that others interested in writing XO activities can get up
 and running faster.

 James


 [1] Examples
 For the XO:   http://wiki.laptop.org/go/Ethiopian_Setup
 For Director: http://nonlinear.openspark.com/articles/index.htm

 ___
 Devel mailing list
 Devel@lists.laptop.org
 http://lists.laptop.org/listinfo/devel