SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Introducción al desarrollo con




            Denis Fuenzalida
<denis.fuenzalida@gmail.com / @dfuenzal>
           01 de Octubre 2011
Acerca de mí
●   Casi 10 años desarrollando
    aplicaciones [web]
●   Primero programando en Perl, luego
    Java, Python … ultimamente Groovy
    y Ruby
●   Usuario de Ubuntu desde 2005,
    colaborador esporádico
    (traducciones, foros, blog)
●   Varios pequeños proyectos
    liberados en la web
●   Actualmente, colaboro como editor
    en www.ManzanaMecanica.org
Acerca de la audiencia


 ¿Conoces acerca del software libre?

     ¿Usuario de software libre?

¿Alguna experiencia en programación?

¿Usuario de Linux? ¿Debian? ¿Ubuntu?
¿Qué es Launchpad?




●
    Plataforma web para colaborar y alojar
    proyectos de Software Libre*
●
    Desarrollada para Ubuntu, pero funciona con
    todo tipo de proyectos
●
    www.launchpad.net
* También hay suscripciones para proyectos de software cerrado desde 250 dólares/año
Launchpad para colaboradores
●
    Por mi interés en mejorar un proyecto
    ●
        Averiguar cómo se realiza una tarea
    ●
        Reportar un bug para que sea corregido
    ●
        Solicitar que se agregue una funcionalidad a un
        programa
    ●
        Para que un proyecto esté disponible en mi idioma
        o en uno que yo conozco
●
    Ninguna de estas actividades requiere
    conocimientos de programación
Launchpad para desarrolladores
●
    Por mi interés en crear o ayudar a completar
    un proyecto
    ●
        Desarrollar un programa nuevo
    ●
        Ayudar a programar a los desarrolladores de un
        proyecto ya existente
    ●
        Enviar una mejora a un proyecto que corrige un
        bug
    ●
        Para que un programa nuevo esté disponible para
        instalarse en Ubuntu con facilidad (desde el
        Centro de Software de Ubuntu)
Servicios disponibles en LP
●   Bugs
    ●   Reporte y seguimiento de errores
●   Answers
    ●   Servicio de asistencia en línea
    ●   Base de Conocimiento
●   Blueprints
    ●   Propuestas y especificación de nuevas funciones
●   Translations
    ●   Traducciones del software a docenas de idiomas
●   Code
    ●   Alojamiento de código
    ●   Repositorios PPA
Reporte y seguimiento de errores
●
    Los errores se pueden reportar desde la misma aplicación
    en la mayoría de los casos
Reporte y seguimiento de errores
Reporte y seguimiento de errores
Reporte y seguimiento de errores
●   Suscribirse por mail a los cambios en un bug
●   Marcar bugs como duplicados de otros
●   Adjuntar archivos (videos, capturas de pantalla, logs)
    ●   Adjuntar un parche que soluciona el problema
●   Definir atributos
    ●   Urgencia (desde “muy importante” → “bajo” y “no decidido”)
    ●   Error o nueva funcionalidad (wishlist)
    ●   Error ya está confirmado (triage)
●   Se puede integrar con otros sistemas de otros equipos de
    desarrollo: Bugzilla, Trac, Sourceforge, Google Code ...
Launchpad Answers
Launchpad Answers
Launchpad Blueprints




●   Permite especificar ideas y tareas que se quieren
    implementar en un proyecto
●   Se pueden usar para definir la orientación del
    proyecto, para ver en que etapa o hito se quiere
    completar una idea o funcionalidad
Traducciones en Launchpad
●
    Una de las funciones más potentes
    ●
        No requiere conocimientos de
        programación (sólo inglés)
    ●
        Interfaz web
    ●
        Reutiliza traducciones desde otros
        proyectos
    ●
        Se puede configurar de forma
        completamente abierta o más restringida
        (equipos de traducción)
    ●
        Las traducciones se pueden descargar o
        integrar a una rama (branch) de código
        de forma automática
Traducciones en Launchpad
Traducciones en Launchpad
Traducciones en Launchpad
●
    Se puede reutilizar traducciones similares de otros proyectos
Alojamiento de código en LP
●
    Utiliza Bazaar (bazaar.canonical.com),
    pero se puede importar código de
    otras fuentes (Google Code,
    Sourceforge, SVN...)
●
    Desarollo distribuido (similar a Git,
    Mercurial, etc.)
●
    Se puede tener código
    personal/experimental y ramas de
    desarrollo oficiales de un proyecto
●
    Se puede operar con línea de
    comandos o con herramientas de
    escritorio (a-la TortoiseSVN...)
Alojamiento y construcción de proyectos

●
    En Ubuntu (y en casi todas las distribuciones de
    Linux), los programas se instalan en forma de
    paquetes de software
●
    Paquete de software = Archivos + Metadatos
●
    Los metadatos indican:
    ●
        Sección del catálogo al que pertenece este programa o paquete
        (utilidades, oficina, web, juegos...)
    ●
        Dependencia en otros paquetes (y versiones)
    ●
        Pasos a seguir en la instalación (y desinstalación)
    ●
        Otros: Autor(es), licencia, página web, etc.
Alojamiento y construcción de proyectos

●
    Los programas provienen
    de los repositorios en CD,
    DVD o de repositorios en
    línea
●
    Se pueden agregar
    repositorios llamados PPA
    (Personal Package Archive)
    que están alojados en
    Launchpad
    ●
        Centro de software → Editar → Orígenes del Software
    ●
        $ sudo add-apt-repository ppa:usuario/repositorio
Alojamiento y construcción de proyectos

●
    Launchpad permite construir y distribuir programas que no
    forman parte de la distribución oficial de Ubuntu
    ●
        Sin problemas de hosting, ni de ancho de banda
    ●
        Permite generar paquetes de software firmados digitalmente
        y para diferentes procesadores (32 y 64 bits)
    ●
        Puedo crear versiones optimizadas de programas ya
        existentes, o empaquetar versiones más nuevas que las que
        están disponibles ahora o de programas ya no soportados
Alojamiento y construcción de proyectos

●
    Se obtiene el código del
    proyecto y se prepara para que
    sea instalable

●
    Se agregan metadatos para que
    se pueda convertir en un
    paquete de software
    (debianización)
●
    Se sube a Launchpad para su
    construcción automática y
    despliegue en nuestro
    repositorio PPA
Alojamiento y construcción de proyectos
●
     Se obtiene el código del proyecto y se prepara
     para que sea instalable
    $ git clone https://github.com/dfuenzalida/gedit-git-branch-statusbar
    $ mv gedit-git-branch-statusbar gedit-git-branch-statusbar-1.0
    $ cd gedit-git-branch-statusbar-1.0

    # Generar archivos para paquete .deb
    $ dh_make -c gpl -e denis.fuenzalida@gmail.com -s --createorig
Alojamiento y construcción de proyectos

●
    Se agregan metadatos para que se pueda convertir
    en un paquete de software (debianización)
Alojamiento y construcción de proyectos
●
     Se sube a LP para su construcción automática
     y despliegue en nuestro repositorio PPA


    # Creo un paquete de código fuente con mi firma digital
    $ debuild -S -sa -kADF0F1AD
    . . .
    Successfully signed dsc and changes files

    $ cd ..
    $ dput ppa:denis-fuenzalida/ppa gedit*.changes
    . . .

    Uploading to ppa (via ftp to ppa.launchpad.net):
      Uploading gedit-git-branch-statusbar_1.0-1.dsc: done.
      Uploading gedit-git-branch-statusbar_1.0.orig.tar.gz: done.
      Uploading gedit-git-branch-statusbar_1.0-1.debian.tar.gz: done.
      Uploading gedit-git-branch-statusbar_1.0-1_source.changes: done.
    Successfully uploaded packages.
Alojamiento y construcción de proyectos
●
    Se sube a LP para su construcción automática
    y despliegue en nuestro repositorio PPA
Alojamiento y construcción de proyectos
●
    Para que otros usuarios instalen los
    programas de nuestro PPA:
●
    Centro de Software de Ubuntu → Orígenes
    del software → Otro software
Quickly
●
    Nueva herramienta para el desarrollo rápido de aplicaciones
    de escritorio
    ●
        Python, GTK, Gedit, Glade, Bazaar y Launchpad en un paquete
        más integrado
    ●
        Ver más en developer.ubuntu.com/get-started/
Sitio de desarrolladores de Ubuntu
●
    Recién estrenado: developer.ubuntu.com
●
    Tutoriales sobre las tecnologías disponibles
    para desarrollo de aplicaciones
    ●
        Cómo crear un reproductor multimedia con Python
        y GTK
Fin



Muchas gracias!

Weitere ähnliche Inhalte

Was ist angesagt?

Gnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓNGnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓNJavi
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
 
Libro 4 presentación
Libro 4 presentaciónLibro 4 presentación
Libro 4 presentacióndavidcab
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduMicael Gallego
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loorselenap95
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema looryokyi
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loorgenyggp
 

Was ist angesagt? (13)

Gnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓNGnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓN
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
 
Libro 4 presentación
Libro 4 presentaciónLibro 4 presentación
Libro 4 presentación
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loor
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loor
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loor
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loor
 
Linux.
Linux.Linux.
Linux.
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loor
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loor
 
Ti gema loor
Ti gema loorTi gema loor
Ti gema loor
 

Ähnlich wie Introduccion al desarrollo con Launchpad

¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?Ernesto Crespo
 
1. Presentación e instalación de Python.pdf
1. Presentación e instalación de Python.pdf1. Presentación e instalación de Python.pdf
1. Presentación e instalación de Python.pdfJhonJairoMorenoDuart
 
Software Para Crear Clases Virtuales
Software Para Crear Clases VirtualesSoftware Para Crear Clases Virtuales
Software Para Crear Clases Virtualesdaniela
 
FLISOL 2012 @ UNQ - Software libre para programadores
FLISOL 2012 @ UNQ - Software libre para programadoresFLISOL 2012 @ UNQ - Software libre para programadores
FLISOL 2012 @ UNQ - Software libre para programadoresNahuel Garbezza
 
Preguntas y Respuestas 2
Preguntas y Respuestas 2Preguntas y Respuestas 2
Preguntas y Respuestas 2Fede Garcia
 
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...Erick Mireles Merchant
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3Diego Andrés Alvarez Marín
 
Quien es el programador
Quien es el programador Quien es el programador
Quien es el programador ricardojsal
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenIñaki Arenaza
 

Ähnlich wie Introduccion al desarrollo con Launchpad (20)

¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?
 
1. Presentación e instalación de Python.pdf
1. Presentación e instalación de Python.pdf1. Presentación e instalación de Python.pdf
1. Presentación e instalación de Python.pdf
 
Software Para Crear Clases Virtuales
Software Para Crear Clases VirtualesSoftware Para Crear Clases Virtuales
Software Para Crear Clases Virtuales
 
El proyecto openSUSE
El proyecto openSUSEEl proyecto openSUSE
El proyecto openSUSE
 
FLISOL 2012 @ UNQ - Software libre para programadores
FLISOL 2012 @ UNQ - Software libre para programadoresFLISOL 2012 @ UNQ - Software libre para programadores
FLISOL 2012 @ UNQ - Software libre para programadores
 
Preguntas y Respuestas 2
Preguntas y Respuestas 2Preguntas y Respuestas 2
Preguntas y Respuestas 2
 
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
Manual de-gestión-de-un-proyecto-de-software-en-una-herramienta-informática-l...
 
python
pythonpython
python
 
Python
PythonPython
Python
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3
 
Anjuta
AnjutaAnjuta
Anjuta
 
01 - Introducción al lenguaje C
01 - Introducción al lenguaje C01 - Introducción al lenguaje C
01 - Introducción al lenguaje C
 
Quien es el programador
Quien es el programador Quien es el programador
Quien es el programador
 
Libro4
Libro4Libro4
Libro4
 
Kubuntu - Aplicaciones
Kubuntu - AplicacionesKubuntu - Aplicaciones
Kubuntu - Aplicaciones
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirven
 
Presentacion
PresentacionPresentacion
Presentacion
 
Colaborar debian
Colaborar debianColaborar debian
Colaborar debian
 
Equivalencias i
Equivalencias iEquivalencias i
Equivalencias i
 

Introduccion al desarrollo con Launchpad

  • 1. Introducción al desarrollo con Denis Fuenzalida <denis.fuenzalida@gmail.com / @dfuenzal> 01 de Octubre 2011
  • 2. Acerca de mí ● Casi 10 años desarrollando aplicaciones [web] ● Primero programando en Perl, luego Java, Python … ultimamente Groovy y Ruby ● Usuario de Ubuntu desde 2005, colaborador esporádico (traducciones, foros, blog) ● Varios pequeños proyectos liberados en la web ● Actualmente, colaboro como editor en www.ManzanaMecanica.org
  • 3. Acerca de la audiencia ¿Conoces acerca del software libre? ¿Usuario de software libre? ¿Alguna experiencia en programación? ¿Usuario de Linux? ¿Debian? ¿Ubuntu?
  • 4. ¿Qué es Launchpad? ● Plataforma web para colaborar y alojar proyectos de Software Libre* ● Desarrollada para Ubuntu, pero funciona con todo tipo de proyectos ● www.launchpad.net * También hay suscripciones para proyectos de software cerrado desde 250 dólares/año
  • 5. Launchpad para colaboradores ● Por mi interés en mejorar un proyecto ● Averiguar cómo se realiza una tarea ● Reportar un bug para que sea corregido ● Solicitar que se agregue una funcionalidad a un programa ● Para que un proyecto esté disponible en mi idioma o en uno que yo conozco ● Ninguna de estas actividades requiere conocimientos de programación
  • 6. Launchpad para desarrolladores ● Por mi interés en crear o ayudar a completar un proyecto ● Desarrollar un programa nuevo ● Ayudar a programar a los desarrolladores de un proyecto ya existente ● Enviar una mejora a un proyecto que corrige un bug ● Para que un programa nuevo esté disponible para instalarse en Ubuntu con facilidad (desde el Centro de Software de Ubuntu)
  • 7. Servicios disponibles en LP ● Bugs ● Reporte y seguimiento de errores ● Answers ● Servicio de asistencia en línea ● Base de Conocimiento ● Blueprints ● Propuestas y especificación de nuevas funciones ● Translations ● Traducciones del software a docenas de idiomas ● Code ● Alojamiento de código ● Repositorios PPA
  • 8. Reporte y seguimiento de errores ● Los errores se pueden reportar desde la misma aplicación en la mayoría de los casos
  • 10. Reporte y seguimiento de errores
  • 11. Reporte y seguimiento de errores ● Suscribirse por mail a los cambios en un bug ● Marcar bugs como duplicados de otros ● Adjuntar archivos (videos, capturas de pantalla, logs) ● Adjuntar un parche que soluciona el problema ● Definir atributos ● Urgencia (desde “muy importante” → “bajo” y “no decidido”) ● Error o nueva funcionalidad (wishlist) ● Error ya está confirmado (triage) ● Se puede integrar con otros sistemas de otros equipos de desarrollo: Bugzilla, Trac, Sourceforge, Google Code ...
  • 14. Launchpad Blueprints ● Permite especificar ideas y tareas que se quieren implementar en un proyecto ● Se pueden usar para definir la orientación del proyecto, para ver en que etapa o hito se quiere completar una idea o funcionalidad
  • 15. Traducciones en Launchpad ● Una de las funciones más potentes ● No requiere conocimientos de programación (sólo inglés) ● Interfaz web ● Reutiliza traducciones desde otros proyectos ● Se puede configurar de forma completamente abierta o más restringida (equipos de traducción) ● Las traducciones se pueden descargar o integrar a una rama (branch) de código de forma automática
  • 18. Traducciones en Launchpad ● Se puede reutilizar traducciones similares de otros proyectos
  • 19. Alojamiento de código en LP ● Utiliza Bazaar (bazaar.canonical.com), pero se puede importar código de otras fuentes (Google Code, Sourceforge, SVN...) ● Desarollo distribuido (similar a Git, Mercurial, etc.) ● Se puede tener código personal/experimental y ramas de desarrollo oficiales de un proyecto ● Se puede operar con línea de comandos o con herramientas de escritorio (a-la TortoiseSVN...)
  • 20. Alojamiento y construcción de proyectos ● En Ubuntu (y en casi todas las distribuciones de Linux), los programas se instalan en forma de paquetes de software ● Paquete de software = Archivos + Metadatos ● Los metadatos indican: ● Sección del catálogo al que pertenece este programa o paquete (utilidades, oficina, web, juegos...) ● Dependencia en otros paquetes (y versiones) ● Pasos a seguir en la instalación (y desinstalación) ● Otros: Autor(es), licencia, página web, etc.
  • 21. Alojamiento y construcción de proyectos ● Los programas provienen de los repositorios en CD, DVD o de repositorios en línea ● Se pueden agregar repositorios llamados PPA (Personal Package Archive) que están alojados en Launchpad ● Centro de software → Editar → Orígenes del Software ● $ sudo add-apt-repository ppa:usuario/repositorio
  • 22. Alojamiento y construcción de proyectos ● Launchpad permite construir y distribuir programas que no forman parte de la distribución oficial de Ubuntu ● Sin problemas de hosting, ni de ancho de banda ● Permite generar paquetes de software firmados digitalmente y para diferentes procesadores (32 y 64 bits) ● Puedo crear versiones optimizadas de programas ya existentes, o empaquetar versiones más nuevas que las que están disponibles ahora o de programas ya no soportados
  • 23. Alojamiento y construcción de proyectos ● Se obtiene el código del proyecto y se prepara para que sea instalable ● Se agregan metadatos para que se pueda convertir en un paquete de software (debianización) ● Se sube a Launchpad para su construcción automática y despliegue en nuestro repositorio PPA
  • 24. Alojamiento y construcción de proyectos ● Se obtiene el código del proyecto y se prepara para que sea instalable $ git clone https://github.com/dfuenzalida/gedit-git-branch-statusbar $ mv gedit-git-branch-statusbar gedit-git-branch-statusbar-1.0 $ cd gedit-git-branch-statusbar-1.0 # Generar archivos para paquete .deb $ dh_make -c gpl -e denis.fuenzalida@gmail.com -s --createorig
  • 25. Alojamiento y construcción de proyectos ● Se agregan metadatos para que se pueda convertir en un paquete de software (debianización)
  • 26. Alojamiento y construcción de proyectos ● Se sube a LP para su construcción automática y despliegue en nuestro repositorio PPA # Creo un paquete de código fuente con mi firma digital $ debuild -S -sa -kADF0F1AD . . . Successfully signed dsc and changes files $ cd .. $ dput ppa:denis-fuenzalida/ppa gedit*.changes . . . Uploading to ppa (via ftp to ppa.launchpad.net): Uploading gedit-git-branch-statusbar_1.0-1.dsc: done. Uploading gedit-git-branch-statusbar_1.0.orig.tar.gz: done. Uploading gedit-git-branch-statusbar_1.0-1.debian.tar.gz: done. Uploading gedit-git-branch-statusbar_1.0-1_source.changes: done. Successfully uploaded packages.
  • 27. Alojamiento y construcción de proyectos ● Se sube a LP para su construcción automática y despliegue en nuestro repositorio PPA
  • 28. Alojamiento y construcción de proyectos ● Para que otros usuarios instalen los programas de nuestro PPA: ● Centro de Software de Ubuntu → Orígenes del software → Otro software
  • 29. Quickly ● Nueva herramienta para el desarrollo rápido de aplicaciones de escritorio ● Python, GTK, Gedit, Glade, Bazaar y Launchpad en un paquete más integrado ● Ver más en developer.ubuntu.com/get-started/
  • 30. Sitio de desarrolladores de Ubuntu ● Recién estrenado: developer.ubuntu.com ● Tutoriales sobre las tecnologías disponibles para desarrollo de aplicaciones ● Cómo crear un reproductor multimedia con Python y GTK