ANEXO PRÁCTICO XO 1.

5 HS
Anexo Práctico para la Guía de Producción XO 1.5 HS - Versión: 1.0
Fernando Sansberro

Contenido
Capítulo 1 - Introducción................................................................................................... 4 1.1 Sobre la Guía ............................................................................................................. 4 1.2 Público Objetivo ......................................................................................................... 4 1.3 Contenido de la Guía ................................................................................................. 5 1.4 Sobre el Autor............................................................................................................. 5 Capítulo 2 - La Computadora XO 1.5 HS .......................................................................... 6 2.1 OLPC y la Computadora XO 1.5 ................................................................................ 6 2.2 Hardware .................................................................................................................... 6 2.2.1 La Computadora XO-1.5 ...................................................................................... 7 2.2.2 Display ................................................................................................................. 7 2.2.3 Audio .................................................................................................................... 8 2.2.4 Cámara ................................................................................................................ 8 2.2.5 Red ...................................................................................................................... 8 2.2.6 Dispositivos de Entrada ....................................................................................... 9
2.2.6.1 Teclado .................................................................................................................... 9 2.2.6.2 Gamepad................................................................................................................ 11 2.2.6.3 Touchpad ............................................................................................................... 11 2.2.6.4 Otras Entradas ....................................................................................................... 11

2.3 Software ................................................................................................................... 11 2.3.1 Sistema Operativo ............................................................................................. 12 2.3.2 Interfaz Gráfica .................................................................................................. 12 2.3.2.1 Interfaz Gráfica Sugar..................................................................................... 13 2.3.2.2 Interfaz Gráfica GNOME ................................................................................. 14 2.3.3 El Navegador y las Aplicaciones Web................................................................ 14 Capítulo 3 - Desarrollo de Actividades y Juegos .......................................................... 16 3.1 Actividades, Aplicaciones y Aplicaciones Web ......................................................... 16 3.2 Lenguajes de Programación .................................................................................... 17 _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 2 de 23 Centro Ceibal – Uruguay

3.3 Desarrollo en Python ................................................................................................ 17 3.4 Desarrollo en C++ .................................................................................................... 18 3.5 Entornos de Desarrollos ........................................................................................... 18 3.6 Usabilidad y Testing ................................................................................................. 19 3.6.1 Audiencia............................................................................................................... 19 3.6.2 Fundamentos de Diseño ....................................................................................... 19 3.6.3 Testing ............................................................................................................... 19 3.6.4 Instalación de Actividades y Aplicaciones .......................................................... 20 3.6.5 Desbloqueo y Flasheo de XO 1.5 ...................................................................... 20 3.6.6 Distribución de Actividades ................................................................................ 20 Referencias ...................................................................................................................... 21

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 3 de 23 Centro Ceibal – Uruguay

Capítulo 1 - Introducción

1.1 Sobre la Guía La presente guía es orientada a los desarrolladores de cualquier clase de contenidos para las computadoras XO 1.5, pero poniendo énfasis en el desarrollo de actividades educativas y videojuegos. La guía presenta las características particulares de las computadoras XO 1.5, y funciona como complemento al Anexo Práctico para la Guía de Producción que fue escrita para la computadora XO 1.0. Es sumamente importante leer el mencionado trabajo previo, dado que en él se muestran las alternativas de desarrollo existentes, analizando pros y contras de cada una, y enumera un conjunto de técnicas y prácticas requeridas para el desarrollo de un producto que corra adecuadamente en estas computadoras. En la presente guía, se enumeran las características de la computadora XO 1.5 y se muestran las diferencias con las computadoras XO 1.0, pero se asume que el lector está familiarizado con el trabajo previo mencionado, dado que aquí se hablan de las diferencias pero no se repiten los conceptos explicados en la guía de XO 1.0. Es recomendable leer primero la guía de XO 1.0, sino obligatorio, más aun teniendo en cuenta que las dos computadoras no son muy diferentes en cuanto a sus características. Durante el desarrollo de esta guía se trató de no profundizar demasiado en cada tema para que éste trabajo tenga una función de guía introductoria en cada tema. De esta forma se hace posible la consulta rápida de cada tema y en cada uno se listan referencias bibliográficas o sitios de Internet donde se pueden profundizar los conocimientos. El objetivo de esta guía es que sirva como documento de consulta para las características de la computadora XO 1.5, mientras que la guía previa sirve como punto de partida para el desarrollo de contenidos para la plataforma XO en general. Nuevamente, es recomendable sino obligatorio leer la guía previa dado que en la presente no se repiten conceptos.

1.2 Público Objetivo El público objetivo de esta guía son por un lado los programadores que teniendo conocimientos de programación, ven a la computadora XO como otra plataforma en la cual desarrollar y son los que van a trabajar durante el desarrollo, y por otro lado los gerentes, diseñadores, etc. de empresas de informática y/o audiovisuales que necesiten conocer sobre las características del desarrollo para la plataforma XO de forma tal de _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 4 de 23 Centro Ceibal – Uruguay

poder tomar decisiones con más información a su alcance.

1.3 Contenido de la Guía La guía se divide en dos capítulos principales. El capítulo dos describe el hardware de la computadora XO 1.5 y el software instalado en ella, así como los dos entornos que trae: Sugar y GNOME. El capítulo tres explica que lenguajes de programación conviene utilizar en cada caso. Los siguientes capítulos de la guía de producción de XO 1.0 son totalmente vigentes para la computadora XO 1.5 y no se encuentran en esta guía con el fin de no repetir conceptos y que quede más fácil su consulta. Es imprescindible su lectura: Capítulo 2 – Proceso de Producción, Capítulo 5 - Limitaciones de la Computadora XO y Optimizaciones y Capítulo 6 – Normas de Usabilidad y Testing.

1.4 Sobre el Autor Fernando Sansberro es Director de Batovi Games Studio (www.batovi.com), un estudio de desarrollo de videojuegos ubicado en Montevideo, Uruguay, que desarrolla juegos para diferentes plataformas como celulares, web y advergaming, juegos casuales para PC, Mac y Linux. Batovi Games ha desarrollado juegos para portales y publishers como AOL, Cartoon Network, Nickelodeon, Big Fish Games, GlobalFun, etc. Fernando ha trabajado también como docente enseñando programación de videojuegos web en Flash y programación de videojuegos Java para celulares en Universidad ORT Uruguay. Muchos de los conceptos volcados en esta guía se recogen de las experiencias adquiridas durante el desarrollo de juegos que Batovi Games Studio ha realizado para la plataforma XO, entre los cuales se encuentran Super Vampire Ninja Zero, Vascolet: La Máquina del Tiempo, Xa contra los Cuatreros Galácticos, Garra Fútbol, Vascolet 2: La Fórmula Secreta, Ajedrez y Leyendas , etc.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 5 de 23 Centro Ceibal – Uruguay

Capítulo 2 - La Computadora XO 1.5 HS
2.1 OLPC y la Computadora XO 1.5 La computadora XO 1.5 HS (High School) es una de las laptops distribuida en el Plan Ceibal en Uruguay [1] para la educación media (liceos). La otra computadora distribuida en liceos es la Classmate Magallanes de JP SA Couto (existe otra guía de producción similar a ésta para las computadoras Magallanes). La computadora XO 1.5 es diseñada por OLPC (One Laptop Per Child) [2] y a simple vista es igual a la computadora XO 1.0, tiene el mismo tamaño, pantalla y antenas, con la diferencia que es azul y que tiene un teclado de plástico. El teclado es una de las principales diferencias, para hacer la computadora más fácil de usar por los estudiantes de educación media, el teclado tiene teclas más grandes y es de plástico, siendo más estándar en lugar de la membrana de goma resistente al agua como tiene la computadora XO 1.0. Comparando con las computadoras actuales en el mercado, la computadora XO 1.5 (al igual que la XO 1.0) tiene una capacidad de procesamiento y almacenamiento limitada. Si comparamos la performance de XO 1.0 y XO 1.5, esta última es levemente mayor, pero no tanto como para que cambie la evaluación realizada en la guía de XO 1.0 sobre el uso de lenguajes o herramientas de desarrollo. Al igual que se explica en la guía de producción de XO 1.0, durante el desarrollo de una actividad o videojuego, no debe nunca asumirse que las cosas son de la misma manera o funcionan como en otros entornos. La única forma de asegurarse que algo funciona correctamente es probando en la misma computadora XO 1.5.

2.2 Hardware Las especificaciones completas del hardware de la computadora XO-1.5 en [5]. A continuación se describe el hardware que es relevante para el desarrollo de actividades. En este documento se puede ver que muchas de las consideraciones de diseño utilizadas en la computadora XO 1.0 también permanecen en la XO 1.5, aunque esta última apunta a la educación media. En [23] se pueden ver las especificaciones de las computadoras actuales y tener una idea de lo que se podría venir en futuras versiones de las computadoras.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 6 de 23 Centro Ceibal – Uruguay

2.2.1 La Computadora XO-1.5 Las características más relevantes de la computadora XO-1.5 son las siguientes: − Procesador: Via C7-M (1 GHz.) ULV CPU. − Memoria: 1 Gb. DDR2 SDRAM, corriendo a 400 MHz. − Almacenamiento: 8 Gb. de memoria NAND flash on board. La computadora no cuenta con disco duro ni con partes móviles para disminuir el riesgo de roturas. − Display: Pantalla de cristal líquido (TFT-LCD) de 7.5 pulgadas en diagonal (19.05 cm.) con modo dual: modo color (transmissive, full-color mode) y modo blanco y negro de muy bajo consumo (reflective, high-resolution mode) que puede usarse bajo la luz del sol. Resolución: 1200 x 900 (200 dpi). Tamaño: 15,2 cm. x 11,4 cm.; 6 x 4,5 pulgadas. Soporta una resolución de color de aproximadamente 6 bits por color (262k de colores).La pantalla es la misma que la XO 1.0 [3]. − Audio: Subsistema de audio HD. Más adelante se mencionan particularidades en las cuales se diferencia de la computadora XO 1.0, en relación a lo que hay que tener en cuenta cuando se desarrolla una actividad para lograr una performance adecuada.

2.2.2 Display El display de la XO 1.0 es igual al de la XO 1.5 [3]. Al igual que en la XO 1.0, el display tiene una resolución de 1200 x 900 (200 dpi) y la computadora automáticamente maneja el display para que se puede ver a la luz del sol. El display continúa siendo el punto más crítico para la performance de las actividades. Se recomienda leer la guía de XO 1.0, dado que cada punto (display, audio, etc.) se explica en profundidad y relacionado a la performance. En esta guía solamente se explican las diferencias con la XO 1.0. El funcionamiento del display se puede profundizar en [5]. Como se explicaba en la guía de XO 1.0, la computadora XO 1.5 no cuenta con placa aceleradora de video y la única resolución que puede setearse por programación es 1200x900 y funciona a 51 Mhz. Sigue funcionando el sistema de overlays al igual que lo hacía en XO 1.0. Las especificaciones de hardware [5] mencionan un GPU 3D integrado, pero las pruebas realizadas no revelan cambios significativos de performance con respecto a la XO 1.0. Se pueden ver más detalles sobre las características y profundizar en el funcionamiento del display en [5]. En esta referencia se brinda una detallada explicación del _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 7 de 23 Centro Ceibal – Uruguay

funcionamiento del display en lo que se refiere a la luz de backlight y a la luz reflejada y cómo funcionan en conjunto de acuerdo a las condiciones de luminosidad del ambiente.

2.2.3 Audio La computadora XO cuenta con audio estéreo, con dos parlantes y micrófono interno y entrada para auriculares o parlantes externos y para micrófono. La frecuencia de los parlantes internos va aproximadamente desde 480 Hz. a 40 kHz. Las características de audio de las computadoras XO 1.0 y XO 1.5 desde el punto de vista de desarrollo son iguales. Incluso los documentos de especificaciones de hardware, [4] y [5], dicen lo mismo. La única diferencia es que el sistema de audio está basado en el estándar HD Audio [24], mientras que la XO 1.0 está basado en AC'97 [14]. Hay que tener en cuenta en el desarrollo, que los sonidos y música con graves producen vibraciones en el parlante externo de la computadora que los hacen molestos. Hay que probar en la computadora el audio a utilizar.

2.2.4 Cámara La computadora tiene una cámara integrada (Omnivision OV7670) con una resolución de 640x480 pixels y puede funcionar hasta 30 FPS (frames por segundo). En [6] se pueden ver las especificaciones de la cámara. La Cámara es la misma que la computadora XO 1.0.

2.2.5 Red El chip controlador de red inalámbrica es un Marvell Libertas 88W8686 [25]. La interfaz de red inalámbrica utilizada por la XO es una WiFi convencional 802.11 b/g (2.4 Ghz.). La computadora posee antenas dobles coaxiales ajustables y giratorias. La única diferencia con la computadora XO 1.0 es el modelo del chip, pero las funcionalidades son las mismas. La nueva imagen (F11) incorpora la funcionalidad de redes ad hoc, que permite conectarse con otros usuarios sin depender de una infraestructura de red inalámbrica. Los niños pueden trabajar, jugar y aprender en colaboración, sin requerir de un punto de acceso inalámbrico. En la guía de producción de XO 1.0 se explica el funcionamiento de la red ad-hoc y la red malla. Esta última ya no se utiliza más.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 8 de 23 Centro Ceibal – Uruguay

2.2.6 Dispositivos de Entrada Los dispositivos de entrada de la computadora XO 1.5 son el teclado, el touchpad y los cuatro botones de dirección a la derecha de la pantalla (gamepad) junto con los cuatro botones de acción (game keys) a la izquierda de la pantalla, un botón para rotar el display y el botón de apagado y encendido. Los teclados de las computadoras XO 1.0 y XO 1.5 son diferentes y esto constituye una de las principales diferencias a tener en cuenta a la hora de desarrollar contenido para ambas máquinas. 2.2.6.1 Teclado El teclado de la computadora XO 1.5 es de plástico y consta de 77 teclas. El mismo ha cambiado porque es más apto para estudiantes de educación media, para dedos más grandes y ahora es más fácil la escritura.

Fig. 1: Imagen del Teclado de XO 1.5. A diferencia de la XO 1.0, el teclado de la computadora XO 1.5 parece más resistente, por lo cual ya no habrían restricciones en cuanto al uso de las mismas (por ejemplo para usar una tecla de disparar en videojuegos). Si se va a desarrollar contenido para ambas máquinas a la vez, hay que tener en cuenta las diferencias en la posición de determinadas teclas. La siguiente figura muestra el teclado de la computadora XO 1.0

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 9 de 23 Centro Ceibal – Uruguay

Fig. 2: Imagen del Teclado de XO 1.0. Las diferencia principal es que las flechas de dirección en la XO 1.5 están en línea (esto es un factor de suma relevancia para los videojuegos o para mover algo utilizando las flechas). Se recomienda utilizar además de las flechas, para mover objetos, las teclas: [I] = Arriba, [J] = Izquierda, [K] = Abajo y [L] = Derecha.

Fig. 3: Teclas de Dirección de XO 1.5 en línea. Otras teclas importantes como [Enter] o [Espacio] son más pequeñas en la XO 1.5. Se deben tener en cuenta estas diferencias a la hora de desarrollar actividades para ambas computadoras en forma simultánea.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 10 de 23 Centro Ceibal – Uruguay

2.2.6.2 Gamepad Al igual que la XO 1.0, la computadora XO 1.5 puede girar el display y cerrarse para operarse en el modo denominado eBook. En este modo solamente quedan disponible los botones direccionales y los de acciones de juego que se encuentran a cada lado de la pantalla (de esta forma el teclado y el touchpad no se pueden acceder). De esta manera la computadora puede utilizare más cómodamente para leer libros o jugar como si se tratara de una consola de videojuegos portátil. En la parte izquierda de la pantalla se encuentran las teclas direccionales y en la parte derecha de la pantalla las teclas de acción, las cuales se identifican con iconos distintivos (cuadrado, círculo, check y equis). El botón de rotación no está funcionando con la imagen utilizada al realizar esta guía. Es de esperar que continúe funcionando como en la XO 1.0. 2.2.6.3 Touchpad La computadora XO 1.5 tiene el mismo touchpad que la XO 1.0, usado para mover el puntero del mouse, junto con dos botones para click derecho e izquierdo. El touchpad tiene una resolución de 1000 dpi y un área activa de 6.0 cm. por 4.4 cm.

2.2.6.4 Otras Entradas La computadora tiene tres entradas para dispositivos USB 2.0 un slot SD. El micrófono incluye un modo de sensor de entrada, en el cual los niños pueden enchufar sensores que pueden convertir la máquina, por ejemplo, en termómetros u osciloscopios.

2.3 Software En esta sección se describe el software instalado en las computadoras XO 1.5 que es relevante para el desarrollo de actividades. Si nunca se ha manejado la computadora XO 1.5, se recomienda leer el manual básico de uso de la XO 1.5 [26]. A diferencia de la XO 1.0 que solo tiene Sugar como entorno gráfico, la computadora XO 1.5 cuenta con dos entornos gráficos: Sugar y GNOME [32] y se puede cambiar entre uno y otro cuando se desee.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 11 de 23 Centro Ceibal – Uruguay

2.3.1 Sistema Operativo La computadora XO 1.5 que distribuye Ceibal tiene instalado Fedora, una distribución del sistema operativo Linux (Fedora 11, Kernel 2.6.31). Al igual que las computadoras XO 1.0, las XO 1.5 no tienen los permisos de usuario administrador (root). Hay que tener en cuenta esta limitante si la actividad desarrollada requiere la instalación de librerías que no estén instaladas la computadora. La imagen de la computadora XO 1.5 es basada en Dextrose [27] con los entornos gráficos Sugar y GNOME. La imagen está basada en Fedora 11 y Sugar 0.88, con funcionalidades desarrolladas por Activity Central [28], Paraguay Educa [29], Plan Ceibal [1] y Sugar Labs [30].

2.3.2 Interfaz Gráfica La computadora XO 1.5 tiene dos entornos gráficos: Sugar y GNOME. El usuario puede cambiar entre uno y otro en cualquier momento que lo desee (se reinicia la computadora). El entorno Sugar es el mismo que tienen las computadoras XO 1.0.

Fig. 4: Imagen del Entorno Sugar. El entorno gráfico GNOME es un sistema con ventanas, más parecido a los entornos de escritorio utilizados en otras plataformas (Windows, Mac, etc.). GNOME es más adecuado para los estudiantes de la enseñanza media.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 12 de 23 Centro Ceibal – Uruguay

Fig. 5: Imagen del Entorno GNOME.

Fig. 6: Cambio entre Sugar y GNOME.

2.3.2.1 Interfaz Gráfica Sugar La interfaz gráfica Sugar es la misma que tienen las computadoras XO 1.0 y adhiere a los lineamientos indicados en el documento Human Interface Guidelines [7] de Sugar Labs. En la guía de producción para la computadora XO 1.0 se puede leer sobre el desarrollo para el entorno Sugar, en particular se sugiere estar familiarizado con las razones filosóficas detrás del diseño de la interfaz gráfica Sugar (colaboración, la metáfora de objeto en lugar de archivo, la metáfora del diario (journal) en lugar de sistema de archivos, etc.) y con los principios de usabilidad de Sugar [7].

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 13 de 23 Centro Ceibal – Uruguay

Los principales componentes de Sugar son las Actividades, el Diario (Journal), la actividad Navegar y la red ad-hoc (que sustituyó a la red mesh). En la guía de producción de XO 1.0 se explican estos componentes principales de Sugar y como la parte de Sugar es la misma que en XO 1.0 se recomienda al lector referirse a dicha guía.

2.3.2.2 Interfaz Gráfica GNOME GNOME (GNU Network Object Model Environment) [32] es uno de los entornos gráficos utilizados en distribuciones Linux (por ejemplo en Ubuntu). La imagen de XO 1.5 contiene en GNOME varias aplicaciones, entre las cuales se encuentran: Firefox (Navegador Web). Manejador de Archivos. Gedit (Editor de Texto). Open Office. Audacity (Audio). Inkscape (Gráficos Vectoriales).

Hay que tener en cuenta que el sistema operativo es el mismo, por lo cual los archivos se pueden ver en cualquiera de los dos entornos. Esto podría ser interesante para desarrollar actividades para Sugar en la misma computadora XO, utilizando el manejador de archivos de GNOME que es más accesible que el de Sugar.

2.3.3 El Navegador y las Aplicaciones Web El navegador de la computadora XO 1.5 en Sugar es la actividad Navegar (Browse), la cual utiliza el motor Gecko y el lenguaje de programación Javascript [36], al igual que lo hace el navegador Firefox en el entorno GNOME. La actividad Navegar [22] es bastante más simple que Firefox [31] y la restricción más importante es que no soporta todos los complementos (plugins o add-ons) que soporta Firefox. En particular, el navegador Firefox es más completo en cuanto a las capacidades que el navegador que hay en Sugar (Actividad Navegar). De todas formas al hacer una aplicación web hay que probarla en los dos entornos. Al igual que en XO 1.0, se utiliza el navegador para descargar actividades o aplicaciones e instalarlas en la computadora. En Sugar, al acceder a un archivo .xo, éste se descarga instala en el entorno automáticamente. En el entorno GNOME, al día de escribir esta guía no había solución para un mecanismo de instalación de aplicaciones mediante paquetes. A diferencia de Sugar, que cuando se _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 14 de 23 Centro Ceibal – Uruguay

accede a un archivo .xo, éste se descomprime, se instala y se crea el ícono en el escritorio, los programas en GNOME se descargarán y se podrán ejecutar desde la terminal por ejemplo, pero no estarán disponibles desde el escritorio de GNOME. Cuando esto sea solucionado se anexará un apéndice a esta guía. El navegador Firefox de la computadora XO 1.5 corre los programas Flash con un rendimiento inaceptable para videojuegos o actividades que usen gráficos en forma intensiva. Si bien la performance es levemente mayor que en la XO 1.0, no es tan significativo el aumento, por lo cual se recomienda no desarrollar en Flash, a no ser que se traten de actividades muy simples y con pocas animaciones. De todas formas la regla siempre es probar en la computadora para ver si se logra la performance necesaria según el caso. La actividad Navegar en Sugar escalaba (en imágenes anteriores) las páginas aproximadamente un 40% para que se vean a un tamaño legible (no usaba la resolución 1200x900). La última imagen probada no escala, utilizando la resolución de 1200x900, razón por la cual los desarrollos Flash y Web pensados para una resolución de 800x600 o menos, se ven con textos diminutos. Hay que tener en cuenta este aspecto porque esto puede volver a cambiar en el futuro y si bien se recomendaba en la guía anterior desarrollar para el tamaño 800x600, hoy hay que desarrollar para el tamaño 1200x900 (y tener en cuenta que esto puede volver a cambiar). Cabe notar también que Firefox en la computadora XO 1.5 deja muy poco espacio para el área de contenido (casi la mitad de la pantalla).

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 15 de 23 Centro Ceibal – Uruguay

Capítulo 3 - Desarrollo de Actividades y Juegos
En este capítulo se mencionan los lenguajes que se pueden utilizar para el desarrollo para la computadora XO 1.5. Esto tiene dos partes, el desarrollo para el entorno Sugar y el desarrollo para el entorno GNOME. En la guía de producción para la computadora XO 1.0 se describían los pros y contras de cada lenguaje y su relación con la performance y facilidad de uso. Se recomienda leer dicha guía, dado que esos conceptos no se repiten aquí. Los lenguajes recomendados para desarrollar son: Python con Pygame [9] para el entorno Sugar, GTK+ [33] o Python con PyGTK [11] para el entorno GNOME, o C++ con SDL [10] para desarrollar en forma nativa para ambos entornos. Los dos primeros son los lenguajes naturales para el entorno, y se recomienda su uso para que el software desarrollado se integre con el entorno gráfico. C++ y SDL son recomendados para videojuegos o actividades que hagan un uso intensivo de gráficos, dado que es un lenguaje compilado y esto produce software con mayor rendimiento que los otros lenguajes que son interpretados. En la guía de producción de XO 1.0 se detallan estas cuestiones. En [13] se encuentra el sitio de desarrollo del Plan Ceibal, en el cual se pueden acceder a diferentes documentos relacionados al desarrollo de actividades, incluyéndose esta guía.

3.1 Actividades, Aplicaciones y Aplicaciones Web En la guía de producción de XO 1.0 se describen los diferentes tipos de aplicaciones, web o locales, las cuales tienen pros y contras. Se recomienda su lectura. En la XO 1.5, al tener dos entornos gráficos (Sugar y GNOME), hay que decidir cómo se empaqueta el software para ser instalado en el entorno (archivo .xo o archivo .rpm respectivamente). Si la actividad desarrollada no se integra con el entorno (como en el caso de los videojuegos que corren fullscreen), es preferible utilizar Sugar, dado que lo hace compatible con las XO 1.0. Si la actividad desarrollada utiliza un entorno gráfico con varias ventanas y cuadros de diálogo (software como por ejemplo Firefox, Open Office, Inkscape, etc.) se recomienda el uso de GTK+ o Python con PyGTK, dado que facilita la creación de software con interfaces graficas como las del entorno gráfico. En este caso lo mejor es desarrollarlo para el entorno GNOME. Al desarrollar una aplicación para el entorno GNOME (que se integre al entorno) es necesario consultar la Guía de Estilo de Usabilidad para GNOME [38] _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 16 de 23 Centro Ceibal – Uruguay

Al realizar aplicaciones web, las mismas pueden ser accedidas desde ambos entornos por medio de la actividad Navegar (Browse) o del navegador Firefox. De todas formas hay que tener en cuenta lo mencionado antes sobre la pantalla y sobre todo probar en las computadoras y en los diferentes navegadores para que no hayan sorpresas. 3.2 Lenguajes de Programación Al igual que se sugiere en la guía de producción para la computadora XO 1.0, los lenguajes recomendados para el desarrollo para XO 1.5 son Python [8] y/o C++ [15]. Cuando se desea realizar un software integrado con el entorno GNOME, es recomendable utilizar GTK+. En [34] se puede ver un tutorial bastante claro sobre cómo es el desarrollo utilizando GTK+. GTK+ tiene soporte para muchos lenguajes, entre los cuales se encuentran, por supuesto, C++ y Python. En [37] se puede ver un tutorial introductorio al desarrollo con GTK+. Para desarrollar para GNOME es recomendable visitar el Centro de Desarrolladores de GNOME [35], el cual contiene detalles de la arquitectura, ejemplos y tutoriales, así como también una completa descripción de las APIs existentes para el desarrollo. Como se explicaba en la guía de producción de XO 1.0, Sugar se encuentra desarrollado en lenguaje Python así como la mayoría de las actividades instaladas en la computadora XO 1.0 y XO 1.5, por lo cual lo hace el lenguaje natural para desarrollar actividades en el entorno Sugar. Para GNOME, como se ha explicado antes, lo natural es el uso de GTK+. Y la tercera opción es desarrollar en forma nativa utilizando C++. Es posible utilizar otros lenguajes según el caso para realizar actividades más sencillas o web (descartando por supuesto a los videojuegos en su concepción tradicional): Flash, HTML5, Java, etc. pero no es aconsejable su uso debido a que hay que trabajar alrededor de bastantes problemas de performance, instalación de plugins, etc. Las pruebas realizadas sobre XO 1.5 muestran que la performance es levemente superior a la computadora XO 1.0, pero no lo suficiente como para recomendar el uso de estos lenguajes para desarrollar actividades con animaciones o uso intensivo de gráficos o videojuegos. 3.3 Desarrollo en Python La versión de Python instalada en XO 1.5 en la versión F11 disponible desde 2011 es la 2.6. Es la misma versión que la que hay en la computadora XO 1.0 y es de esperarse que ambas computadoras tengan instalada la misma versión, para hacer compatibles los desarrollos en Python/Pygame. La versión de Pygame instalada en ambas computadoras es 1.8.1.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 17 de 23 Centro Ceibal – Uruguay

La versión de Python se puede obtener abriendo la terminal y ejecutando el siguiente comando: Python –V. La versión de Pygame puede obtenerse luego de importar el módulo pygame utilizando “print pygame.version.ver”. Python también puede utilizarse con PyGTK [11], que es una biblioteca para implementar la interfaz de usuario (por ejemplo para el entorno GNOME). A la hora de desarrollar con Python se sugiere utilizar el estilo de código de estilo definido en la guía PEP8 de Python [12]. Para desarrollar videojuegos en Python se utiliza Pygame, que es una biblioteca diseñada para dicha actividad. Pygame permite a un programa Python utilizar SDL (por lo cual se dice que Pygame es un wrapper de SDL para Python). 3.4 Desarrollo en C++ Para desarrollar videojuegos en C++ para la computadora XO, se utiliza la biblioteca SDL (Simple Directmedia Library), la cual es una biblioteca que brinda acceso a las interfaces de bajo nivel para realizar tareas de forma eficiente en juegos 2D. SDL nos da acceso al display, al sistema de audio, a los dispositivos de entrada, etc. Al igual que Pygame, SDL viene instalado en la computadora XO 1.5 y funciona perfectamente. Con C++ también puede desarrollarse utilizando GTK+ para el entorno gráfico GNOME [37] al igual que con Python. Se recomienda la lectura de la guía de producción de XO 1.0, dado que en ellas se describe en mayor detalle los lenguajes Python/Pygame y C++/SDL. En dicha guía también se mencionan los entornos de emulación (que también sirven para XO 1.5) y se habla sobre las características del desarrollo de videojuegos y los factores a tener en cuenta de performance y optimizaciones que también son necesarias al desarrollar actividades para la computadora XO 1.5. También se mencionan otras bibliotecas y engines (motores) de videojuegos, tanto Python como C++.

3.5 Entornos de Desarrollos Existen varios entornos de desarrollo (IDE) para los diferentes lenguajes y cada uno presenta diferentes funcionalidades. Hay que elegir cual usar de acuerdo a la plataforma en la cual se va a desarrollar y a lo que se necesite. Para desarrollar en Python o C++, algunos de los entornos de desarrollo más usados en la industria son: − Python: Eclipse + PyDev [16] y [17]. − Python: IDLE (es más simple) [18]. − C++: Microsoft Visual C++ para Windows [19]. _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 18 de 23 Centro Ceibal – Uruguay

− Eclipse CPP para Windows/Linux [20]. − Xcode para Macintosh [21]. 3.6 Usabilidad y Testing En esta sección se describen algunas cosas que hay que tener en cuenta específicamente para la para la computadora XO 1.5. Los conceptos del capítulo 6 – Normas de Usabilidad y Testing de la guía de producción para XO 1.0 son vigentes para la computadora XO 1.5 y es imprescindible su lectura. En esta sección se agregan unos pocos conceptos que son específicos para XO 1.5. Resumiendo, en la guía de producción de XO 1.0, se mencionaba el hecho de que las actividades hay que probarlas en la misma computadora, no asumiendo que algo funciona sin probarlo, y realizar frecuentemente focus groups con la audiencia para probar la usabilidad del software desarrollado.

3.6.1 Audiencia Una de las diferencias de la XO 1.5 con la XO 1.0 es que la XO 1.5 se distribuye entre los alumnos de educación media, por lo cual la edad está entre 12 y 17 años. Se puede asumir ya cierta costumbre en el uso de computadoras, la lectura de texto ya no es un impedimento como era antes y ya se puede coordinar dos manos con varios botones simultáneamente para videojuegos. 3.6.2 Fundamentos de Diseño Para el desarrollo para el entorno Sugar, es muy recomendable leer la guía de la interfaz gráfica de Sugar (Human Interface Guidelines de Sugar Labs) [7], ya que la misma explica la razón de porqué algunas cosas funcionan de determinada manera en Sugar y podrían ser aplicadas a nuestro proyecto para mejorar la usabilidad. Para el desarrollo de una aplicación para el entorno GNOME, es necesario consultar la Guía de Estilo de Usabilidad para GNOME [38] 3.6.3 Testing Las normas de testing de la guía de producción para XO 1.0 son vigentes para la computadora XO 1.5. A esto se agrega si se trata de una aplicación para GNOME, es esperable que la actividad se comporte correctamente y en forma esperada por el usuario, dentro del entorno (por ejemplo que se pueda cambiar de aplicaciones entre ventanas, _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 19 de 23 Centro Ceibal – Uruguay

que se ponga en pausa la aplicación cuando la ventana no está activa, si tiene varias ventanas que se puedan ordenar, etc.).

3.6.4 Instalación de Actividades y Aplicaciones El Apéndice A – “Cómo se Construye una Actividad” de la guía de producción de XO 1.0 es vigente para la computadora XO 1.5 para el entorno Sugar. De la misma manera, se crea un archivo .xo el cual es accedido desde el navegador y la actividad se descarga, descomprime y se instala en forma automática, creando el icono en el escritorio. En el entorno GNOME, al día de escribir esta guía no había solución para un mecanismo de instalación de aplicaciones mediante paquetes. Cuando esté resuelto será agregado a la presente guía.

3.6.5 Desbloqueo y Flasheo de XO 1.5 En el portal Ceibal, en [36] se puede descargar la imagen de la computadora XO 1.5. En dicha página hay instrucciones para el procedimiento de flasheo. En el apéndice B – “Desbloqueo de las XO y Flasheo” de la guía de producción de la XO 1.0 se describe el proceso de desbloqueo y flasheo, que es igual para las computadoras XO 1.5.

3.6.6 Distribución de Actividades El apéndice C de la guía de producción de XO 1.0 sigue vigente para las actividades desarrolladas para XO 1.5. Se recomienda su lectura.

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 20 de 23 Centro Ceibal – Uruguay

Referencias
[1] Portal del Plan Ceibal en Uruguay. http://www.ceibal.edu.uy/ [2] Sitio Web de OLPC. http://www.laptop.org [3] Características del Display. http://wiki.laptop.org/go/Display [4] Especificaciones de Hardware de la computadora XO-1. http://wiki.laptop.org/images/7/71/CL1A_Hdwe_Design_Spec.pdf [5] Especificaciones de Hardware de la computadora XO-1.5. http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf [6] Características de la Cámara. http://www.ovt.com/products/sensor.php?id=74 [7] Human Interface Guidelines – Sugar Labs. http://wiki.sugarlabs.org/go/Human_Interface_Guidelines [8] Lenguaje de Programación Python. http://www.python.org/ [9] Biblioteca Pygame. http://pygame.org/ [10] Biblioteca Simple DirectMedia Library (SDL). http://www.libsdl.org/ [11] Biblioteca PyGTK. http://www.pygtk.org/ [12] Guía de Estilo para el Código Python. http://www.python.org/dev/peps/pep-0008/ [13] Sitio de desarrollo de Ceibal. https://desarrollo.ceibal.edu.uy/ [14] Sistema de Audio AC'97 de Intel. http://en.wikipedia.org/wiki/AC'97 [15] Lenguaje C++. http://es.wikipedia.org/wiki/C%2B%2B _____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 21 de 23 Centro Ceibal – Uruguay

[16] Eclipse IDE. http://www.eclipse.org/ [17] Pydev. http://pydev.org/ [18] IDLE. http://docs.python.org/library/idle.html [19] Microsoft Visual C++. http://msdn.microsoft.com/en-us/visualc/default.aspx [20] Eclipse CPP. http://www.eclipse.org/downloads/ [21] Xcode. http://developer.apple.com/technologies/tools/xcode.html [22] Especificación del Navegador Web de Sugar. http://wiki.laptop.org/go/Browse [23] Hardware de las computadoras XO. http://wiki.laptop.org/go/Hardware [24] Intel HD Audio Standard. http://www.intel.com/design/chipsets/hdaudio.htm [25] Chip controlador de red inalámbrica. http://www.marvell.com/products/wireless/8686.pdf [26] Manual Básco de XO 1.5. http://200.40.200.99/images/stories/contenidos/espacio_tecnico/Formacion/MANUALxo15. pdf [27] Dextrose – Sugar Labs. http://wiki.sugarlabs.org/go/Dextrose [28] Activity Central. http://activitycentral.com/ [29] Paraguay Educa. http://www.paraguayeduca.org/ [30] Sugar Labs. http://sugarlabs.org/

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 22 de 23 Centro Ceibal – Uruguay

[31] Navegador Firefox. http://www.mozilla.org/ [32] GNOME. http://www.gnome.org/ [33] GTK+. http://www.gtk.org/ [34] Programación en Linux usando GTK+. http://www.juntadeandalucia.es/averroes/iesbajoguadalquivir/inf/dfsi/Programacion%20Gn ome%20En%20Linux%20Usando%20Gtk%20.pdf [35] Centro del Desarrollador de GNOME. http://developer.gnome.org/ [36] Instrucciones para flashear la computadora XO 1.5. http://www.ceibal.edu.uy/Portal.Base/Web/VerContenido.aspx?GUID=b053193a-7ae5427b-8168-7c10099f3943&ID=204659 [37] Introducción a la Programación en el Entorno GNOME. http://people.gnome.org/~csaavedra/documents/guadec-es-2007/intro-gnome.pdf [38] Guía de Estilo para Usabilidad para el Entorno GNOME. http://developer.gnome.org/hig-book/

_____________________________________________________________________ Anexo Práctico para la Guía de Producción XO 1.5 v1.0 – Pág. 23 de 23 Centro Ceibal – Uruguay

Sign up to vote on this title
UsefulNot useful