Desarrollo de Plugins en python para software educativo TurtleArt



Documentos relacionados
ESTRUCTURA DE LOS SITIOS DE CATEDRAS

Tutorial de herramientas de Google

Gestión de Extensiones en Joomla!

Introducción a la extensión de scripting en gvsig 2.0

MANUAL BASICO DE LA NUBE (OWNCLOUD)

Curso de PHP con MySQL Gratis

1.- DESCRIPCIÓN Y UTILIDAD DEL SOFTWARE DAEMON TOOLS.

CONFEDERACIÓN DE EMPRESARIOS DE MÁLAGA

Curso de Python Inicial

Guía Notas Parciales. Avanzado

Paso 2 Una vez se ha completado la instalación y ejecutado el programa, veremos esto

para jóvenes programadores

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Manual de NVU Capítulo 5: Las hojas de estilo

3.1 Definir objetivos y contenidos de la página web

Manual de operación Tausend Monitor

MANUAL DE FACTURACIÓN TOUCH SCREEN

Una App para Facebook

Mejoras introducidas MARKETING GIO

HIPERVÍNCULOS. Es posible asignar un vínculo a un texto, a una imagen, o a parte de una imagen

Un pequeñísimo tutorial para explicar cómo darse de alta al MEJOR SISTEMA de compartición, backup... en la web.

Presentaciones compartidas con Google Docs (tutorial)

Moodle, plataforma de aprendizaje

Editor de textos para Drupal: TinyMCE

LA INTRANET -Manual general-

INSTALACIÓN Y REGISTRO

Cómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google?

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua.

Unidad Didáctica 12. La publicación

Marta Soler Tel: Fax: TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE

Introducción a Moodle

Curso Internet Básico - Aularagon

Como montar un servidor web + Anonimización con Tor

Guía nuevo panel de clientes Hostalia

USO DE PLANTILLAS EN WORD

La compresión de Flash ayudará a que la presentación pese menos Los dibujos se comprimen de manera vectorial para no perder calidad

MACROS. Automatizar tareas a través del uso de las macros.

Instalación del Admin CFDI

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Manual hosting acens

Ubuntu Server HOW TO : SERVIDOR VPN. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como usar vpn. Qué es una VPN?

Manual de Instalación y uso de FTP

Creando una webquests

Crear la base de datos antes de la instalación de Wordpress.

Módulo 1 Sistema Windows. Explorador de Windows

Instructivo de Instalación y Uso de software MasterControl

UNIDAD DIDÁCTICA Nº 7 USO DE LOS RECURSOS EN MOODLE

Tutorial: Primeros Pasos con Subversion

Elaborando WebQuest usando Power Point

Usar Epoptes en Huayra

MANUAL DE CREACIÓN DE CARPETAS PARA ACCESO POR FTP DE CLIENTES EN UN NAS

Haciendo pruebas sobre Splinter

Cómo crear su perfil de WOK?

Gestión Básica de SQL Server. Versión V1 Fecha

Cómo se realiza la descarga e instalación de Aplicativos AFIP?

Hacer una página web con Kompozer

Crea una revista digital de aula

MANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS

PLATAFORMA EDUCATIVA DE LA JCYL ENLACES A TUTORIALES DE INTERÉS:

ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS

Cuadernillo de Autoaprendizaje Correo Electrónico Microsoft Outlook Express

Internet Information Server

Manual del Usuario. Portal Web Para uso exclusivo de Ministros de Estado.

Aporta. Manual de uso para administradores de contenido Este manual le enseñará rápidamente a usar las distintas herramientas de su sitio web

Gestión de plantillas en Joomla!

Bajá videos de YouTube con Huayra

Pantalla ENW URL LOGIN

FDR Electrónicos. Su mejor opción en tecnología y servicios computacionales. Manual de uso para programa de facturación electrónica

2. Seleccione OneDrive en la parte superior de los sitios de SharePoint u Office 365 de su organización.

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Hot Potatoes, aplicaciones educativas

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

GTK-RecordMyDesktop Serafín Vélez Barrera Breve manual de GTK- RecordMyDesktop

Manual para Declaración Anual

Aplicaciones didácticas en Internet: DREAMWEAVER Bloque 2

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

En este caso presionamos ENTER para empezar nuestra instalación

Manual de EchoLink con Linux (Ubuntu)

Administración de portales Joomla (II)

Taller No 5 CONFIGURACION CONTADOR DE VISITAS. Joomla

Manual para la utilización de PrestaShop

Manual DE CONFIGURACIÓN PARA EL MANEJO DEL COMPROBANTE FISCAL DIGITAL A T R A V É S D E I N T E R N E T

Toda base de datos relacional se basa en dos objetos

PUESTA EN MARCHA PROGRAMA GESTION DE OPTICAS. Junio

MANUAL PARA LA ELABORACION DEL COMPROBANTE FISCAL DIGITAL (CFDfácil) BIENVENIDOS A CFDfácil

PLANTILLAS DE DOCUMENTOS EN WORD 2007

PLANTILLAS EN MICROSOFT WORD

Inicio del programa WORD 2007

Guí a Ra pida Dropbox.

SIMPLE Cuentas Corrientes

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

Cómo editar WIKIPEDIA

MANUAL DE USO PARA ESTUDIANTES PLATAFORMA VIRTUAL UNIVERSIDAD TECNOLOGICA INDOAMERICA

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

SISTEMA DE TRANSMISIÓN DE FICHEROS Usuarios Responsables de Centro Lácteo LETRA Q TRAZABILIDAD

Transcripción:

Desarrollo de Plugins en python para software educativo TurtleArt TurtleArt es un entorno de programación gráfico basado en el lenguaje LOGO, en el que se pueden hacer pequeños programas y realizar diseños con una tortuga de forma gráfica. Desde la versión 106, TurtleArt soporta el formato de plugins, permitiendo mejorar y agregar nuevas primitivas a nuestro software. En este artículo explicaremos la creación de un plugin personalizado para TurtleArt. Este artículo requiere cierto conocimiento previo en programación orientada a objetos, python y la forma de trabajo de SUGAR. Primero debemos tener instalado en nuestra computadora un entorno SUGAR (no es excluyente pero siempre es conveniente); en FEDORA es tan simple como poner: su -c 'yum install sugar*' o también: su -c 'yum groupinstall sugar' Con esos comandos nuestro sistema linux instalará todo el entorno SUGAR con sus actividades y el emulador sugar-emulator (muy cómodo para las pruebas). Una vez instalado el entorno SUGAR, descargaremos la última versión de TurtleArt desde la página web: http://activities.sugarlabs.org/en-us/sugar/downloads/latest/4027/addon-4027-latest.xo?src=addondetail También pueden descargar del siguiente link la versión de TurtleArt con el plugin tortucaro (Icaro + TurtleArt) para estudiarlo tranquilos (versión 106). Atención: esta versión no es igual a la que analizamos en este artículo. http://valentinbasel.fedorapeople.org/turtleart.tar Luego de realizar la descarga, desempaquetamos el archivo.tar en nuestro home y procedemos a ver la estructura de directorios. Los archivos que nos importa tocar están dentro del directorio plugins. La idea de esta versión de TurtleArt es posibilitar el desarrollo de nuevas paletas por parte de los desarrolladores sin necesidad de modificar el código fuente original del software (como en las versiones anteriores). Así, antes, en la versión 106, para hacer nuestro plugin básicamente teníamos que crear una archivo con el siguiente formato: nombre_plugin.py donde nombre es la denominación que le daremos a nuestro plugin, por ejemplo prueba_plugin.py. A partir de la versión 107, se mejoró el sistema para acomodar todos los archivos del plugin directamente en una carpeta dentro del directorio plugins. Vamos a crear una carpeta de nombre prueba y dentro crearemos un archivo prueba.py. En nuestro archivo implementaremos una clase de python con el mismo nombre que el archivo, y solamente pondremos la primera letra en mayúscula: Prueba (hay que respetar ese formato). ## es necesario importar todos estos módulos para poder trabajar con TurtleArt import gst import gtk from fcntl import ioctl import os from gettext import gettext as _ from plugins.plugin import Plugin from TurtleArt.tapalette import make_palette from TurtleArt.talogo import media_blocks_dictionary, primitive_dictionary from TurtleArt.tautils import get_path, debug_output import logging _logger = logging.getlogger('turtleart-activity prueba plugin') #------------------------------------------------------------------------------------------# class Prueba(Plugin): def init (self,parent):

self._parent = parent self._status = False La primera parte es fundamental para poder importar todos los módulos internos de TurtleArt; aquí, por razones de extensión, no explicaré en detalle de que se trata cada módulo. Con nuestra clase creada e inicializada (def init ), procedemos a colocar la función setup def setup(self): palette = make_palette('prueba', colors=["#006060", "#A00000"], help_string=_('esta es una prueba')) Acá declaramos una nueva paleta de nombre prueba ; el campo colors representa los dos colores con los que se hará el gradiente del botón que muestra TurtleArt (para diferenciarlos de las otras primitivas del sistema). El campo help_string es bastante entendible, básicamente se trata de información sobre la paleta (pero no sobre los botones de esa paleta, como ya veremos). Este es nuestro primer botón, acá definimos su comportamiento, estilo, nombre y función a la que apunta. Aquí definimos una primitiva para el diccionario. Cuando la coloquemos, el sistema llamará a _boton_prueba (la función donde estará el código de acción). Palette.add_block crea nuestro botón, el cual estará dentro de nuestra paleta prueba ; el primer campo es el nombre del botón. Con style definimos que tipo de botón sera, si tendrá o no argumentos, si en lugar de enviar información la recibirá o si es un estilo especial. Para saber que tipos de estilos se pueden usar hay que revisar el archivo tapalette.py dentro del sub directorio TurtleArt, en nuestro directorio principal. Las paletas aceptadas por la versión 107 son: block_styles = {'basic-style': [], 'blank-style': [], 'basic-style-head': [], 'basic-style-head-1arg': [], 'basic-style-tail': [], 'basic-style-extended': [], 'basic-style-extended-vertical': [], 'basic-style-1arg': [], 'basic-style-2arg': [], 'basic-style-3arg': [], 'basic-style-var-arg': [], 'bullet-style': [], 'invisible': [], 'box-style': [], 'box-style-media': [], 'number-style': [],

'number-style-var-arg': [], 'number-style-block': [], 'number-style-porch': [], 'number-style-1arg': [], 'number-style-1strarg': [], 'compare-style': [], 'compare-porch-style': [], 'boolean-style': [], 'not-style': [], 'flow-style': [], 'flow-style-tail': [], 'flow-style-1arg': [], 'flow-style-boolean': [], 'flow-style-while': [], 'flow-style-else': [], 'collapsible-top': [], 'collapsible-top-no-arm': [], 'collapsible-top-no-label': [], 'collapsible-top-no-arm-no-label': [], 'collapsible-bottom': [], 'portfolio-style-2x2': [], 'portfolio-style-1x1': [], 'portfolio-style-2x1': [], 'portfolio-style-1x2': []} Como puede observarse son bastantes, nosotros sólo usaremos el estilo básico con un argumento ( basic-style- 1arg). Si quisiéramos más argumentos u otras posibilidades sólo hay que intentarlo. El campo label es el nombre que mostrara el botón en su cuerpo; en el campo prim_name escribo lo mismo que en el primer campo (boton); help_string es el texto de ayuda que mostrará TurtleArt cuando pasemos el mouse por arriba del botón. En esta línea de código es donde el sistema enlaza el botón con la función que definamos. Lamdba es una interesante sintaxis para definir funciones mínimas implementada por python, lo que hacemos es pasar a la función _boton_prueba mediante primitive_dictionary['boton'] la variable valor. Como es un botón básico de un argumento, permite poner una caja de valor y almacenarlo en dicha variable. Finalmente, lo único que nos falta es la función _boton_prueba donde haremos toda la lógica del botón propiamente dicho def _boton_prueba(self,valor): print "el valor del boton ", valor La función es muy sencilla, lo único que hace es mostrar un poco de código trivial para ilustrar el funcionamiento. Como verán, programar plugins para TurtleArt no es de lo más complejo. Si bien hay poca documentación y la mayoría está en inglés, con un poco de paciencia se pueden armar un montón de paletas personalizadas para las más variadas actividades. Con nuestro archivo prueba.py ya terminado lo único que nos falta es crear la carpeta icons dentro de nuestra carpeta prueba, quedando el árbol de directorio de la siguiente manera: ~/TurtleArt/ plugins/ prueba/ icons/ Dentro de icons hay que colocar dos archivos svg de 55x55 píxeles con el nombre pruebaon.svg y pruebaoff.svg (el mismo nombre del plugin). Con eso debería aparecer el icono pruebaoff.svg dentro de la barra de herramientas de TurtleArt.

TurtleArt con nuestro botón de prueba andando! label=_('boton') colors=["#006060", "#A00000"] basic-style-1arg Detalle del armado del botón dentro de la paleta. para descargar el archivo del tutorial: http://valentinbasel.fedorapeople.org/prueba-plugin-turtleart-107.tar

# archivo prueba.py completo import gst import gtk from fcntl import ioctl import os from gettext import gettext as _ from plugins.plugin import Plugin from TurtleArt.tapalette import make_palette from TurtleArt.talogo import media_blocks_dictionary, primitive_dictionary from TurtleArt.tautils import get_path, debug_output import logging _logger = logging.getlogger('turtleart-activity prueba plugin') class Prueba(Plugin): def init (self, parent): self._parent = parent self._status = False def setup(self): palette = make_palette('prueba', colors=["#006060", "#A00000"], help_string=_('esta es una prueba')) def _boton_prueba(self,valor): print "el valor del boton ", valor #### FIN DEL ARCHIVO ##### Valentín Basel valentinbasel@gmail.com