CIXOS-FIA: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 48: Line 48:




== APORTES AL PROYECTO ==
== SUGARIZACION ==

El tutorial explica paso a paso como crear el [http://divieira.googlepages.com/HelloWorld-1.xo Paquete de la actividad Hola Mundo].

Se asume que ya ha [[:Category:Installing Sugar|instalado el entorno de desarrollo Azúcar]].

Crear la estructura de directorios del paquete:

mkdir HolaMundo.activity
mkdir HolaMundo.activity/activity

Escribir el archivo activity.info, para describir el paquete en el sub-directorio de la actividad (por ejemplo, HolaMundo.activity/activity/activity.info). Las especificaciones de los [[Activity Bundles|Paquetes de Actividad]] explican en detalle el significado de cada campo.

{{ Box File | activity.info | 2=<pre>
[Activity]
name = HolaMundo
service_name = com.ywwg.HelloWorldActivity
class = ActividadHolaMundo.ActividadHolaMundo
icon = actividad-holamundo
activity_version = 1
show_launcher = yes
</pre>
}}

Diseñe un icono para su actividad, de acuerdo con el [[Sugar_Icon_Format|formato del icono]] y colóquelo en el sub-directorio "activity". El nombre del archivo debe coincidir con el nombre especificado en el archivo .info (por ejemplo, actividad-holamundo.svg)

{{ Box File | actividad-holamundo.svg | 2=<pre>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY fill_color "#FFFFFF">
<!ENTITY stroke_color "#FF0000">
]>
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50">
<rect x="1" y="1" width="48" height="48" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2"/>
</svg>
</pre>
}}

Escribir el script setup.py en el directorio de nivel superior (por ejemplo, HolaMundo.activity/setup.py), que en la mayoría de los casos se verá asi:

{{ Box File | setup.py | 2=<pre>
#!/usr/bin/python
from sugar.activity import bundlebuilder
bundlebuilder.start()
</pre>
}}

Codifique su actividad. El nombre que ha especificado en el archivo .info como "class" es el nombre de la clase que ejecuta el código. Para el archivo anterior activity.info, especificamos un modulo de alto nivel ActividadHolaMundo.ActividadHolaMundo (por favor, tenga en cuenta que el uso de mayúsculas en los nombres de módulos en Python es un estilo pobre, siéntase libre de utilizar el nombre de una actividad con mas estilo de nombres estándar).

{{ Box File | ActividadHolaMundo.py | 2=<pre>
from sugar.activity import activity
import logging

import sys, os
import gtk

class ActividadHolaMundo(activity.Activity):
def hola(self, widget, data=None):
logging.info('Hola Mundo')

def __init__(self, handle):
print "ejecutando actividad init", handle
activity.Activity.__init__(self, handle)
print "ejecutando actividad"

self.set_title('Hola Mundo')

# Crea la caja de Herramientas.Que contiene la Barra de Herramientas de la
# Actividad, que es la barra que aparece en cada ventana del Azucar y contiene
# funcionalidades esenciales, como los botones 'Compartir con:' y 'Parar'.
toolbox = activity.ActivityToolbox(self)
self.set_toolbox(toolbox)
toolbox.show()

# Crea un nuevo boton con la etiqueta "Hola Mundo".
self.button = gtk.Button("Hola Mundo")
# Cuando el boton recibe la seNal de "clicked", llamara a la funcion hola()
# pasando a "None" como argumento. La funcion hola() es definida en
# lineas mas arriba.
self.button.connect("clicked", self.hola, None)
# Ajuste el boton para ser nuestro lienzo. El lienzo es la seccion principal
# de toda Ventana Azucar. Se llena toda el area debajo
# de la caja de herramientas.
self.set_canvas(self.button)
# El paso final es mostrar esta nueva creacion de widgets.
self.button.show()
print "AL FINAL DE LA CLASE"
</pre>
}}

Create a MANIFEST (e.g. HelloWorldActivity.activity/MANIFEST), containing the list of the files to include in the package. (Note: Be sure '''not''' to leave blank lines at the end of the file.)

HelloWorldActivity.py

Your directory structure should now look like this:
HelloWorldActivity.activity/
HelloWorldActivity.activity/setup.py
HelloWorldActivity.activity/activity
HelloWorldActivity.activity/activity/activity.info
HelloWorldActivity.activity/activity/activity-helloworld.svg
HelloWorldActivity.activity/HelloWorldActivity.py
HelloWorldActivity.activity/MANIFEST

Setup your bundle for development

./setup.py dev

(It appears this just creates a symlink in ~/Activities .)

== Running ==
If you now run sugar the activity icon should be visible on the frame. (You have to restart sugar to get it to pick up the change if you just installed it. Hit ctrl-alt-erase.)

You can also edit the code in your bundle directory directly. Note that the first time your Activity is launched, it leaves a process around even if you close the window, so you must kill the sugar-activity-factory to get it to reload when you click again.

== Distribution ==
Create a xo package to distribute your bundle. (An xo file is essentially a zip file built from the MANIFEST with some extra metadata, like a JAR file. It also has some localization ability, and in the future we expect to be able to sign these too.) The bundle name is automatically generated from the 'name' and 'activity_version' values found in the activity.info file, separated by a dash, with a .xo extension.

./setup.py dist

To install the xo on a laptop you can use the installer script.

sugar-install-bundle HelloWorld-1.xo

[[Category:Sugar]]
[[Category:HowTo]]
[[Category:Activities]]
[[Category:Developers]]











[[category:groups]]
[[category:groups]]

Revision as of 17:30, 6 February 2009

GoogleTrans-es -English -български -中文(中国大陆) -中文(臺灣) -hrvatski -čeština -dansk -Nederlands -suomi -français -Deutsch -Ελληνικά -हिन्दी -italiano -日本語 -한국어 -norsk -polski -português -română -русский -svenska

Cixosfia.jpg

CIXOS-FIA es un grupo de alumnos, docentes y egresados de la UNIVERSIDAD DE SAN MARTIN DE PORRES LIMA PERU cuyo interés es la investigación y desarrollo en temas relacionados con la promoción del Proyecto OLPC en Perú, la creación de una comunidad organizada de desarrolladores de actividades, diseñadores gráficos y voluntarios en general de la universidad, asimismo la difusión a través del desarrollo de talleres, conferencias y facilitando medios de comunicación como la lista de correo GMAIL y el portal (en desarrollo), todo el trabajo en la comunidad será destinado para apoyar en la educación de los niños, desarrollando actividades enfocadas al niño que ayudara a su formación educativa, nuestro principal objetivo es ayudar a los niños de todas partes del mundo.


MISION

Ser la comunidad universitaria mejor organizada a nivel Latinoamérica con un alto nivel de conocimiento en el manejo y desarrollo de actividades para XO y apoyar en la educación en Latinoamérica.


VISION

Difundir el Proyecto OLPC tanto dentro de nuestra casa de estudios USMP como fuera de ella tanto a nivel nacional como latinoamericano, brindando las facilidades del caso a los alumnos, docentes y voluntarios que se interesen de nuestro trabajo en pro de la educación de los niños provenientes de los sectores menos favorecidos.


VALORES

Consideramos como valores del grupo fomentar el espíritu de colaboración compartiendo conocimientos y brindando ayuda técnica de forma desinteresada a las comunidades en general.


INICIOS

 Gonzalo Chevarría escribe:
TE ADJUNTO EL DOCUMENTO DONDE A PARECE LA MISION Y LA VISION DE LA COMUNIDAD Y QUIEN LA 
CONFORMAN, YA VENIMOS TRABAJANDO EN EL PROYECTO, DONDE SE HAN HECHO GRUPOS DE PYTHON, 
SERVIDORES PARA LAS XO, GRUPO WEB, HARDWARE Y SOFTWARE DE LA XO, YA UNA COMUNIDAD QUE ESTA 
INVESTIGANDO A FONDO EL PROYECTO. ME GUSTARIA SABER QUE OTRAS PROPUESTAS HAY PARA LA 
COMUNIDAD POR PARTE TUYA, TODAVIA NO ESTAMOS EN EL WIKI EL CAPITULO DE LA UNIVERSIDAD, NI 
ENVIADO A LA LISTA, ME GUSTARIA SABER MUCHO TU OPINION, Y QUE OTRAS COSAS PODEMOS 
DESARROLLAR... LA COMUNIDAD SEGUIRA TRABAJANDO EN EL PROYECTO OLPC Y APORTAR MEJORAR EN LA 
EDUCACION DEL NIÑO YA QUE ESE ES NUESTRO PRINCIPAL OBJETIVO.


UBICACIÓN

Facultad de Ingenieria y Arquitectura de la Universidad de San Martin de Porres

Areas Involucradas: E-Business e InternetWorking

<googlemap version="0.9" lat="-12.071495" lon="-76.941757" zoom="18">-12.072214, -76.941413</googlemap>


SUGARIZACION

El tutorial explica paso a paso como crear el Paquete de la actividad Hola Mundo.

Se asume que ya ha instalado el entorno de desarrollo Azúcar.

Crear la estructura de directorios del paquete:

mkdir HolaMundo.activity
mkdir HolaMundo.activity/activity

Escribir el archivo activity.info, para describir el paquete en el sub-directorio de la actividad (por ejemplo, HolaMundo.activity/activity/activity.info). Las especificaciones de los Paquetes de Actividad explican en detalle el significado de cada campo.

 File: activity.info
 [Activity]
 name = HolaMundo
 service_name = com.ywwg.HelloWorldActivity
 class = ActividadHolaMundo.ActividadHolaMundo
 icon = actividad-holamundo
 activity_version = 1
 show_launcher = yes

Diseñe un icono para su actividad, de acuerdo con el formato del icono y colóquelo en el sub-directorio "activity". El nombre del archivo debe coincidir con el nombre especificado en el archivo .info (por ejemplo, actividad-holamundo.svg)

 File: actividad-holamundo.svg
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
        <!ENTITY fill_color "#FFFFFF">
        <!ENTITY stroke_color "#FF0000">
]>
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50">
<rect x="1" y="1" width="48" height="48" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2"/>
</svg>

Escribir el script setup.py en el directorio de nivel superior (por ejemplo, HolaMundo.activity/setup.py), que en la mayoría de los casos se verá asi:

 File: setup.py
 #!/usr/bin/python
 from sugar.activity import bundlebuilder
 bundlebuilder.start()

Codifique su actividad. El nombre que ha especificado en el archivo .info como "class" es el nombre de la clase que ejecuta el código. Para el archivo anterior activity.info, especificamos un modulo de alto nivel ActividadHolaMundo.ActividadHolaMundo (por favor, tenga en cuenta que el uso de mayúsculas en los nombres de módulos en Python es un estilo pobre, siéntase libre de utilizar el nombre de una actividad con mas estilo de nombres estándar).

 File: ActividadHolaMundo.py
from sugar.activity import activity
import logging

import sys, os
import gtk

class ActividadHolaMundo(activity.Activity):
    def hola(self, widget, data=None):
        logging.info('Hola Mundo')

    def __init__(self, handle):
        print "ejecutando actividad init", handle
        activity.Activity.__init__(self, handle)
        print "ejecutando actividad"

        self.set_title('Hola Mundo')

        # Crea la caja de Herramientas.Que contiene la Barra de Herramientas de la 
        # Actividad, que es la barra que aparece en cada ventana del Azucar y contiene
        # funcionalidades esenciales, como los botones 'Compartir con:' y 'Parar'.
        toolbox = activity.ActivityToolbox(self)
        self.set_toolbox(toolbox)
        toolbox.show()

        # Crea un nuevo boton con la etiqueta "Hola Mundo".
        self.button = gtk.Button("Hola Mundo")
    
        # Cuando el boton recibe la seNal de "clicked", llamara a la funcion hola()
        # pasando a "None" como argumento. La funcion hola() es definida en
        # lineas mas arriba.
        self.button.connect("clicked", self.hola, None)
    
        # Ajuste el boton para ser nuestro lienzo. El lienzo es la seccion principal 
        # de toda Ventana Azucar. Se llena toda el area debajo 
        # de la caja de herramientas.
        self.set_canvas(self.button)
    
        # El paso final es mostrar esta nueva creacion de widgets.
        self.button.show()
    
        print "AL FINAL DE LA CLASE"

Create a MANIFEST (e.g. HelloWorldActivity.activity/MANIFEST), containing the list of the files to include in the package. (Note: Be sure not to leave blank lines at the end of the file.)

HelloWorldActivity.py

Your directory structure should now look like this:

HelloWorldActivity.activity/
HelloWorldActivity.activity/setup.py
HelloWorldActivity.activity/activity
HelloWorldActivity.activity/activity/activity.info
HelloWorldActivity.activity/activity/activity-helloworld.svg
HelloWorldActivity.activity/HelloWorldActivity.py
HelloWorldActivity.activity/MANIFEST

Setup your bundle for development

./setup.py dev

(It appears this just creates a symlink in ~/Activities .)

Running

If you now run sugar the activity icon should be visible on the frame. (You have to restart sugar to get it to pick up the change if you just installed it. Hit ctrl-alt-erase.)

You can also edit the code in your bundle directory directly. Note that the first time your Activity is launched, it leaves a process around even if you close the window, so you must kill the sugar-activity-factory to get it to reload when you click again.

Distribution

Create a xo package to distribute your bundle. (An xo file is essentially a zip file built from the MANIFEST with some extra metadata, like a JAR file. It also has some localization ability, and in the future we expect to be able to sign these too.) The bundle name is automatically generated from the 'name' and 'activity_version' values found in the activity.info file, separated by a dash, with a .xo extension.

 ./setup.py dist

To install the xo on a laptop you can use the installer script.

 sugar-install-bundle HelloWorld-1.xo