PyoLogoTechInfo: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 10: Line 10:
* [http://pyserial.sourceforge.net/ python-serial] - This is required to communicate with the [http://www.gogoboard.org gogoboard].
* [http://pyserial.sourceforge.net/ python-serial] - This is required to communicate with the [http://www.gogoboard.org gogoboard].
* [http://www.stsci.edu/resources/software_hardware/numarray Numarray] - This library is used for the sensor processing module.
* [http://www.stsci.edu/resources/software_hardware/numarray Numarray] - This library is used for the sensor processing module.

== Overall Structure ==
...


== To Do List (without any new features)==
== To Do List (without any new features)==
* Performance boost on OLPC machines. Reducing frame rate and code optimization could perhaps help.
* Performance boost on OLPC machines. Reducing frame rate and code optimization could perhaps help.
* UI issues under Linux. Currently the toolbars located on the side panels do not show up under Linux. The text box used for the command center also does not work properly.
* UI issues under Linux. Currently the toolbars located on the side panels do not show up under Linux. The text box used for the command center also does not work properly.
* Better open and save. Projects files are saved in an XML format. Currently the project files can only reside in the same folder as the main Python script. Images used in the project should be included in the project file.
* Error handling/reporting. The code base has minimal error handling in general. When things go wrong, the screen refresh thread usually dies if not the whole application.
* Error handling/reporting. The code base has minimal error handling in general. When things go wrong, the screen refresh thread usually dies if not the whole application.
* Logo Error handling/reporting. The Logo interpreter needs to produce better error messages for the Logo programmer.
* Logo Error handling/reporting. The Logo interpreter needs to produce better error messages for the Logo programmer.
* Thread interference. No locks are used in modules that are accessed by more than one thread. Errors occasionally happens.

Latest revision as of 16:17, 23 January 2007

PyoLogo uses a few libraries to implement its main components. The libraries were not chosen specifically for the OLPC machine as that was not the initial intention of the project. Some of the modules are large and requires its own dependencies. The performance on OLPC machines were not impressive when tested on the A tests boards. Optimization would perhaps be one of the biggest tasks for this project to become successful.

Dependencies

  • pyGame - pyGame is a Python wrapper for the SDL graphics library. It is used to implement the main display area where turtles and other objects are drawn.
  • wxPython - This is a UI framework based on wxWidgets. It is used to create the main window, menus, toolbars, the editor, and other UI components. Note that an SDL surface is embedded into a wxWidget frame.
  • PLY - This is a Lex/Yacc library purely written in Python. It is used to create the Logo interpreter.

The following libraries are needed for the optional robotics module.

To Do List (without any new features)

  • Performance boost on OLPC machines. Reducing frame rate and code optimization could perhaps help.
  • UI issues under Linux. Currently the toolbars located on the side panels do not show up under Linux. The text box used for the command center also does not work properly.
  • Error handling/reporting. The code base has minimal error handling in general. When things go wrong, the screen refresh thread usually dies if not the whole application.
  • Logo Error handling/reporting. The Logo interpreter needs to produce better error messages for the Logo programmer.
  • Thread interference. No locks are used in modules that are accessed by more than one thread. Errors occasionally happens.