Desarrollo de aplicaciones potentes con PyGTK sin complicaciones

Python es un lenguaje muy potente que se ha convertido en el lenguaje de scripting de elección para la plataforma GNOME. Tiene muchas ventajas, como introspección, generadores, cierres, manejo multihilos, entre muchas otras.

Todas estas características permiten potentes técnicas que nos permiten un uso avanzado de patrones de diseño sin complicaciones.

Entre otras técnicas, se explorará:

  • Uso de decoradores para simplificar la conexión de las señales de código.
  • Uso de introspección para conectar señales automáticamente.
  • Uso de cerraduras para simplificar el trabajo con hipertexto.
  • Creación de objetos de trabajo para trabajar con hilos.
  • Asociación de campos y tablas de una base de datos con widgets directamente desde Glade.

Expositor: Sandino Flores.

Desarrollo de aplicaciones de video con GStreamer y GTK+: El ejemplo de Youtube Viewer

El mercado de las aplicaciones para dispositivos móviles está creciendo de manera exponencial, la ubicuidad del poder de cómputo se está convirtiendo en una realidad, junto con el acceso a información a través de grandes infraestructuras de red inalámbrica. Nuestro concepto de aplicaciones de escritorio está evolucionando hacia las aplicaciones móviles en dispositivos cada vez más poderosos, más pequeños y mejor interconectados. Según los analistas, Linux y WinMobile serán los sistemas operativos que dominen este nicho, relegando a Symbian de su antiguo liderazgo. Gnome, como plataforma de desarrollo, es una de las grandes apuestas para entregar a los desarrolladores las herramientas necesarias para la producción de las aplicaciones que llevarán a cabo esta revolución: del escritorio al móvil.

YouTube forma parte del fenómeno conocido como web colaborativa, paradigma donde el usuario pasa de ser lector pasivo a autor activo. Ese paradigma lleva a la creación de servicios basados en web para consultar la creciente información que almacenan. Esos servicios ya no están pensados sólo para PCs. Proveen mecanismos para poder ser accesados por sistemas móviles.

El software libre juega un papel preponderante en la web colaborativa, porque sus usuarios lo enriquecen al compartir sus propias soluciones, integrándolas en el ecosistema llamado comunidad.

El software libre, llevado a los móviles, permite que estos dejen de ser cajas negras, tranformándolos en campo de experimentación de todo lo anterior. Con todo esto, veremos por pasos como un usuario inconforme aporta su propia solución hecha en casa, en este caso, un visualizador de YouTube.

Con el uso de software libre cualquier persona puede poner su propuesta en el mundo y aspirar a convertirse en uno de los vehículos de este cambio. Sin embargo, ¿cómo un programador de a pie, sin ser un iniciado en este mundo de Gnome y Linux, puede adquirir las habilidades necesarias para cristalizar su sueños? Esta presentación ofrece el mapa recorrido para el desarrollo de una aplicación: desde la concepción de la idea, el recabado de la información necesaria y el trabajo de programación.

Expositor: Sandino Flores

Integración de Webkit

Ahora mismo el desktop usa o /malusa/ algunos hacks para mostrar contenido rico o tener interfaces más atractivas al usuario, sin embargo la existencia de webkit-gtk nos posibilita a hacer muchas cosas novedosas para las aplicaciones.

Esta charla explicará y mostrará ejemplos de cosas en las cuales ya se está trabajando para integrar webkit al escritorio preferido de todos, se hablará de las ventajas y features que webkit ofrece comparado a otras opciones.

Expositor: Diego Escalante Urrelo

Arte en GNOME

Uno de los elementos clave de la comunicación visual es la imagen y GNOME es uno de los principales proyectos en entornos de escritorios libres, desempeñando un papel importante en dicha zona. A los usuarios les gusta tener un buen aspecto en sus escritorios. Si no les gusta lo que ven seguro que lo cambian y aquí es donde art.gnome.org desempeña su papel en la comunidad. Usuarios contribuyentes de arte en todo el mundo ponen a tu disposición una gran variedad de proyectos para que puedas cambiar tu sistema de aspecto cuando quieras, aprovechar el tiempo de búsqueda de una página a otra para encontrar el tema perfecto. AGO3 sera una evolución de AGO, y puede convertirse tal ves en el único sitio web que necesites para personalizar tu escritorio

El objetivo principal del proyecto AGO es ser un servidor comunitario de arte a disposición de los usuarios como tal, los usuarios son los que deben decidir lo que quieren ver y sentirse parte de la comunidad de una forma natural, los desarrolladores de arte también deberían ser alentados a participar activamente. Sin ellos no hay trabajos de arte. Por lo tanto, los usuarios deberían ser capaces de revisar y comentar a los desarrolladores y en consecuencia, ellos deberán ser capaces de recibir esa información.

En AGO puedes encontrar una gran variedad de elementos Gráficos que nos permitirán cambiar la apariencia del escritorio que viene por defecto. Además del diseño propiamente tal, lo mas fascinante es hacer que estos elementos interactúen con el sistema a través de herramientas como Art Manager y Gnome-Art NextGen estos software se comunican con AGO y puedes tener acceso a todo su contenido de arte.

AGO3 soportara temas tales como Gtk + temas, temas de iconos, temas Metacity, Splash pantallas, Fondos de pantalla, temas de cursor y sonidos, también temas completos (gtk +, mcity, iconset en un solo paquete).

Ahora de que manera puedo colaborar con el proyecto AGO?

Para colaborar en el proyecto de Arte se requieren personas que puedan aportar en las Artes gráfica, también en la parte de desarrollo y en la parte de traducción de tutoriales.

Algunas herramientas gráficas de código abierto usadas para colaborar en AGO

* Gimp (GNU Image Manipulation Program) es un programa de edición de imágenes, tanto dibujos como fotografías. Es un programa libre y gratuito, englobado en el proyecto GNU y disponible bajo la licencia Licencia pública general de GNU.

* Inkscape es una herramienta de dibujo libre y multiplataforma para gráficos vectoriales SVG. Las características de SVG soportadas incluyen formas básicas, caminos, texto, canal alfa, transformaciones, gradientes, edición de nodos, exportación de SVG a PNG, agrupación de elementos, etc.

* Blender es un programa multiplataforma, dedicado especialmente al modelado y creación de gráficos tridimensionales.

Expositor: Daniel Galleguillos

Presentación: Arte para GNOME

Uso de Autotools

La charla está orientada a dar un introducción en el uso de Autotools, un conjunto de utilidades GNU que apoya el desarrollo de proyectos de software destinado a sistemas tipo Unix. Estas utilidades facilitan el que nuestra aplicación sea portable, simplificando los pasos para compilar, instalar, desinstalar y distribuir el proyecto en cuestión. Ayudando así al desarrollador en su tarea, y facilitando la del usuario final al automatizar el proceso de instalación.

Autotools esta compuesto por Autoconf, Automake, Libtool y Gettext. Autoconf ayuda a crear proyectos de software más portables. Automake ayuda a crear archivos Makefile. Libtool ayuda a crear bibliotecas estáticas y dinámicas. Gettext ayuda a que el proyecto pueda estar disponble en distintos idiomas, proceso conocido como internacionalización.

Expositor: Juan Pizarro

Presentación: Autotools

Ejemplos: Ejemplo1 Ejemplo2

Evolución y análisis del proyecto GNOME

El software libre y GNOME, por herencia, tienen un modelo particular de desarrollo de software, el cual es distribuido, colaborativo y abierto, el cual se desarrolla por completo en Internet. Para facilitar la ejecución del modelo, se utilizan herramientas de coordinación, que van almacenando cada movimiento que se hace sobre ellas, dejando asi un rastro a seguir para la investigación de los proyectos de software libre, las fuentes de información que nos da el método de desarrollo FLOSS son:

  • Archivos del proyecto: Archivos binarios y fuentes.
  • Sistemas de control de versiones: CVS, SVN, GIT, etc.
  • Sistemas de seguimiento de fallos: Bugzilla, etc.
  • Documentación: MAN, REAME, TODO, etc.
  • Herramientas de comunicación: Listas de Correos, Wikis, Foros, etc.

Lo primero que se quiere mostrar en esta presentación es un análisis técnico de las lineas de código fuente del proyecto GNOME, para esto, se utilizarán algunas herramientas estándares y en especial SLOCCount, la que cuenta con una heurística para distinguir y centrarse en el análisis de los lenguajes de programación.

Además se presentará un análisis de ciertos módulos representativos del proyecto GNOME, extrayendo la información desde el sistema de gestión de versiones de GNOME, a través de la herramienta CVSAnaly.

Expositor: Fernando Silva

Presentación: Evolución y Análisis del Proyecto GNOME

Experiencia en el reporte y manejo de bugs

La mayoría de los programas poseen fallas, comúnmente llamados bugs, los cuales son reportados por distintos usuarios a nivel mundial, estos reportes son enviados la mayoría de las veces por personas que no poseen conocimientos de la aplicación que presenta el problema o no saben cual es la información que necesitan entregar, por lo cual estos no pueden ser reparados por los desarrolladores ,es aquí donde interviene el trabajo de un bug triage, quien analiza los reportes y solicita toda la información necesaria para que este sea consistente, logrando mejorar la calidad de los reportes y a su ves contribuyendo al desarrollo y calidad del software.

En esta charla mostrare mi trabajo y experiencia en reporte de errores y bug triaging.

Expositor: Felipe Venegas

Presentación: Experiencia en el reporte y manejo de bugs

Cómo incorporarse al escuadrón de control de calidad de GNOME

Todo software tiene fallas y el proyecto GNOME no es la excepción a la regla, alguna vez te preguntaste donde iban a dar todos ellos reportes de fallos, quien trabaja en ellos o quien es la persona que los responde? En GNOME existe un equipo de trabajo el GNOME QA Team, también conocido como Bugsquad o el Escuadrón de control de calidad, el cual hace seguimiento a los actuales problemas de GNOME y trata de que los mas importantes de estos no pasen desapercibidos por los Hackers de GNOME.

En esta charla se introducirá el GNOME Bugsquad, sus formas de trabajo, ejemplos prácticos de triaging, buenas prácticas y uno que otro tip para hacer el trabajo mas rápido y fácil.

Expositores: Pedro Villavicencio Diego Escalante

Aplicaciones Esteganográficas utilizando GTK+

El trabajo que se presentará corresponde a una aplicación de software desarrollada usando las herramientas de autotools y GTK+. Este software toma como input cualquier imagen previamente seleccionada y permite escoger un texto arbitrario el cual se oculta en el interior de la imagen de entrada, generando una nueva imagen que no presenta a simple vista variación alguna, manteniendo el mismo tamaño y formato.

Esta técnica desarrollada permite la ocultación de texto plano en imágenes para llevar a cabo el traslado de información sensible causando mínima sospecha a un tercero de la existencia de información adicional.

Expositor: Nicolás Narria

Presentación: Aplicaciones Esteganográficas utilizando GTK+

Primeros pasos programando una aplicación GNOME con PyGTK

Rapid application development (RAD), es un proceso de desarrollo de software que requiere de herramientas que ayuden al programador a generar interfacez gŕaficas de usuario (GUI) de manera rápida y de fácil mantención (independientes de la lógica del programa) y de lenguajes de programación que faciliten la vida al programador.

PyGTK (Python + GTK) y Glade son una excelente combinación de herramientas que harán de nuestros días (y noches) de programación algo mucho mas agradable. En esta charla veremos los primeros pasos en la creación de aplicaciones utilizando estas herramientas.

Expositor: Alejandro Valdés

Presentacion y Ejemplos: pygtk.tar.gz

Programación de Extensiones para Nautilus Usando Python

En aplicaciones de carácter general, como el administrador de archivos, y de acuerdo a la filosofía del escritorio GNOME, sólo se incorporan como características aquellas funcionalidades que son comunes a la mayor parte de los usuarios. Se evita poblar de características que sólo tienen una utilidad a un grupo reducido de usuarios y se ofrece como alternativa una infraestructura de extensiones, en donde se permite añadir características a la aplicación sin obligar a todos usuarios, además que no requiere conocer internamente el código, no recompilar toda la aplicación cada vez que se realiza un cambio.

La infraestructura de extensiones no sólo permite personalizar una aplicación, sino que también sirve como iniciación en el desarrollo de la aplicación y como un puente para que nuevos que se integren nuevos colaboradores a un proyecto.

Este trabajo presenta la infraestructura de extensiones Nautilus, el administrador de archivos de GNOME, a través del lenguaje Python y de la API provista por PyGTK. Se mostrará la integración que se puede lograr entre dos aplicaciones como Nautilus y Mercurial.

Expositor: Germán Póo-Caamaño

El proceso de traducción de aplicaciones

Dentro del transcurso de esta presentación, se dará respuesta a una serie de interrogantes que surgen a la hora de intentar traducir (localizar, internacionalizar) una aplicación GNOME, como:

  • ¿Porque traducir la aplicación?
  • ¿Como comienzo a traduccir?
  • ¿Qué herramienta utilizo para traduccir?
  • ¿Como solicitar una aplicacion para traducirla?
  • ¿Que gano al traducir para GNOME?

Terminando con la realización de un par de ejemplos prácticos utilizando herramientas para traducción, y mostrando páginas disponibles para descargar los módulos de traducción.

Expositor: Eduardo Retamales

Presentación: GuiaDeTraducción

Introducción al proyecto GNOME

Dentro de esta presentación, se tratarán aspectos generales del proyecto GNOME e intentará mostrar la visión más allá del proyecto de software en sí, centrandose en el ámbito de la comunidad que hace posible que exista el proyecto, en especial, los aportes que ha realizado la comunidad nacional de GNOME Chile a lo largo del tiempo, como se organizan y contribuyen.

Expositor: Fabio Durán

Presentación: Introducción

Events/DiaGNOME/2008/Ponencias (last edited 2013-12-02 16:42:19 by WilliamJonMcCann)