CIXOS-FIA: Difference between revisions
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
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