Aplicaciones en Ambientes Libres

Escuela Politécnica Nacional

Bienvenidos!

Septiembre 2015

Ing. Adrián Égüez

La mayoría de proyectos de software libre Fracasan

No es por no viable, sino por haberlo simplemente dejado ahí

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Un error es tener, expectativas desproporcionadas de un proyecto de software libre

No por ser codigo abierto se obtiene Legiones de programadores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Termina cuando no se actualiza?, Falta Usuarios? Falta Programadores? Migran a otro Proyecto?

En principio es mas costoso, programadores, documentacion

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La fuente abierta anda, pero no es definitivamente la panacea. Hay que advertir

con cautela que no se puede encarar un proyecto moribundo, rociarlo con el polvo

mágico de la #fuente abierta# y tener de repente todo en funcionamiento. El software

es difícil. Las cosas no son tan simples.

Jaime Zawinsky

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La documentación y el empaquetado no son tomados en cuenta

Software abierto son muchos programadores que tal vez no se conozcan nunca, ¿Que pasa si no tienen dirección?

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Va a haber problemas, y hay que saber enfrentarlos culturalmente con todos los involucrados

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Desde el principio del software, los desarrolladores compartian sus mejoras de codigo con los fabricantes

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

No hubo estandarizacion

No habia el internet que conocemos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Se podia compilar y desplegar en otras maquinas

Pero con el tiempo, las mejoras, ya no se podian compartir

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Resistencia con Richard Stallman

No le llamábamos software libre a nuestro software porque ese término no existía; pero era precisamente eso. Toda vez que alguien de otra universidad quería llevar y usar un programa, nosotros se lo ofrecíamos con gusto. Si se veía que alguien usaba un programa distinto e interesante, se le podía pedir el código fuente, para poder leerlo, cambiarlo o fusionar partes de él en un programa nuevo.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

No se podia ayudar al vecino, la comunidad de cooperacion estaba prohibida, si compartes, eres un pirata

Richard comenzo el proyecto GNU y La Fundacion de Software Libre FSF en ingles

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Sistema Operativo con Aplicaciones Libres y Abiertas y que nunca se pueda dejar de compartir o ayudar

Nace la Licencia GNU 

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los códigos pueden ser copiados y modificados sin ninguna restricción y que ambas copias y trabajos derivados (a saber, las versiones modificadas) deben ser distribuidas bajo la misma licencia que el original, sin poner restricciones adicionales.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Licencia GNU

El nucleo del sistema operativo estaba muy dificil de implementar, Linus Torvalds, estudiante de fisica, lo hizo y lo llamo Linux

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Nacen Proyectos como el BSD de Berkley, X Window System de MIT, TeX Donald Knuth

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

En los 80 habia ya bastantes proyectos libres, de buena calidad y que cumplian tecnicamente su objetivo

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Libre vs Abierto

Los navegadores netscape e internet explorer eran un ejemplo de esto, eran libres, se podia tener una copia, pero no modificarlo

En ingles hubo confusion: "Es libre (free) como la libertad, no como la cerveza gratis (free)"

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Libre vs Abierto

En 1998 nace el termino Open Source OSI, para diferenciar estas confuciones

Se buscaba que el software libre sea tambien de caracter aceptable en los negocios

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Las personas deben sentir que su conexión con un proyecto, y su influencia sobre él, es directamente proporcional a sus contribuciones.

Ningún desarrollador, real o potencial, debe sentir que no es tenido en cuenta o es discriminado por razones que no sean técnicas.

Primeros Pasos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Todos los trabajos grandes de software libre han comenzado tratando de paliar un problema personal de quien los programa

Primeros Pasos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El software libre es como la medicina, se debe de tener una enfermedad y una medicina, y gente que quiera ayudar a mejorar la medicina

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los usuarios y los Desarrolladores no deben de estar en conflicto

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La apariencia importa, La primera vista (pagina web del proyecto) da mucho que pensar del mismo.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Siempre investigar si existe un proyecto similar a lo que necesitas

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Siempre investigar si existe un proyecto similar a lo que necesitas http://freecode.com/ - http://directory.fsf.org - http://directory.fsf.org/wiki/Main_Page

Si no se encuentra nada parecido, Expresar la idea privada, al publico

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Que se puede, y que no se puede hacer

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Trabajo duro y dificil, Empaquetar el proyecto al publico

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El objetivo es que los nuevos desarrolladores o usuarios entiendan lo ya hecho

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Escoja muy bien el nombre, que hace, facil de recordar, es unico, disponible en un nombre de dominio

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Objetivos claros, sencillos y cortos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Crear, como una comunidad, una suite ofimática líder a nivel internacional, que funcione en las mayores plataformas y proporcionar acceso a toda la funcionalidad y datos a través de API's basadas en componentes abiertos y un formato de ficheros basado en XML.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Open Office

Declarar claramente y visiblemente que el proyecto es Open Source

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Características del Software, lo hecho, lo planeado, y lo en progreso

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Características

• Búsquedas en texto plano, HTML y XML

• Búsqueda de palabras o frases

• (planeado) Emparejando borroso (Fuzzy Matching)

• (planeado) Actualización incremental de índices

• (planeado) Indexado de sitios web remotos

Requerimientos:

• Python 2.2 o mayor

• Espacio en disco suficiente para contener los índices (aproximadamente 2x eltamaño original de los datos)

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Estado del software, beta con errores, alpha etc.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El software debe poder ser descargable

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Metodos de compilacion e instalacion estandar

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Versionamiento y rastreo - registro de Errores y peticiones de mejoras

Escuela Politécnica Nacional

Ing. Adrián Égüez

Se debe de suminstrar buenos canales de comunicacion como direcciones de listas de correo, salas de chat, canales en IRC

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Si alguien quiere ayudar, buscará pautas de desarrollo donde se explican cómo los desarrolladores interactúan

1) Entre ellos

2) Con los usuarios

3) Cómo hacer las cosas.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

• Enlaces a los foros para la interacción de los desarrolladores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

• Instrucciones en cómo reportar fallos y enviar parches

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

• Alguna indicación de cómo el desarrollo es usualmente llevado a cabo:

¿Es el proyecto una dictadura benevolente , una democracia o algo más?

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Ejemplos de pautas:

 http://subversion.apache.org/docs/community-guide/
http://www.openoffice.org/dev_docs/guidelines.html

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La documentación,  nunca está terminada realmente

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Lo Básico: Cómo configurar la aplicación, una introducción de cómo funciona y quizás algunas guías para realizar las tareas más comunes

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La mayoría de la documentación está escrita por quienes saben cómo funcionan las cosas, pero en algún momento necesitaran un usuario prueba

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Limitar el alcance de la Documentación, el nivel técnico necesitado,  documentación extensiva de cómo configurar y ejecutar 

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Tutorial de tareas comunes, indicar que documentacion esta incompleta, mantener un FAQ

Documentacion en Linea y cuando se descargue el ejecutable

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Documentacion Desarrolladores

Ayudar a los programadores a entender el

código y puedan arreglarlo o extenderlo

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Documentacion Desarrolladores

Priorizar la documentacion de los Usuarios de la de los Desarrolladores, los Desarrolladores tambien son usuarios

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Documentacion Desarrolladores

Una captura vale mas que mil palabras

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Documentacion Desarrolladores

Otras cosas que tomar en mente pueden ser: página de noticias, historia, enlaces relacionados,

función de búsqueda, enlace para donaciones, etc

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Infraestructura para proyectos open source: un área web, control de versiones, gestor de errores, zona de descargas, salas de chat, backups regulares, etc.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Licencia para que no se utilice su software en software propietario: GPL

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Al dar a conocer una licencia solo debemos dar el nombre y un link a los detalles del mismo.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Estándar: texto en un fichero llamado LICENSE  al principio de cada fichero con el código fuente, listando la fecha del copyright, titular y licencia y explicando donde encontrar el texto completo de la misma.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Copyright (C) <year> <name of author>

 

This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.

 

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Ejemplo de una Licencia

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Tareas dinamica del equipo

Hacer sentir al equipo que esta en un cuarto lleno de desarrolladores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Tareas dinamica del equipo

Evitar conversaciones privadas, Tomar decisiones importantes en privado es como esparcir repelente anti-voluntarios sobre el proyecto.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Tareas dinamica del equipo

Las discuciones publicas ayudaran a los nuevos desarrolladores, entrenamiento para explicar temas tecnicos a usuarios no tecnicos, evita caer en los mismos problemas al tener un respaldo publico

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Tareas dinamica del equipo

El grupo es siempre más listo que el individuo

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Tareas dinamica del equipo

Si no existe razón alguna para que sea privada, debe ser pública.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Tolerancia cero a la Mala educacion: nunca permitir que este tipo de conductas pasen desapercibidas.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Hay una corta distancia entre llamar la propuesta técnica de alguien estúpida y llamar a esa persona estúpida

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Si se da, envía un mensaje que remarque la importancia de mantener la discusión amistosa

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Primero, vamos a dejar a un lado los comentarios (potenciales) ad hominem por favor; por ejemplo, decir que el diseño para la capa de seguridad de J es "simple e ignorante de los principios de la seguridad informática." Quizás sea cierto o no, pero en cualquier caso no es la manera de mantener una discusión. J hizo su propuesta de buena fe y estoy seguro de que M no deseaba insultar a J, pero las maneras han sido inadecuadas y lo único que deseamos es mantener las cosas constructivas. Ahora, vamos con la propuesta de J. Creo que J tenía razón en decir que...

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Fomentar una comunidad productiva de desarrollo es hacer que cada uno pueda ver el código de los demás, para eso estan los correo de avisos de cambios, donde la comunidad puede probar y recomendar mejoras

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Mejora la calidad del software, la gente realizara el código de una mejor manera al recibir un feedback

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Si se abre un proyecto cerrado a la comunidad, se debe de conocer los cambios que ameritan como: personas desconocidas pidiendo mejor ducumentacion, encontrando errores, haciendo preguntas, etc. Y debe de estar preparado para esto.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Siempre se enseña con el ejemplo

Si el proyecto esta presentable se debe de subir a paginas como http://sourceforge.net/

Escuela Politécnica Nacional

Ing. Adrián Égüez

No siempre se debe de empezar con codigo funcional, se puede empezar a tener colaboradores desde el diseño

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Todas las comunicaciones en los proyectos open source suceden por escrito

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Enrutar y etiquetar apropiadamente los datos, para minimizar las repeticiones de forma que se eviten divergencias , para almacenar y buscar los datos, para corregir información incorrecta u obsoleta y para asociar bits dispares de información con cada uno mientras que nuevas conexiones son observadas

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Lo que necesita un proyecto

  • Sito Web
  • Lista de Correos
  • Control de Versiones
  • Gestión de fallos
  • Chat en tiempo real

No intentes dirigir las listas de correo a mano, consigue un software de manejo de listas.

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Lo que necesita un proyecto

Suscripción a través de correos o basada en web

Suscripción al modo de resúmenes o al modo de mensaje por mensaje

Respuesta automática solo a suscriptores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Lo que necesita un proyecto

Características para la moderación

Interfaz Administrativa, Filtro anti spam

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Commit: Realizar un cambio en el proyecto.

Mensaje de registro: Un pequeño comentario

Update: Solicitar los cambios

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Repositorio: Una base de datos en la que los cambios son almacenados.

Checkout: El proceso de obtener una copia del proyecto desde el repositorio.

Revisión, cambio, conjunto de cambios: Una revisión es usualmente un fichero o directorio en particular.

Diff: Una representación contextual de un cambio.

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Etiqueta (tag): Una etiqueta para una colección particular de ficheros en una revisión específica

Rama (branch): Es una copia del proyecto, bajo el control de versiones, pero aislado

Merge: Mover un cambio de una rama a otra

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Conflicto: Sucede cuando dos o más personas intentan realizar diferentes cambios en la misma porción de código.

Bloqueo (lock): Declaración de un intento exclusivo para cambiar un fichero o directorio en particular

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Versiones de Todo, Pagina Web, Documentacion, FAQ, Notas de Diseno , etc

Solo mantener versiones de lo que se pueda versionar

Debe estar en Linea

Notificaciones y correos cuando sucedan cambios

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Las ramas son lugares aislados para probar el codigo con otros del grupo

Las ramas deben de existir por el tiempo necesario, ni mas ni menos

Tener cuidado con hacer commits de diferentes ramas iguales

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Permisos para que solo hagan lo que tienen que hacer, esto difiere con cada software de versionamiento

Existe la politica del honor, en los cambios

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los propios usuarios si ven algo raro diran algo y podran corregir esos errores

La politica del honor da un ambiente de respeto y confianza mutua.

Tener cuidado con hacer commits de diferentes ramas iguales

Control Version

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Se debe de saber a que se le va a dar seguimiento

1) Se crea una entrada de Issues con la posibilidad de recrear el error, entra como estado de abierto

2) Comentarios y dudas acerca del error

Control Errores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

3) Alguien recrea el fallo, haciendo a esta entrada en un error real contribuyendo al proyecto

4) El fallo es diagnosticado, y es medido el esfuerzo en repararlo, hay que tener en cuenta de pedir o asginar este error a alguien

Control Errores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

5) La entrada es programada para su resolucion, para que lanzamiento debe estar corregido

6) El fallo es corregido, se registran con comentarios y se cambia el estado a cerrado

Control Errores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La entrada puede ser un duplicado y ser cerrada de principio, con su comentario y referenciando el issue 

Se cierra porque no es posible reproducir el error y a veces es reabierta por usuarios o desarrolladores

Los cambios pueden o deben de ser comunicados

Control Errores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La lista de correos no es un chat

Es un archivador para referenciar, organizar y comunicar

Fallos duplicados por usuarios bien intensionados, con un aviso de cuand un bug es un bug, etc. ayuda

Control Errores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

A pesar que se siguen dando fallos, hay que alentar a los usuarios a participar en el proyecto

Gente con el conocimiento para poder cerrar o administrar los fallos

Otra forma de corregir es dirigir el problema a un canal IRC o una lista de correos, si lleguno de esto se debe de responder al usuario, clasificar y si no es claro cerrarlo

Control Errores

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Podemos levantar un chat real, o apoyarnos en freenode.net

Para comunicar a los nuevos usuarios del chat se debe de enviar que canales son para que cosas en el topico del canal

Se tiene bots para que respondan mensajes comunes dentro del chat

IRC Chat en Tiempo Real

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El Bot nos ayuda respondiendo comandos a ciertos usuarios

Se puede registrar los chats dentro del IRC

IRC Chat en Tiempo Real

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Permite a cualquier visitante editar o extender su contenido

El término"wiki" (una palabra Hawaiana que significa "rápido" o "super-rápido") también es usado para laaplicación que permite este tipo de edición. Los wikis fueron inventados en 1995, pero su popularidadalzo vuelo a partir del año 2000 o 2001, impulsado parcialmente por el éxito de la Wikipedia (http://www.wikipedia.org/),

Los Wikis sufren de faltas de principios de Navegacion

Wiki

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Informacion duplicada

Audiencia Inconsciente

Estrategia: Tener estándares editoriales y mostrarlos no sólo publicándolos sino que editando paginas y adheriendose a estos

Wiki

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Visión general clara y unir las otras herramientas

Se puede utilizar soluciones pre elaboradas, pero se debe de atener a sus reglas

Se pueden desplegar en otros formatos como PDF y faciles de mantener

Sitio Web

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Informacion duplicada

Audiencia Inconsciente

Estrategia: Tener estándares editoriales y mostrarlos no sólo publicándolos sino que editando paginas y adheriendose a estos

Sitio Web

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Made with Slides.com