panorama de herramientas y buenas prácticas en el...

of 44 /44
1 Panorama de herramientas y buenas prácticas en el desarrollo de software Libre Manuel Dávila Sguerra [email protected] Grupo Linux S.A. Tel. 3132952 Bogotá

Author: haminh

Post on 02-Nov-2018

214 views

Category:

Documents


0 download

Embed Size (px)

TRANSCRIPT

  • 1

    Panorama de herramientas y buenasprcticas en el desarrollo de software

    Libre

    Manuel Dvila [email protected]

    Grupo Linux S.A.

    Tel. 3132952

    Bogot

  • XXVII Saln de Informtica - Septiembre'2007 2

    Contenido

    La Catedral y el Bazar de Erik Raymond El mundo del programador

    Momentos que se viven Liderazgo del gestor Relaciones con los terceros

    Sinergias que se crean alrededor Panorama de las herramientas preferidas Creando estndares muy bien definidos Repositorios de software libre

  • XXVII Saln de Informtica - Septiembre'2007 3

    La catedral y el Bazar de Erik Raymond

    Linux es subversivo. Quin hubierapensado hace apenas cinco aos que unsistema operativo de talla mundial surgira,como por arte de magia, gracias a laactividad hacker desplegada en ratos librespor varios miles de programadoresdiseminados en todo el planeta, conectadossolamente por los tenues hilos de laInternet? 1997

  • XXVII Saln de Informtica - Septiembre'2007 4

    Los intereses del programador

    Desarrollo propietario: nace de las necesidades delcliente

    Desarrollo libre: nace de las necesidades delprogramador

    Esto define la manera de atacar un problema Cambia las prioridades que se dan en los

    desarrollos Motivaciones: no predominan los intereses

    econmicos Pero estos no se descartan

  • XXVII Saln de Informtica - Septiembre'2007 5

    Reutilizacin de cdigo propio y de terceros

    Cobra un valor superlativo en el software libre Va ms all de las propias libreras, de aumentar

    la productividad, del mantenimiento futuro, de unnico sitio de solucin de los algoritmos

    Trasciende a la reutilizacin del cdigo de otros A los hackers se les identifica por su vanidad

    excesiva, pero no sienten pena de reutilzar elcdigo de otros

    Buscar el camino ms fcil es un sntoma deinteligencia. Lo pregona Linus Torvalds

  • XXVII Saln de Informtica - Septiembre'2007 6

    Problemas de consciencia

    Caminos tormentosos Hay veces en que la mejor solucin es la de

    desechar Botar al cesto de la basura lo realizado Recomensar Es un momento de reconciliacin con uno mismo Beneficioso para el espritu y para el proyecto.

    Como perdonar

  • XXVII Saln de Informtica - Septiembre'2007 7

    Todo debe ser interesante

    Trabajo de alto nivel de abstraccin Actividad de comportamiento humano (Complejo)? No al sndrome de querer terminar Como un escritor: solo le interesa el prrafo actual Al programador solo le debe interesar el mdulo

    actual Las dificultades no son problema para resolver Son momentos de recreacin De diversin intelectual Libertad: sensacin cercana a la felicidad, Jiddu

    Krishnamurti

  • XXVII Saln de Informtica - Septiembre'2007 8

    Del inters por el proyecto al inters por quese lleve a cabo

    El gestor ejerce un liderazgo en el proyecto Liderzgo no autoritario Motivaciones: Seguir al lder, ser su coautor,aprender Si el lder pierde el inters por el proyecto este setransmitir Es un momento en el cual debe heredar elproyecto Nombrar un sucesor que sea consideradocompetente No hacerlo es acabar con el proyecto.

  • XXVII Saln de Informtica - Septiembre'2007 9

    La transformacin de los clientes a colaboradores

    En el mundo propietario cliente el lo ms cercanoun jefe, hay jefes buenos y jefes malos

    Relaciones programador - cliente Se pueden deteriorar y hacerle dao al proyecto En el software libre el cliente es el colaborador Es un socio permanente Un potencial coautor No es quien le reclama por un error Es quien le ayuda a detectarlo Es quien de manera gratuita conforma su equipo

    de pruebas

  • XXVII Saln de Informtica - Septiembre'2007 10

    Software a la medida

    Cortesa de:Manuel Dvila yJairo Rueda

  • XXVII Saln de Informtica - Septiembre'2007 11

    El error como un elemento de oportunidad

    El error es parte de la naturaleza del software Es un factor humano que siempre estar presente Su aparicin no golpea la vanidad del programador Da oportunidades a los colaboradores Ser aceptado dignamente como un coautor

    apreciado, reconocer y escuchar las opiniones delos colaboradores

    Psicologa del programador de Gerald Weimberg:Programacin sin ego. Cuando no hay propiedaddel cdigo y se estimula la bsqueda de loserrores y el avance es ms rpido.

  • XXVII Saln de Informtica - Septiembre'2007 12

    Cortesa de:Manuel Dvila yJairo Rueda

  • XXVII Saln de Informtica - Septiembre'2007 13

    Proyectos Beta permanentes

    El desarrollo de software no es un trabajo terminal Es un proceso permanente, su estado preferido es

    el beta Debe liberar versiones frecuentemente No hacerlo es transmitir desinters por parte de

    lder O abandono por parte de los coautores Se da si se escucha a los colaboradores No olvidar que son beta-testers

  • XXVII Saln de Informtica - Septiembre'2007 14

    Cortesa de:Manuel Dvila yJairo Rueda

  • XXVII Saln de Informtica - Septiembre'2007 15

    Ensame tu cdigo y te dir quin eres

    Exponer las facetas de la personalidad Weimberg: un algoritmo es resuelto de formas

    diferentes, es una expresin de la personalidad

    En el software propietario el cdigo fuente pocose expone, en el libre esta sujeto a estaexposicin de si mismo

    Rasmus Lerdorf el creador del lenguaje php:La comunidad de desarrolladores acepta orechaza, es una decisin de tipo social Raymond: Dime cmo son las estructurasinteligentes de tus datos y te dir quin eres

  • XXVII Saln de Informtica - Septiembre'2007 16

    La experiencia:archivo de errores bien organizado

    Usar los errores en el proceso de aprendizaje En investigacin aplicada se est de buenas si no

    funciona, de malas si funciona en el primer intento El esfuerzo para resolver el problema: aprendizaje En el software ha veces es preferible recomensar

    sobre todo si la concepcin del problema es errada Antoine De Saint-Exupry en el Principito: "La

    perfeccin se alcanza no cuando ya no hay nadaque agregar, sino cuando ya no hay algo quequitar

  • XXVII Saln de Informtica - Septiembre'2007 17

    Muchas ms premisas

    El comportamiento de los colaboradores Relaciones no basadas en las luchas de poder Inexistencia de acciones coercitivas

    Actuar bajo las normas del entendimiento No las del autoritarismo Identificar voluntades convergentes Motivaciones ms all de lo econmico

    La satisfaccin personal, ms halla del deber Es vlido actuar por ego si los resultados son

    exitosos

  • XXVII Saln de Informtica - Septiembre'2007 18

    El acrnimo LAM

    El acrnimo LAMP se refiere a un conjunto desubsistemas de software necesarios paraalcanzar una solucin global, en este casoconfigurar sitios web o servidores dinmicos conun esfuerzo reducido

    En las tecnologas LAMP esto se consiguemediante la unin de las siguientes tecnologas:Linux, Apache, MySQL, Php

    C, C++, Python

  • XXVII Saln de Informtica - Septiembre'2007 19

    Entornos, herramientas y sistemas

    El mundo del software libre es conservador en:lenguajes, herramientas y entornos

    Plataformas difundidas: C, C++,Java, Python,Php, Perl

    Cualquiera las puede usar

    Necesitan mquinas econmicas El modelo de desarrollo es distribuido en todo el

    mundo Preferencia por herramientas de colaboracin

    asincrnicas

  • XXVII Saln de Informtica - Septiembre'2007 20

    Tendencias

    Tiobe: http://www.tiobe.com/tpci.htm Google: http://www.google.com/trends

  • XXVII Saln de Informtica - Septiembre'2007 21

    Tendencias tiobe.com

  • XXVII Saln de Informtica - Septiembre'2007 22

    Tendencias-1 google.com

  • XXVII Saln de Informtica - Septiembre'2007 23

    Tendencias-2 google.com

  • XXVII Saln de Informtica - Septiembre'2007 24

    Construccin de programas dados los fuentes

    Make Especifica rboles de dependencias entre

    archivos: x.o depende de los archivos x.c y x.h Cuando se modifica un fuente y luego se ejecuta

    make, se recompilarn solamente los mdulosafectados y se volver a montar el objeto final

    Es muy complicado y muy dependiente deentornos tipo Unix

    Otras alternativas: ant

  • XXVII Saln de Informtica - Septiembre'2007 25

    Herramientas para hacer porttiles a los programas:

    Autoconf: Herramienta para producir shell scriptsque configura paquetes desde el cdigo fuentepara adaptarlos a sistemas tipo Unix produciendoscripts independientes.

    Usa el macro procesador m4 para transformasarchivos del tipo configure.ac en un script portable.

    Automake: herramienta de programacin paraproducir archivos portables para ser usados pormake

  • XXVII Saln de Informtica - Septiembre'2007 26

    Compresin y descompresin

    Compresin: tar cvf paquete-1.2.1.tar paquete Crea: paquete-1.2.1.tar Compresin: gzip paquete-1.2.1.tar Crea: paquete-1.2.1.tar.gz Compilar con make: Programa recibido: tar xzvf paquete-1.2.2.tar.gz Crear el directorio: paquete.1.2.2/ Entrar al directorio: cd paquete-1.2.1 ./configure make make install

  • XXVII Saln de Informtica - Septiembre'2007 27

    Colaboracin

    1970: uucp para transferencia de archivos Unix 1979: el primer enlace USENET sobre UUCP news (noticias) de USENET, foros temticos estructurados jerarquicamente 1981: BITNET (1981) Hoy: listas de correo como mailman, majordomo Foros Web o weblogs: barrapunto para noticias Wikis: media wiki, moin moin Chats: IRC Internet Relay Chat canales

    temticos, no son comunes por sincrniaMultimedia: no son comunes por disponibilidad

  • XXVII Saln de Informtica - Septiembre'2007 28

    Sistemas de control de versiones:cvs, subversion

  • XXVII Saln de Informtica - Septiembre'2007 29

    Herramientas cvs

    Eclipse: http://www.eclipse.org/ Cvsweb:

    http://www.freebsd.org/projects/cvsweb.html Wincvs: http://www.wincvs.org/

  • XXVII Saln de Informtica - Septiembre'2007 30

    cvs y el administrador del desarrollo

    Debe manejar permisos, coordinar desarrolladores Definir nmeros de versiones Crear ramas para versiones estndar y

    experimentales Mezclar ramas Facilitar la coordinacin del equipo: Mecanismos automticos: correo electrnicos por eventos, forzar a acciones automticas antes de realizar un compromiso, como comprobaciones automticas de estilo, compilaciones o pruebas.

  • XXVII Saln de Informtica - Septiembre'2007 31

    CVS usando Eclipse

  • XXVII Saln de Informtica - Septiembre'2007 32

    cvs usando cvsweb

  • XXVII Saln de Informtica - Septiembre'2007 33

    cvs usando cvsgraph

  • XXVII Saln de Informtica - Septiembre'2007 34

    Editor de texto gedit

  • XXVII Saln de Informtica - Septiembre'2007 35

    Editor de texto vim

  • XXVII Saln de Informtica - Septiembre'2007 36

    Editor de texto Blue Fish

  • XXVII Saln de Informtica - Septiembre'2007 37

    Todos los editores

  • XXVII Saln de Informtica - Septiembre'2007 38

    Sitios de soporte de desarrollo

    sourceforge.net Pginas estticas o dinmicas, CGI's con MySQL Sesiones remotas usando ssh cvs Foros, listas de correos,Noticias, rastreadores de

    errores Gestores de tareas para definir subproyectos para

    los desarrolladores Servicio de transporte de paquetes de software Publicacin de documentos en HTML Backup

  • XXVII Saln de Informtica - Septiembre'2007 39

    Punto de entrada a bluefish en sourceforge

  • XXVII Saln de Informtica - Septiembre'2007 40

    Area pblica bluefish en sourceforge.net

  • XXVII Saln de Informtica - Septiembre'2007 41

    cvs de bluefish en sourceforge.net

  • XXVII Saln de Informtica - Septiembre'2007 42

    Directorio programas fuente bluefish ensourceforge.net

  • XXVII Saln de Informtica - Septiembre'2007 43

    Los fuentes de bluefish en sourceforge.net

  • XXVII Saln de Informtica - Septiembre'2007 44

    Conclusiones

    Los grupos de trabajo han creado reglas de tiposocial

    La decisin de trabajar en un proyecto es libreconlleva circunstancias diferentes a lo tradicional

    Hay un lder Se debe tener una actitud para exponer su cdigo La herramientas son conservadoras El trabajo de grupo tiene un alto componente

    relacionado con el factor humano Las motivaciones son de ndole personal Los resultados son de ndole social y econmico