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.
Thursday, May 29, 2008
Wednesday, May 28, 2008
Monday, May 26, 2008
Wednesday, May 21, 2008
Tuesday, May 20, 2008
- Figured out how to get another Activity's code running under my activity, via runtime inheritance.
- Successfully identified button-presses in Calculator.activity. Example output:
Monday, May 19, 2008
Sunday, May 18, 2008
Saturday, May 17, 2008
Friday, May 16, 2008
Thursday, May 15, 2008
So, dogtail is huge. Really, really huge. So huge, in fact, that I'm a little bit opposed to trying to wrap my mind around it, especially since it has a bit of a documentation problem. As such, I'm going to stick with playing around with guitest until I get a response from the GUITAR guys.
Back to guitest, it would appear that a vast amount of functionality stems from this little nugget. It looks like the way guitest works is by hooking pretty much any GTK call you could ever want to make.
By the way, if anyone knows of a way for me to copy code out of TextMate that retains the syntax coloring, please let me know (extra kudos if I get it in HTML format).
Thanks for your interest in GUITAR. Currently, the University of Maryland's IP policy is changing, and we're still waiting to find out under what conditions we can provide the source code. I don't know when we'll find out, but I'll try to remember to notify you when we do. I encourage you to keep checking the project page periodically for updates. Sorry for the inconvenience.
After spending a little bit with guitest, I have to say that I am a little bit... underwhelmed at how it's implemented. Being that I haven't really used software that does GUI automation, I wasn't sure what to expect... but given the test examples that were included (along with the complete lack of documentation), I have higher hopes for dogtail and GUITAR.
I will have to take a close look at dogtail's procedural API. It looks like it resembles what I (and I think Titus, as well) have in mind for controlling sugarbot.
> Update: Looks like I spoke too soon. While their procedural API looks like something I'd like to look at a bit more closely, their documentation is sorely lacking.
> Update 2: eMailed the creator of guitest. I didn't realize that it was 3 years out since it was actively maintained... but hopefully I'll get a response. It appears that he keeps an updated blog (gintasm.blogspot.com), so I'm fairly confident I will.
> Really Not Related: Mail.app's Mailbox>Rebuild command is amazing, if not entirely apparent. I had some duplicated emails that refused to be deleted.
Wednesday, May 14, 2008
Just finished up 'calculator.py', which is available on the downloads page. Took me a total of about 1 or 2 working hours, most of which was spent looking up API calls for GTK, and figuring out a little bit of calculator logic (particularly, how to handle repeated presses to '=' gracefully).
(Please understand that calculator.py is messy, and this is my first attempt at a Python app that wasn't copied-and-pasted or 20 lines long, and my first real GTK app. Kudos to pygtk.org for having a decent tutorial section.)
Setting it up to work with peekaboo is trivial, and consists of adding a few lines in main(). I might do that, but leave it commented out if somebody wants to play with it for a few seconds, and doesn't have figleaf installed, and peekaboo handy.
Step two is going to be to automate a few keypresses using guitest. I might play around with dogtail as well, although it's been pretty well established that the method used by dogtail would prove hard to adapt to Sugar, due to its reliance on accessibility information. I still want to take a peek, perhaps to see how they structured the API? Might be worth it. Still no info from the GUITAR guys at SF.net.
Ecto insists on screwing with my paragraph spacing. FFS
Tuesday, May 13, 2008
Was playing around with basic PyGTK and peekaboo today. Nifty little utility, but I can't get it to auto-refresh for the life of me. Dunno what's up with that. The fact that you can do what (I assume) figleaf/peekaboo does is amazing. Makes me want to take it apart to see how it works. But I've got other stuff to do in the meantime.
Being that I've devoured enough of Dive Into Python (the first 60 pages or so?), I think I'm going to take up a prior recommendation and try to get a concoction of a self-made calculator app and peekaboo running tomorrow. I wish that gtk.Widget was documented properly. All of gtk.Widget's function.__doc__ strings are the same crud. All that potential, and it doesn't get used. Oh well.
Grig sent me a link to a blog/notebook entry by Ivan Krstić, which talks in a no-bullshit manner about OLPC XO laptops' potential use of Windows as an available operating system. I share his view on the topic, which is, paraphrased: "BFD. The OS is not important. What's important is kids learning."
On a side note, I find it interesting that there is another individual that shares my interest in "breaking computers" that also enjoys "making computers harder to break even more" that also likes road biking. I should like to meet Ivan sometime, perhaps go for a ride.
Monday, May 12, 2008
And on another note, I've got SVN working with TextMate.
All this reading has made me realize how badly I need my glasses. I'm soooo glad I'm getting contacts tomorrow. And the "Mapping Lists" feature of Python is voodoo magic. Why does this not exist in C++? (And how did I go for so long without it?
>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]
[2, 18, 16, 8]
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li]
[2, 18, 16, 8]
So I've got
li = [elem*2 for elem in li]versus
for(int i=0; i< li.size(); i++) li[i]*=2;
- Automation, GO!
- Simple Button Click
- Health Testing
- Being too cautious
- Scheduling Bloodwork
- Enumerating Widgets
- Which came first, the snake or the egg?
- Migrating to an Activity
- What is our scope?
- Workin' It Out
- It's hard to overstate my satisfaction
- More kiwi.ui.test
- Dissecting guitest
- GUITAR will have to wait
- Working calculator.py
- Playing with peekaboo
- Contacts and Krstić
- How to Install VMware Tools on Ubuntu Hardy 8.04 u...
- First Post
- ▼ May (23)