Tidal nace en Software Libre

mayo 30, 2007

El Proyecto Tidal es una propuesta del Licenciado Ernesto Freyre. Siguiendo el concepto de Larga Cola (Long Tail) instrumentará un repositorio de documentos que será beneficioso para todo proyecto de gestión. Además de lo clásico: subir documento y bajar documento, se incluirá el control de versiones del documento, las revisiones que ha tenido el documento, clasificaciones usando etiquetas, copias del documento, mezclas de documentos, nuevos documentos, etc.

Es un proyecto instrumentado en el framework Django. Se puede descargar el proyecto empleando cualquier cliente de Subversión. Pueden poner en práctica el uso del TortoiseSVN. De hecho es lo que utilizo, su manejo es muy simple.

Sin lugar a dudas se te ocurrirán miles de usos para esta herramienta. La mejor explicación sobre el proyecto la da la wiki del mismo.

La Tortuga se mueve

mayo 28, 2007

Anteriormente les hable de TortoiseSVN. Ya la he puesto en práctica para comenzar a hacer mis primeros trabajos siguiendo la filosofía de trabajo colaborativo. Los amantes del Software Libre prefieren no mezclarse con nada de Software Propietario. Para mis necesidades he encontrado la posibilidad de aplicar estas herramientas en mi plataforma Windows. No he tenido que cambiar de sistema y lo que es mejor, ahora puedo controlar mis versiones. Un amigo me estuvo preguntando cómo hacer después de instalar el TortoiseSVN. Aquí les explico algunas de las cosas que hacen falta.
Cuando instalamos TortoiseSVN se agregan dos entradas al menú Archivo del Explorador de Windows. Primeramente accedemos a Archivo\TortoiseSVN\Settings para configurar las opciones de trabajo en la red. Le configuramos el Proxy y ya está listo para hacer el primer Checkout. Solamente necesitamos la dirección del repositorio que queremos acceder. Resulta muy simple hacer las descargas y después subir las actualizaciones, Commit. Sobre la carpeta donde esta la versión de trabajo es suficiente hacer un clic derecho y aparece la opción de Update.

Resulta de fácil manejo y para los que comienzan a emplear sistemas de control de versiones y trabajan sobre el entorno Windows les puede servir como calentamiento previo para irse adentrando en el trabajo colaborativo.

Una tortuga controladora de versiones.

mayo 16, 2007

El control de versiones es el arte de manejar cambios en la información. Ha sido desde siempre una herramienta crítica para los programadores, quienes típicamente emplean su tiempo haciendo pequeños cambios al software y luego deshaciendo o comprobando esos cambios al día siguiente. Ya con anterioridad me había referido a los sistemas de control de versiones. Entre ellos estaban el Subversión. Pensaba que estas técnicas eran privativas del Software Libre y ahora tengo ante mí el TortoiseSVN.

TortoiseSVN es un cliente gratuito de código abierto para el sistema de control de versiones Subversion. Esto es, TortoiseSVN maneja ficheros y directorios a lo largo del tiempo. Los ficheros se almacenan en un repositorio central. El repositorio es prácticamente lo mismo que un servidor de ficheros ordinario, salvo que recuerda todos los cambios que se hayan hecho a sus ficheros y directorios. Esto permite que pueda recuperar versiones antiguas de sus ficheros y examinar la historia de cuándo y cómo cambiaron sus datos, y quién hizo el cambio.

En 2002, Tim Kemp se inspiró por el cliente similar que ya existía para CVS llamado TortoiseCVS. Tim estudió el código fuente de TortoiseCVS y lo utilizó como base de TortoiseSVN. Entonces inició el proyecto, registró el dominio tortoisesvn.org y puso el código fuente online. Durante ese tiempo, Stefan Küng reescribió la mayor parte del código existente y empezó a añadir comandos y características, hasta el punto de que no quedó nada del código original. Según se fue estabilizando Subversion, atrajo más y más usuarios que también empezaron a utilizar TortoiseSVN como su cliente de Subversion. Los usuarios de TortoiseSVN se incrementaron rápidamente (y aún crecen día a día). Entonces Lübbe Onken se ofreció a ayudar con algunos iconos más vistosos y un logo para TortoiseSVN. Y también se encarga de la página web y de manejar las traducciones.

Más sobre TortoiseSVN

Manual de ayuda

Realidad Ampliada en Digitendencias

mayo 9, 2007

Ya esta a la mano en la red el DIGITendencias número 13. Este concepto de realidad ampliada aporta más al hombre moderno. Modernizando, valga la redundancia, sus conceptos y dándole una visión humana de su entorno. Constantemente todos ven el futuro deshumanizado por las máquinas. Aquí se exponen unos ejemplos que sin lugar a dudas nos invitan a buscar ese televisor inteligente. En lugar de querer comernos nuestras computadoras es apreciado que lleguemos a ser hombres con un universo tecnológico que nos acoja y nos dote de nuevas potencialidades. Nada de perder el encanto, sino potenciarlo.

Simple y sencillo: Foros

mayo 7, 2007

Hace varios días instalé MySQL 5.0 y DbDesigner 4.0 sobre Windows 2000 para comenzar a hacer algunas pruebas con diferentes tipos de bases de datos. Todo marchó bien con la instalación del MySQL. Un amigo me ayudó bajo protesta, no por ayudarme sino porque es un acérrimo defensor del Sowftware Libre en toda la extensión de la palabra. Y emplear la mezcla de ambos modelos de softwares les parece a muchos una verdadera aberración tecnológica y más. Así sucede pero para mí lo más importante es obtener primero una solución, después hacerla mejor. Al pasar al DbDesigner 4.0 la instalación marchó perfectamente. Pero a la hora de comenzar a utilizar el DbDesigner 4.0 comenzó el error de “dbExpress Error.Invalid
Username/Password”
Por muchos intentos que efectuamos nada se logró. Comenzamos a probar varias soluciones. Entre ellas los Foros. Y buscando y buscando la solución a mi problema apareció en uno de ellos. Simple y sencillo, encontré a otro usuario con mi mismo problema y allí estaba la solución que le brindará otro. Por si te ocuure este problemita simplemente debes definir en MySQL la contraseña del usuario empleando esta instrucción. some_user es el nombre del usuario, some_host es el nombre del servidor (en mi caso localhost) y newpwd es la contraseña para el usuario.

mysql> SET PASSWORD FOR
-> ‘some_user’@’some_host’ = OLD_PASSWORD(‘newpwd’);

Aquí esta la dirección del foro salvador: Foros del Web

Gracias Cmarti y ClaudioVega.

La moraleja es lo que ya hacen otros, apelar a los foros de discusión para encontrar soluciones. Mucha gente ofrece soluciones o simplemente exponen sus experiencias para que otros las puedan poner en práctica. Mi amigo me explicaba cuanto le ayuda en su trabajo estas prácticas colaborativas. A los interesados aquí les va algo más que la explicación de qué es un foro.

FLISOL

mayo 2, 2007

Las siglas se corresponden con el Festival Latinoamericano de Instalación de Software Libre. El pasado sábado 28 de Abril se celebró en el Palacio de Computación el FLISOL de Cuba. Además el evento se celebró en otras ciudades del país como parte de la promoción y difusión del uso del Software Libre. La idea es continuar ganando adeptos y que un mayor número de usuarios comiencen a emplearlo como plataforma de trabajo. Como parte del evento se impartieron conferencias, charlas y demostraciones. Se espera que estos eventos no decaigan y sigan promoviendo la cultura del software libre.

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.

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

Descubrí los Sistemas de Control de Versiones

marzo 29, 2007

Nuestro equipo de desarrollo DIGI trabajó durante varios años en el desarrollo de software a la medida. Era un equipo pequeño pero llegamos a emprender varios proyectos. En una ocasión comenté sobre el ORFI pero realmente el sistema más importante fue el R2E, Sistema de bases de datos para el control y la gestión de los Recursos Humanos. Era común que trabajáramos a la vez en una versión para alguna de las entidades que atendíamos y cometiéramos errores de sobrescribir el trabajo de otro de los miembros del equipo. La opción más fácil comenzar a trabajar independientemente en los módulos evitando sobrescribir el trabajo ajeno. Procurábamos guardar versiones de los cambios y documentar los cambios para tener una guía. Aún así seguía siendo engorroso y poco eficiente dada la premura con que debíamos hacer las entregas. Era todo un trabajo artesanal el de controlar el estado del sistema, los cambios, quién y porqué lo hizo. Éramos un equipo cohesionado y aún así incapaces de aprovechar las posibilidades como programadores y diseñadores de sistemas informativos automatizados.

Actualmente existen herramientas, reconozco que las acabo de descubrir, capaces de implementar todo el control de versiones. Inclusive para proyectos elaborados por una sola persona son muy útiles. En el Curso de Software Libre del Palacio de Computación, el Lic. Alfonso Alí presentó los sistemas para control de versiones. Resulta sorprendente las posibilidades que brindan los mismos para grupos de desarrollo colaborativo. Son el resultado de la aplicación del software libre en entornos de desarrollo de este tipo. Se impone la utilización de los mismos por su flexibilidad.

Para los interesados en conocer más sobre los sistemas de control de versiones:
Quarkblog
CLS