código de alanit en GitHub

Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.

He publicado en Github el codigo fuente de algunos de los programas disponibles en mi sitio web https://alanit.com. Estos programas están hechos con Harbour y FiveWinHarbour y creo que constituyen un buen punto de partida para cualquier programador que quiera iniciarse o profundizar en el conocimiento de estos lenguajes.

En el blog de mi web personal hay cientos de artículos sobre programación https://alanit.com/category/programacion y de aspectos relacionados con mis programas https://alanit.com/category/alanit/ que he ido publicando desde el año 2003.

Cuaderno de Bitácora

Imagen de Cuaderno de Bitácora

el Puchero

Findemes

Imagen de Findemes

El código fuente de Colossus, mi programa de gestión de contraseñas, también se encuentra publicado desde hace tiempo en https://github.com/JoseluisSanchez/colossus

colossus es ahora LGPL

Tenía una deuda pendiente con Colossus, mi programa de gestión de contraseñas. Hasta ahora el programa utilizaba un sistema propio de encriptación cuya fiabilidad no podía garantizar al 100{72666422441995bc206cebb09a3b9c56aa12b76eccf4cf2e7f1cb3f90410eb4e}. Sin embargo Colossus es el programa que más utilizo de los mios, dado que lo uso practicamente a diario. Así que hace unos meses tomé la decisión de reprogramarlo por completo, basándome en las siguientes especificaciones:

  1. Abandonar mi sistema de encriptación y utilizar el RDD de ADS para Harbour que proporciona encriptación a nivel de fichero .dbf.
  2. El programa debería permitir trabajar con múltiples ficheros de contraseñas, para lo cual debería realizar los procesos de creación, apertura y cierre de ficheros de claves.
  3. Cada fichero de claves sería autocontenido, con lo cual no podría tener fichero de materias separado. Esto supone que la lista de materias la iba a tener que crear con las materias existentes en el fichero de claves.
  4. Por último, para intentar minimizar la existencia de errores en el programa, liberaría el código del mismo con licencia GPL 3 permitiendo que otros programadores revisaran el código y pudieran corregir errores.

Hoy, después de varios meses de trabajo y de pruebas del programa presento Colossus 6.0. Lo primero que tengo que decir es que esta versión del programa no es compatible con las versiones anteriores del mismo, ni puede leer ficheros de contraseñas de versiones anteriores del programa. La única manera de introducir las contraseñas de una versión anterior del programa en la versión 6.00 es introduciendo a mano de nuevo las contraseñas.

Como todavía no tengo claro el tema de subir el código del programa a Github o similares, dejo un enlace al código del programa. Agradecería enormemente comentarios con recomendaciones de un cliente de Github para Windows. En breve publicaré un instalador en la web de alanit, pero el fichero ZIP con los fuentes lleva el ejecutable y todos los archivos necesarios para funcionar.

Colossus 6.0 con fuentes

Las siguientes instrucciones están en el fichero leeme.txt incluido en el ZIP de descarga.


Esta aplicación requiere Borland C, Harbour y FivewinHarbour para compilarse. Yo uso FWH 12.04 y la versión correspondiente de Harbour empaquetada por Fivetech. Para compilar el programa hay que hacer lo siguiente:

* Ejecutar brc.bat que crea el fichero de recursos colossus.res
* Ejecutar **make cls1204** que compila los fuentes y crea el ejecutable

El archivo de compilación es cls1204.mak y el archivo de enlazado es cls1204.bc. Las rutas de los compiladores y librerias que uso son las siguientes:

* HBDIR=c:\fivetech\hb1206
* BCDIR=c:\bcc582
* FWDIR=c:\fivetech\fwh1204

Mi editor es HippoEdit (http://www.hipoedit.com) y el archivo colossus.heprj es el archivo de proyecto para ese editor.

La estructura de carpetas de la aplicación es la siguiente:

\ contiene los archivos de compilación y enlazado, así como las DLL necesarias para ejecutar el programa.
---\ch contiene los archivos de preprocesador de las librerias que utilizo
---\obj carpeta donde se depositan los objetos de la compilación
---\prg carpeta con los fuentes. No se incluyen report.prg, rpreview.prg ni image2pdf.prg por ser propietarios.
---\res carpeta de recursos. Editar siempre cls.rc puesto que colossus.rc se construye con brc.bat
---\lib contiene una copia de librerias no incluidas en FWH y que utilizo en la aplicación.

Para cualquier consulta escribirme a [email protected]

Novelda, junio de 2014.
José Luis Sánchez Navarro

Al arrancar el programa presenta el siguiente aspecto:

Colossus 6.0 - ventana principal
Colossus 6.0 – ventana principal

La barra de iconos principal nos permite la creación, apertura y cierre de ficheros de contraseñas, configurar el programa y la rejilla de claves, visitar mi sitio web, mostrar el ‘acerca de…’ y salir del programa.
Lo primero que debemos hacer es crear un fichero de claves dado que en la instalación el programa no incorpora ningún fichero de claves. Pulsamos el botón de la carpeta negra con el signo + y el programa muestra el siguiente formulario:

Este formulario nos permite crear un fichero de claves en la ubicación que queramos y especificar la contraseña del mismo. Una vez creado el fichero el programa nos dice si queremos usar este fichero de claves, si le decimos que sí nos pide la contraseña del mismo y nos presenta el contenido del fichero de claves que estará vacio.

Colossus 6.0 - ventana de fichero de claves
Colossus 6.0 – ventana de fichero de claves

Cuando el programa abre un fichero de claves muestra varios elementos nuevos:

  1. La ruta y nombre del archivo de claves en la barra de título del programa.
  2. Una barra lateral de acciones que nos permitirá operar con el fichero de claves abierto.
  3. Una rejilla de datos con las claves del fichero de claves.

En la barra de acciones hay un primer bloque de acciones que nos permite crear una nueva clave, modificar la clave seleccionada, borrar la clave seleccionada, buscar claves e imprimir listados de las claves del fichero. El formulario de edición de una clave es el siguiente:

Colossus 6.0 - Formulario de edición de contraseñas
Colossus 6.0 – Formulario de edición de contraseñas

El formulario de edición de claves es similar al de versiones anteriores del programa pero incorpora autocompletado en el campo de materia.
La siguiente acción en la barra de acciones de claves es la gestión de la tabla de materias. Como dije al principio, el programa unicamente guarda el fichero de claves y crea cada vez la tabla de materias con las materias existentes en las claves. Esto supone que si se dan de alta materias directamente en la tabla de materias pero no se asigna esa materia a ninguna clave, la materia se perderá al cerrar el fichero de claves puesto que las materias no se guardan separadas de las claves. Por esto es conveniente dar de alta las materias al dar de alta las claves.
Las siguientes acciones en la barra de acciones permiten copiar el usuario de la clave al portapapeles, copiar la clave al portapapeles y ver el contenido del portapapeles. A continuación viene la opción de cambiar la contraseña del fichero de claves. Esta acción se realiza a través del siguiente formulario:

La siguiente acción tiene por etiqueta Salir pero no sale del programa, sino que cierra el fichero de claves abierto.

De vuelta a la barra de iconos principal, la opción de configuración del programa muestra las siguientes opciones:

Colossus 6.0 - cambio de contraseña del fichero de claves.
Colossus 6.0 – cambio de contraseña del fichero de claves.

El formulario de configuración de la rejilla de claves es el mismo que utilizo en mis otros programas:

Colossus 6.0 - Configuración de la rejilla de claves.
Colossus 6.0 – Configuración de la rejilla de claves.

cómo hacer copias de seguridad de mis programas

Una de las consultas recurrentes que recibo por correo electrónico es cómo hacer copias de seguridad de los programas. La manera más sencilla para hacer copias de seguridad de los programas consiste en copiar la carpeta completa del programa a un disco externo USB – un pendrive o disco duro. Todos mis programas almacenan todos sus archivos dentro de la carpeta raíz de la instalación, por lo que al copiar la carpeta raíz y sus subcarpetas estamos realizando una copia completa de todos los datos almacenados así como del propio ejecutable y demás ficheros necesarios para ejecutar el programa. Las carpetas raiz de los programas, si no se ha modificado la ruta de instalación, son las siguientes:

  • Cuaderno de Bitácora: c:\bitacora
  • el Puchero: c:\puchero
  • Findemes: c:\findemes
  • Azeta: c:\azeta
  • Colossus: c:\colossus

Muchas de las veces el problema está en un cambio de ordenador o en la manera de trasladar un programa de un ordenador a otro. Para ello, la manera más sencilla es hacer una copia de seguridad completa del programa, y desde el disco externo proceder a copiar la carpeta en la misma ruta en el ordenador nuevo.

Para hacer copias de seguridad utilizo desde hace mucho tiempo el programa SyncBackup de 2BrightSparks que cuenta con una edición gratuita. Aunque la web está en inglés, el programa se puede instalar en castellano y es muy sencillo de configurar. Se pueden crear perfiles de backup, por ejemplo uno para cada programa, de manera muy sencilla a través de un asistente que te va guiando para configurar el perfil. Yo suelo utilizar la opción ‘Espejo’, de manera que lo que tengo en el disco duro se copia al disco USB y si en el USB queda algún archivo este se borra si no está en el origen. El perfil queda de la siguiente manera:

Perfil de SyncBackup para copia espejo.
Perfil de SyncBackup para copia espejo.

Además de perfiles individuales, SyncBackup permite crear grupos de perfiles de manera que ejecutando un perfil de grupo se realiza la copia de seguridad de varios perfiles de manera simultanea. Para mi este programa es uno de mis imprescindibles.

Colossus 5.00

Se encuentra disponible para descargar la versión 5.00 de Colossus, mi programa de gestión de contraseñas. La principal novedad de esta versión es la simplificación del formulario de edición de claves, que queda como aparece en la imagen.

He quitado los campos relativos a la conexión de internet, pensando en que es información que hoy apenas se usa. Esta eliminación me ha permitido realizar un formulario de edición de claves sin pestañas, mostrando toda la información significativa en un sólo formulario. En mi opinión mi queda mucho más clara la información de la clave. El resto del programa es prácticamente el mismo que en la versión anterior.

Esta versión de Colossus es completamente gratuita y no existe edición registrada del programa.

colossus 4.5

Ya se encuentra disponible la versión 4.5 de Colossus, mi programa de gestión de contraseñas. La principal novedad de esta versión es el cambio en la manera en que el programa muestra las claves, puesto que en ningún momento se llega a desencriptar el fichero de claves sino que se desencriptan unicamente para visualizarlas. El método anterior de desencriptado del fichero de claves podía ocasionar la perdida de consistencia del fichero, y alguna vez he tenido un disgusto con esto. Con el nuevo sistema no hay peligro de inconsistencia puesto que el fichero no sufre procesos completos de encriptado y desencriptado. Además hay alguna mejora estética nueva, como la rejilla de datos a la Windows 7 y alguna cosilla más.

Colossus se distribuye bajo licencia Creative Commons Reconocimiento – No Comercial – Sin Obras Derivadas 2.0.

cls45-acercade

próximas actualizaciones de programas en alanit

En las próximas semanas voy a liberar nuevas versiones de mis programas Colossus y Findemes. Las nuevas versiones de estos programas están casi listas, aunque en el caso de Findemes tengo una duda respecto a una nueva funcionalidad que me lleva bastante mareado. La nueva versión de Colossus está terminada y la de Findemes está al 90%. Ahora sólo queda probar la comida para perros.

En la nueva versión de Colossus los cambios son principalmente internos, solucionando uno de los mayores problemas que tenían las versiones anteriores y que era el encriptado/desencriptado completo del fichero de claves. Hasta ahora, cuando se salía del programa la última operación era encriptar por completo los ficheros de datos para que la información no fuera accesible. Al arrancar el programa estos datos se desencriptaban y quedaban desencriptados mientras se ejecutaba el programa. Con la nueva versión los datos siempre permanecen encriptados y lo que hace el programa es aplicar el desencriptado para visualizar la información, pero sin llegar nunca a desencriptar por completo los datos. La verdad es que esta manera de mostrar las contraseñas es mucho más sencilla que lo que hacía hasta ahora, y mucho menos problemática. Hay algún cambio estético en el programa, como la rejilla de datos a la Windows 7 pero el aspecto del programa sigue siendo el mismo.

colossus450

Respecto a Findemes los cambios han sido mayores. En primer lugar he añadido gestión de cuentas corrientes al programa, que era una funcionalidad que la han pedido muchos usuarios. El tema es que a mi nunca me han gustado los programas de contabilidad personal que están basados en cuentas, pero al final he claudicado y he introducido esta funcionalidad en el programa. Sin embargo el uso de cuentas corrientes es opcional, se pueden seguir llevando el control de ingresos y gastos sin que obligatoriamente se tengan que reflejar en una cuenta corriente. La introducción de las cuentas corrientes ha afectado a los mantenimientos de apuntes y de apuntes periódicos, así que he tenido que retocarlos todos. También he hecho otros cambios menores, como un formulario que muestra un balance de ingresos y gastos por fechas sin tener que recurrir a un listado. Lo único que queda pendiente antes de liberar la nueva versión es el tema de traspaso entre cuentas corrientes. No se si añadir la opción de realizar traspasos entre cuentas corrientes en la gestión de apuntes o en un mantenimiento separado. Si hago lo primero tendré que añadir campos a la tabla de apuntes y a lo mejor enredo mucho la cosa. Pero hacer un mentenimiento separado no me convence, así que sigo dándole vueltas a la cabeza hasta que decida que hacer. Muchas veces los atascos en los programas consisten en no saber cómo implementar una determinada funcionalidad, no en no saber implementarla.

findemes2

1password gratis

Gracias a los chicos de MacHeist he conseguido una licencia gratuita de 1Password, una aplicación para gestionar contraseñas en el Mac. La cosa comenzó con un post en Applesfera donde decía que MacHeist regala software por Navidad. Seguí las instrucciones del artículo y entré en el enlace indicado, me apunté y pude elegir entre varias aplicaciones. Al darles la primera mirada vi el icono de 1password y no dudé en elegirla, ya que era una aplicación que pensaba comprar en breve. El precio de la aplicación es de 39,95$ que me he ahorrado.

Cuando hice la petición del programa me llegó un correo con la licencia y una explicación del motivo por el cual regalan la aplicacación. Deben estar finalizando una nueva versión y al regalar la actual esperan que muchos de los que reciben el regalo actualicen a la próxima versión. No deja de ser una manera de ampliar el número de usuarios de la aplicación, pero no se que novedades puede traer la nueva versión, pues la que ahora mismo tengo está muy pero que muy completa.

Una de las características de 1Password es que se integra con los navegadores, de manera que puedes guardar las contraseñas de los sitios web donde estás registrado en el programa y accedes usando la contraseña maestra del programa. Esto lo hace creando un botón nuevo con el símbolo 1P y que permite acceder al programa.

El programa es realmente bueno y se nota las horas de trabajo que lleva detrás.

Yo tengo un programa de gestión de contraseñas para Windows llamado Colossus y claramente tengo que decir que 1Password me parece mucho mejor que Colossus. 

colussus en pc actual

En el número 192 de la revista Pc Actual del mes de enero de 2007 aparece un análisis de Colossus, mi programa de gestión de contraseñas. La reseña ocupa dos páginas completas, y se encuentra en la sección Pc Práctico.

Por cierto, que tengo pendiente de publicar una actualización del programa.