sugarbot

sugarbot's aim is to provide testing and automation facilities for the OLPC Project's Sugar GUI. The project must first identify and evaluate possible implementation options, and then implement the best choice. Although it has a Sugar focus, sugarbot should be easily extensible to other Python-based GUI's.

Tuesday, December 16, 2008

Un-kludging Code

With my new-found free time, I'm going to be going back through Sugarbot with some "fresh" eyes, and hopefully un-kludging some of the code. One top of that, here is the "short list" of To-Dos:

1.) Test execution inside sugar-jhbuild as a stand-alone activity that emulates other activities.

2.) Enable synchronous execution and GUI updating. The current model waits for the GUI to initialize and then performs all of the manipulation while the actual drawn GUI is frozen. All of the behind-the-scenes stuff still works, but you can't see progress as it's happening.

3.) Implement full-auto mode with sugar-jhbuild, so that it can be integrated into the build process.

Monday, September 1, 2008

Screencast, 0.1 Release

I've managed to finally get the screencast and 0.1 release published. You can find it in the usual place, on the sugarbot Google Code site.

This screencast showcases a lot of the automation of sugar/sugarbot, with a small demonstration of how Python is used inside of sugarbot. There is also emphasis on catching errors when they occur, and how those errors are reported/displayed.

The example scripts provide a better demonstration of how the scripting works than the video could have, so I left most of the scripting details out (it is just Python anyways, so it's not very exciting).


Monday, August 18, 2008

Finalizing...

I am trying to get the final screencast properly edited and dubbed, and will be putting the 0.01 package online soon. It has been quite the day for me, as Murphy's Law would have it, everything decided to go more then slightly haywire when I decided to record video :-\

Wednesday, August 13, 2008

Combo boxes working, wrapping up

Got the combo-boxes working the way I want them to. I realized that convenience-handling for each and every Widget type is not something that is [1] perhaps not entirely necessary and [2] certainly not entirely necessary right this instant. With that in mind, I'll be wrapping up/documenting the code for an initial 0.1 release on Friday.

I'll be working on another screencast that will demonstrate integration with buildbot, automated launching of sugarbot and Sugar, as well as the new Python scripting abilities. Overall, I'm very pleased with where I am right now.

It's been a lot of fun developing for GSoC/the Python Org/One Laptop Per Child, and I'm sad to see the summer come to an end (less free time to work on it) in the next few weeks. Hopefully I'll be able to keep my motivation up to keep development going.

Once I have the GSoC-final screencast up, I plan on publishing it to all of the mailing lists. Thanks to Grig and Titus for providing me with guidance and advice throughout the summer, you guys are really great. Also, thanks to those of you on the mailing lists and IRC channels that also provided tips, insight, and advice that made those obscure API problems so much simpler.

Zach

Monday, August 11, 2008

ComboBox'es

Working on select capability of ComboBox and similar widgets tonight. It isn't a problem in itself, but trying to keep the code as flexible and clean as possible is making it into a problem.

Tuesday, August 5, 2008

Cleaning up logging functionality

Cleaning up a bit of the logging functionality on the RPC-server side of stuff. Most of it has to do with better correlation of individual clients with given status messages. A small side-effect of this is that pinpointing errors should be easier.


Old Output:

sbRpcServer : INFO     Listening on port 54321
sbRpcServer : INFO Kill: True Restart: True
sbRpcServer : INFO Added script sbpython_script.py [Activity Calculate]
sbRpcServer : INFO Serving script sbpython_script.py to client Zach
sbRpcServer : ERROR sugarbot client disconnected prematurely.
sbRpcServer : ERROR Reason: Execution failed: Traceback (most recent call last):
File "/home/zach/Activities/sugarbot.activity/sbexecutionengine.py", line 92, in executePy
sugarbot_main(self.widgets)
File "[string]", line 7, in sugarbot_main
AssertionError


New Output:

sbRpcServer : INFO     Listening on port 54321
sbRpcServer : INFO Kill: True Restart: True
sbRpcServer : INFO Added script sbpython_script.py [Activity Calculate]
Zach : INFO Starting sbpython_script.py
Zach : INFO Success (sbpython_script.py)
Zach : INFO Disconnected [1\1\1]
Zach : INFO Starting script sbpython_script.py
Zach : ERROR Execution failed:
Traceback (most recent call last):
File "/home/zach/Activities/sugarbot.activity/sbexecutionengine.py", line 92, in executePy
sugarbot_main(self.widgets)
File "Sugarbot Script: 'sbpython_script.py'", line 7, in sugarbot_main
AssertionError

Zach : INFO Disconnected [0\1\1]

Hurricane

Supposedly there's a decent-sized tropical storm/hurricane coming through right now, but it just looks like a bunch of regular old rain. Anyways, campus is shut down today, so I get some time to work on Sugarbot.

Next Tuesday I fly back out to the [Government Agency] to take my polygraph tests again.