Escuela Politécnica Nacional
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í
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
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
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
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?
Escuela Politécnica Nacional
Ing. Adrián Égüez
Va a haber problemas, y hay que saber enfrentarlos culturalmente con todos los involucrados
Escuela Politécnica Nacional
Ing. Adrián Égüez
Desde el principio del software, los desarrolladores compartian sus mejoras de codigo con los fabricantes
Escuela Politécnica Nacional
Ing. Adrián Égüez
No hubo estandarizacion
No habia el internet que conocemos
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
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.
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
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
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.
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Nacen Proyectos como el BSD de Berkley, X Window System de MIT, TeX Donald Knuth
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
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)"
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
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
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
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Los usuarios y los Desarrolladores no deben de estar en conflicto
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.
Escuela Politécnica Nacional
Ing. Adrián Égüez
Siempre investigar si existe un proyecto similar a lo que necesitas
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Que se puede, y que no se puede hacer
Escuela Politécnica Nacional
Ing. Adrián Égüez
Trabajo duro y dificil, Empaquetar el proyecto al publico
Escuela Politécnica Nacional
Ing. Adrián Égüez
El objetivo es que los nuevos desarrolladores o usuarios entiendan lo ya hecho
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Objetivos claros, sencillos y cortos
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.
Escuela Politécnica Nacional
Ing. Adrián Égüez
Open Office
Declarar claramente y visiblemente que el proyecto es Open Source
Escuela Politécnica Nacional
Ing. Adrián Égüez
Características del Software, lo hecho, lo planeado, y lo en progreso
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)
Escuela Politécnica Nacional
Ing. Adrián Égüez
Estado del software, beta con errores, alpha etc.
Escuela Politécnica Nacional
Ing. Adrián Égüez
El software debe poder ser descargable
Escuela Politécnica Nacional
Ing. Adrián Égüez
Metodos de compilacion e instalacion estandar
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
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.
Escuela Politécnica Nacional
Ing. Adrián Égüez
• Enlaces a los foros para la interacción de los desarrolladores
Escuela Politécnica Nacional
Ing. Adrián Égüez
• Instrucciones en cómo reportar fallos y enviar parches
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?
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
La documentación, nunca está terminada realmente
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
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
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
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Ayudar a los programadores a entender el
código y puedan arreglarlo o extenderlo
Escuela Politécnica Nacional
Ing. Adrián Égüez
Priorizar la documentacion de los Usuarios de la de los Desarrolladores, los Desarrolladores tambien son usuarios
Escuela Politécnica Nacional
Ing. Adrián Égüez
Una captura vale mas que mil palabras
Escuela Politécnica Nacional
Ing. Adrián Égüez
Otras cosas que tomar en mente pueden ser: página de noticias, historia, enlaces relacionados,
función de búsqueda, enlace para donaciones, etc
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.
Escuela Politécnica Nacional
Ing. Adrián Égüez
Licencia para que no se utilice su software en software propietario: GPL
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.
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.
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
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
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.
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Tareas dinamica del equipo
El grupo es siempre más listo que el individuo
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.
Escuela Politécnica Nacional
Ing. Adrián Égüez
Tolerancia cero a la Mala educacion: nunca permitir que este tipo de conductas pasen desapercibidas.
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
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
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...
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
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
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.
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Todas las comunicaciones en los proyectos open source suceden por escrito
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
No intentes dirigir las listas de correo a mano, consigue un software de manejo de listas.
Escuela Politécnica Nacional
Ing. Adrián Égüez
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
Escuela Politécnica Nacional
Ing. Adrián Égüez
Características para la moderación
Interfaz Administrativa, Filtro anti spam
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Escuela Politécnica Nacional
Ing. Adrián Égüez