Changes

3,584 bytes added ,  20:19, 27 November 2011
m
proper category
Line 53: Line 53:  
I have just started two new open-source projects at university:
 
I have just started two new open-source projects at university:
 
* Labsoftinfra (http://code.google.com/p/labsoftinfra/): an application for PDA to manage the classroom equipments and a web application to supervise the university stock. It has been developed for a course named Software Engineering Laboratory 2 and
 
* Labsoftinfra (http://code.google.com/p/labsoftinfra/): an application for PDA to manage the classroom equipments and a web application to supervise the university stock. It has been developed for a course named Software Engineering Laboratory 2 and
* FEBRACEV (http://github.com/nathaliaspatricio/febracev): my capstone project and it will be developed a Virtual Science Fair.
+
* FEBRACEV (http://github.com/nathaliaspatricio/febracev): my capstone project and it will be a Virtual Science Fair.
      Line 68: Line 68:  
1. '''What is the name of your project?'''
 
1. '''What is the name of your project?'''
   −
The name of my project is “ Programmable Brush for Oficina”
+
The name of my project is “ Programmable Brushes for Oficina”
    
----
 
----
Line 74: Line 74:  
2. '''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?'''
 
2. '''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?'''
   −
Oficina is one of the Paint Activities for Sugar. It has a lot of tools like brushes, eraser, forms and text. The objective of the current project is to develop a new tool for Oficina. This tool is a programmable brush with kids can write your own brushes.
+
Oficina is one of the Paint Activities for Sugar. It has a lot of tools like brushes, eraser, forms and text. The objective is refactoring the Oficina code and make a common base where tools can be plugged. The current available tools will use this base. With this, kids can put the tools that they want, including their own brushes.  
    
In Turtle Art Activity there already is a way to plug a python code to add new block's functions. The idea is add a similar feature to Oficina. Sugar has already a python editor called Pippy. Using this kids can developed or edit your own brush and import your custom code into Oficina using the Pippy button.
 
In Turtle Art Activity there already is a way to plug a python code to add new block's functions. The idea is add a similar feature to Oficina. Sugar has already a python editor called Pippy. Using this kids can developed or edit your own brush and import your custom code into Oficina using the Pippy button.
 +
 +
One example of a tool code (nowadays it is the current brush):
 +
 +
    def brush(self, widget, coords, last, size = 5, shape = 'circle'):
 +
        widget.desenha = False
 +
        if(shape == 'circle'):
 +
            widget.pixmap.draw_arc(widget.gc_brush, True, coords[0], coords[1], size, size, 0, 360*64)
 +
            if last:
 +
                widget.gc_brush.set_line_attributes(size, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_ROUND)
 +
                widget.pixmap.draw_line(widget.gc_brush,last[0]+size/2,last[1]+size/2,coords[0]+size/2,coords[1]+size/2)
 +
                widget.gc_brush.set_line_attributes(0, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_ROUND)
 +
        if(shape == 'square'):
 +
            widget.pixmap.draw_rectangle(widget.gc_brush, True, coords[0], coords[1], size, size)
 +
            if last:
 +
                points = [coords, last, (last[0]+size,last[1]+size), (coords[0]+size,coords[1]+size)]
 +
                widget.pixmap.draw_polygon(widget.gc_brush,True,points)
 +
                points = [(last[0]+size,last[1]), (coords[0]+size,coords[1]), (coords[0],coords[1]+size), (last[0],last[1]+size)]
 +
                widget.pixmap.draw_polygon(widget.gc_brush,True,points)
 +
        if last:
 +
            x = min(coords[0], last[0])
 +
            width = max(coords[0], last[0]) - x
 +
            y = min(coords[1], last[1])
 +
            height = max(coords[1], last[1]) - y
 +
            widget.queue_draw_area(x, y, width+size, height+size) # We add size to avoid drawing dotted lines
 +
        else:
 +
            widget.queue_draw()
 +
 +
 +
Other important functionality is that children can share their brushes since Sugar 0.84 already allows users to take any item in the Journal and send it to anyone else. There are already some available tools for default but kids can modify or delete this.
    
Oficina is developed in Python using PyGTK library and the bucket tool is implemented in C language. I will use these technologies in my project.
 
Oficina is developed in Python using PyGTK library and the bucket tool is implemented in C language. I will use these technologies in my project.
Line 89: Line 118:  
* Study the Oficina code and his architecture (remember some things because it has a lot of time since I worked with it)
 
* Study the Oficina code and his architecture (remember some things because it has a lot of time since I worked with it)
 
* Study a similar feature in the Turtle Art Activity
 
* Study a similar feature in the Turtle Art Activity
* Development of a simple brush
      
June 6 - July 7
 
June 6 - July 7
* Development of the programmable brush
+
* Development of the common base
    
July 8 - July 12
 
July 8 - July 12
 
* Preparation of the alpha release
 
* Preparation of the alpha release
 +
* Development of some example brushes for demonstration
    
July 13
 
July 13
Line 126: Line 155:     
1. '''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.'''
 
1. '''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.'''
 +
 +
My answer:
 +
 +
This project is important for Sugar Labs community since a Paint Activity like Oficina is one of the core activities in the Sugar and it has a good and improved activity of this type is necessary for the adoption by schools and kids. Before children can read words they learn another expression ways and the painting is one of the most important way. In my proposal the main idea is to turn Oficina a more flexible expression environment. This would allow greater freedom for children' expression since they could create their own brushes. Moreover, this idea has a interdisciplinary characteristic because children can work the artistic side and also learn how to programming. When I participated in deployment of XO here in Brazil we had a couple of discussions on what the children wanted and what we didn't have. I thought they needed more brushes and tools. Especially, the power to create them on our own, which is missing.
 +
 +
Manu Sheel Gupta (manu@laptop.org) - Oficina maintainer:
 +
 +
This project will help meet one of the most important goals of Sugar Labs and free software - "to make it simple for the user to extend activities". This is very important as free software communities build on top of each others' work to build learning eco-systems. Collaboration, and building of such an eco-system in absolutely essential for the sustainability of the project and the communities. I believe that giving the power to the user to develop brushes of their choice is what a paint activity is supposed to do. And, this feature will help shape this idea, and put it in the right context, which has been missing since day one of any paint project. I wish to see this proposal getting selected.
    
----
 
----
Line 173: Line 210:  
The paper calls "Testing the OLPC Drawing Activity: an usability report" by Alexandre Antonino Gonçalves Martinazzo, Nathalia Sautchuk Patrício, Leandro Coletto Biazon, Irene Karaguilla Ficheman and Roseli de Deus Lopes. It is available in the link: http://www2.computer.org/portal/web/csdl/doi/10.1109/ICALT.2008.200.
 
The paper calls "Testing the OLPC Drawing Activity: an usability report" by Alexandre Antonino Gonçalves Martinazzo, Nathalia Sautchuk Patrício, Leandro Coletto Biazon, Irene Karaguilla Ficheman and Roseli de Deus Lopes. It is available in the link: http://www2.computer.org/portal/web/csdl/doi/10.1109/ICALT.2008.200.
   −
[[Category:2009_GSoC_applications]]
+
[[Category:GSoC]]