Archive for 23 abril 2007

Proyecto de Sistema en Software Libre

abril 23, 2007

En el Segundo Forum de Ciencia y Técnica de la Rama del Comercio Exterior presenté este trabajo que mereció una mensión. Aquí les muestro el resumen del trabajo

La actividad de nuestras empresas requiere de la automatización de la gestión de los Recursos Humanos para lograr ser eficientes y dar respuestas a las necesidades operativas en general. Actualmente se cuenta con sistemas que lo implementan de forma insuficiente. Se propone un proyecto que da respuesta a la creación de un sistema que responde a esta necesidad y que será el punto de partida para la creación de otras aplicaciones que respondan a las necesidades y requerimientos de las entidades. Se presenta un análisis de la situación actual para enfrentar este proyecto.

Autores: Lourdes Odilia Moya Campos, Ernesto Freyre González y Alexander Cordero Pérez

Proximamente el trabajo será publicado integramente junto a los demas expuestos. Les haré llegar un enlace a los mismos.

Anuncios

Sistema de Control de Versiones

abril 4, 2007

Sistemas de Control de Versiones

Conferencia de Software Libre
Por Alfonso Alí
27 de marzo del 2007

En esta conferencia se abordó los sistemas de control de versiones Subversión y CVS

Trabajo colaborativo de manera coordinada:
1. Subversión
2. Proyecto de aplicación
3. Aplicaciones.

Se comentó sobre la forma de controlar las versiones de una aplicación durante su gestación. Esta es una actividad fundamental durante el desarrollo de cualquier proyecto. Usualmente se hace almacenando copias del sistema junto a comentarios de los cambios hechos. Esto es ineficiente y se puede cometer errores como sobrescribir el trabajo de otros. Este método fue calificado como primitivo.

Los sistemas de control de versiones permiten el seguimiento, mantenimiento y almacenamiento de la historia de cambios en los códigos fuentes de un proyecto. Proporciona facilidades de combinar cambios de múltiples personas.

Beneficios:
• Integridad de datos
• Productividad
• Identificabilidad
• Desarrollo colateral
• Distribución del trabajo

Elementos:
• Repositorio: Contiene todo el proyecto
• Directorios de trabajo: Copia sobre la cual trabaja la persona.
• Revisiones: Cambios realizados en el proyecto en un momento determinado.
• Logs: Documentación de los cambios y detalles extras.
• Marcas (Tags): Nombre de una etapa de proyecto.
• Ramas (Branches): Vida paralela. Versiones de un proyecto que se llevan paralelos.

Ejemplos:
Centralizados: RCS, CVS
Distribuidos: SVK, Arch, Darc, Git, Monotone

Subversion:
• Similar a CVS
• Superior al CVS, mejorado.
• Commits atómicos, o sea al realizar actualizaciones en el proyecto estas se guardan completamente o no se guardan en caso de ocurrir alguna interrupción.
• Usa http como vía de acceso.
• Scripts de acciones
• API

Tareas básicas:
• Crear repositorio (svnadmin create)
• Crear proyecto (svn import)
• Obtener ficheros (svn co)
• Determinar que ha cambiado (svn status, svn diff)
• Actualizar copia de trabajo (svn update)
• Actualizar repositorio (svn commit)
• Resolver conflictos (svn resolve)
• Añadir fichero (svn add)
• Borrar fichero (svn del)

Carpetas del repositorio:
Trunk: Línea principal o tronco del proyecto
Tags: Puntos en la historia del proyecto
Branche: Rama del proyecto

Sistema de control de versiones SVK
Es más efectivo que otros sistemas si no contamos con una buena conexión permanente. Es un sistema distribuido. Hace sincronización cuando hay conexión. Este será el sistema que se empleará en el curso. La combinación entre ramas es muy fácil.

Comandos:
Como comandos básicos tiene los mismos del Subversión. Además,
Iniciar depósito: svk depotmat –init
Hacer el mirror: svk mirror http://repo//repo
Sincronizar mirror: svk sync//repo
Crear una rama local: svk cp//repo// local//repo
Incorporar cambios a la rama local: svk smerge –l //repo //local/repo
Incorporar cambios al repo: svk smerge –l //local/repo //repo
-l esta opción incorpora automáticamente los mensajes echos.

Manejo de patch
Se crean igual pero con –p
Crear un patch: svk smerge –p mipatch //local/repo //repo
Ver match creados: svk match –list
Obtener un patch determinado: svk patch –view mipatch
Actualizar patch: svk patch –update mipatch
Recrear un patch: svk –regen mipatch

Leer más sobre este tema:
Control de versiones

Introducción a los sistemas de control de versiones

Control de Versiones con Subversion

Se hizo un aparte recomendando la lectura de la “La catedral y el Bazar” de Eric S. Raymond. Un ensayo a favor del software libre. Este es un espaldarazo a la necesidad del empleo de este tipo de sistemas de control de versiones.

Y otro artículo sobre este con una crítica al ensayo. (Ver artículo)

Se introdujo el futuro proyecto que será desarrollado en el curso como ejercicio práctico. Este será argumentado más adelante.

Manual de Python

abril 2, 2007

Para los interesados en el curso se dió esta dirección de un manual de Python para ser estudiado por todos. Aquellos que se interesen en la programación y especialmente en hacerlo con Python aquí tienen una buena documentación.
Manual de Python