Summer of Code/2014/Etoys Touch UI

From Sugar Labs
Jump to navigation Jump to search

About you

  • What is your name? Gabriel Perez
  • What is your email address?
  • What is your Sugar Labs wiki username? Gabriel p
  • What is your IRC nickname on GabrielP
  • What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.) Spanish
  • Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.) I am located in Quilmes, Buenos Aires, Argentina and tend to work from 13:00 to 23:00
  • Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer? I have not participated in open-source projects before but I’m interested in doing so this summer because I’m keen on computer science and I like the idea of learning while contributing to both end users and developers.

About your project

  • What is the name of your project? Etoys touch UI
  • Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?
    • I am implementing gesture recognition in Etoys, which is an educational tool and authoring system aimed at children. What will be implemented is the recognition of four different ‘gestures’: tapping, dragging, pinching and rotating. To achieve this, I will adapt Etoys virtual machine for Android to enable multitouch events. This will require the incorporation of new event handlers into Morphic, a framework for GUI-building.
    • I am making it for the users of the following model of Sugar devices, who need it because this model will be capable of using multitouch technology. Including gesture recognition into Etoys will facilitate working with the software in the aforementioned.
    • I will use mostly the Smalltalk programming language, though I might need to use Slang and Java (this will be evaluated during the first week of the project). I will also conduct tests on physical devices capable of handling multiple touch events as a part of the debugging process.
  • What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.
Week Assigned task
May 19-23 Study what has already been done and define what technologies will be necessary to complete the project. Explore and learn about this technologies.
May 26-30 Define how multi-touch emulation will be implemented and start writing the implementation.
June 2-6 Finish implementing emulation and start working on gesture recognition and interaction with Android.
June 9-13 Work with gesture recognition and start implementing reactions to gestures.
June 16-20, 23-27 Work with Morphic: gestures have an effect.
June 30-July 3, July 7-11, 14-18, 21-25, July 28-August 1, August 4-8 Testing and debugging.
August 11-15, 18-22 Writing documentation
  • Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. I believe myself capable of carrying on this project because I have previously worked with Smalltalk and Python: I have read and worked along with books such as Learn Python the Hard Way (Zed A. Shaw) and Programming with Smalltalk (Diego Gómez Deck). I have also worked on personal projects using what I learnt through reading and asking questions on online forums. I understand fundamental functional and OO concepts, which ease the task of learning Java and Slang syntax. I have also worked with Etoys as a Smalltalk VM, so most of the things I will be tinkering with are familiar to me.

You and the community

  • If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.
    • Gabriel: The completion of this project will be, in my opinion, extremely beneficial for the community since Etoys, currently one of Sugar’s main activities, will be closer to a ‘ready to use’ state on the newer devices. Also, the presence of Etoys in this kind of technology is only adequate considering the current tendency to use tablets and other consumer products of the kind for educational experiences, and would benefit multiple institutions. Should the project succeed, students will be able to make use of the application for improving their computer science related skills, which matches Sugar Labs vision of providing ‘every child with equal opportunity for a quality education’.
    • Kamaljeet Kaur: Touch-screen, technology which is increasingly becoming the natural choice for interfacing for users these days, will have a huge impact on community's UX. As more users are using touch-screen technologies and are already familiar with it, they will find it easy to learn more with sugar on their touch devices. Most importantly being the students who are able to use touch screens easily will need lesser effort to use but can concentrate more on learning. If this project is completed, Sugar can target even more number of users and devices with an improved touch experience.
  • What will you do if you get stuck on your project and your mentor isn't around? I will check online forums, ask questions over the IRC, mailing lists and ask other knowledgeable people.
  • How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project? Through online forums, mailing lists, IRC and other suitable channels.


  • We want to make sure that you can set up a development environment before the summer starts. Please do one of the following:
    • Send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "logout".
Glppscreen 1.png
    • Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on, and ask for help.
  • Describe a great learning experience you had as a child. When I was eleven years old, I took part on a side project my school offered related to science in general. During a semester I took multiple courses related to that year’s topic, which was the functioning of the human liver. This allowed me to meet with other people who shared my interest for the sciences in general and to experience a way of learning which greatly differed from the one that was generally encouraged in my classroom. The final project involved modelling the functioning of the liver using laboratory equipment and is one of the memories related to learning I hold dearest.
  • Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?