colossus 3.0.i RC 1

Ya está casi lista la versión a 32 bits de mi programa de gestión de contraseñas. Está hecho con xHarbour + Fivewin y es mi primer programa de 32 bits.

colossus.gif

Que nadie se asuste, que el programa funciona bajo Windows pero esta captura es de mi escritorio Gorilla, ya que captura los temas de XP.

Mi anterior programa de gestión de contraseñas se llamaba Guardian, pero decidí cambiar el nombre al comprobar que existía otro programa de gestión de contraseñas con el mismo nombre y además era gratuito.

¿ Por qué Colossus ? Jaime Irurzun me lo preguntaba en un correo tras mandarle una beta:

Hola Jose Luís,

Mira esto es una curiosidad… Me he comprado un libro de introducción a la programación, y al principio habla un poco de la historia de la informática. El caso es que al leer un párrafo me he acordado de tu programa, Colossus.

«El inglés Alan Turing construyó el Colossus (distintas versiones entre 1941 y 1944) para descifrar el código secreto alemán Enigma, que usaban en las comunicaciones con las tropas,incluidos los barcos y submarinos en el Atlántico. Se trataba de un proyecto de tan alto secreto que el Colossus fue destruido después de la guerra, y se prohibió hablar del proyecto a todos los que participaron en él.»

Por el nombre y la relación con descifrar código secreto (contraseñas), he pensado que igual es por eso el nombre, ¿es así?

Pues si, ese es el motivo del nombre del programa.

Como primicia de los lectores del blog os dejo la demo de la RC 1. Espero vuestras sugerencias.

alanit colossus 3.0.i RC1 – fichero ZIP sin instalador – 789KB

i18n en xHarbour

Una nueva característica que ha pasado casi desapercibida en la versión 0.81 de xHarbour es la de internacionalización de la aplicación. La internacionalización – i18n porque entre la i y la n hay 18 letras – de una aplicación supone tener herramientas automáticas para traducir cualquier literal que muestre la aplicación en las distintas lenguas a las que se la quiera traducir. Muchos lenguajes modernos incorporan herramientas de i18n, que son muy apreciadas por los programadores de un mundo cada vez más globalizado.

Si no tenemos herramientas de i18n podemos hacer la traducción de los mensajes de varias maneras:

  • incrustando la i18n en el código, es decir meter todos los literales en el código y mostrando unos u otros en función de una variable. Esto es una auténtica burrada, con perdón.
  • almacenando los literales en un RC. En este caso lo normal es tener un RC para cada lengua a la que traduzcamos nuestra aplicación, aunque también podremos tenerlos juntos en el mismo RC y elegir cual mostrar. En cualquier caso en el programa tendremos que recuperar la cadena del RC para mostrarla. En el caso de tener que mostrar una etiqueta haremos algo como esto:
    1REDEFINE SAY PROMPT LoadString(GetResources(),1164) ID 20 OF oDlg
    2REDEFINE SAY PROMPT LoadString(GetResources(),1163) ID 21 OF Odlg

    ¿ Problema ? Que codificamos a ciegas, pues ¿ cual es la cadena 1164 ? Tenemos que estar continuamente pasando del editor de código al editor de recursos para saber que estamos diciendo al usuario y además llevar cuidado de no repetir cadenas. Un rollo.

Ahora en xHarbour 0.81 cada cadena a i18n la pasamos como parametro a una función que se llama precisamente i18n(), con lo que tenemos algo asi:

1REDEFINE SAY PROMPT i18n("Introduzca la materia") ID 20 OF oDlg
2REDEFINE SAY PROMPT i18n("Materia:")              ID 21 OF Odlg</p>

El lenguaje nos proporciona herramientas para generar un diccionario de terminos a traducir y realizar la traducción de los mismos. Una vez traducido el diccionario, lo único que tenemos que hacer desde nuestra aplicación es seleccionar el lenguaje en que mostraremos los mensajes.

xHarbour va pareciendo cada vez más un lenguaje moderno.

un bonito calendario

Una cosa que suelo hacer a menudo es visitar webs de empresas que hacen software y fijarme en los diseños de sus programas. Esto me da ideas para mis programas y de vez en cuando capturo alguna imagen para retenerla. Por ejemplo este calendario, no se de dónde lo saqué, pero creo que es de los mejores que he visto.

CalendarCombo.jpg

lecturas de verano

Cada vez que se acerca el verano, con el fin del trabajo en la Universidad me planteo que voy a hacer durante el verano. Otros años atrás la cosa estuvo un poco más fácil, pero este año realmente se me ha acumulado la faena. El motivo principal, Fátima aparte, ha sido que estos tres últimos años han sido flojos en cuanto a lectura, debido a que he estado realizando el master DISTICAD. Así que he estado tres años comprando libros y dejando bastantes sin leer. Por fin terminé el master y me puedo dedicar a otras cosas. Estos son algunos de los libros que tengo en casa pendientes de leer:

Cómo podeis ver, son todo libros de programación pero no hay ninguno de programación con un lenguaje determinado. Me atraen mucho los libros que hablan de aspectos relacionados con el entorno o la productividad de la programación y/o los programadores. Son lo que yo llamo libros de largo recorrido porque pienso que los conceptos que tratan perduran sobre los lenguajes de programación de moda cuando se escribieron. Pienso que es muy importante leer este tipo de libros pues afianzan el conocimiento de la disciplina de la programación más allá del lenguaje que se utilice.

Hay varios libros en inglés, no es que yo sea muy fluent leyendo inglés, pero peor es no leerlos. Si conoces la traducción de alguno de los que he mencionado en inglés te agradecería que lo anotaras en los comentarios a este post.

¿ Has leido alguno ? ¿ Por cual comenzarías ?

código escrito

Hoy se inaugura codigo escrito – mis apuntes sobre programación el nuevo blog de Jaime Irurzún. Desde aquí quiero enviar mis mejores deseos de éxito y continuidad para el nuevo proyecto de Jaime y animar a todos los que leen este blog a que se decidan a compartir sus conocimientos y experiencias.

Mi primer contacto con Jaime fue el 29 de septiembre de 2001. Compró mi Cuaderno de Bitácora y al poco tiempo comencé a recibir correos suyos. Me preguntaba acerca del lenguajde programación usado y cosas así. Le contesté y le di direcciones de internet para que conociera las herramientas que yo uso. Fuimos intercambiando correos y un dia me dijo que quería programar con Clipper y Fivewin. Yo le animé a hacerlo y al poco tiempo creó su propia web donde ha hecho una fantástica labor de recopilación de información y desde donde se pueden descargar un par de programas suyos que incluyen el código fuente. Habitualmente participa en los foros de Fivewin y es de los que contesta muchos correos de los novatos que muchos de los más viejos de lugar – y me incluyo – pasamos por encima.

He dejado para el final un detalle: Jaime tiene 17 años y estudia Bachillerato. Si la comunidad xBase quiere continuar, necesitamos muchos Jaimes, muchos nuevos programadores que se acerquen a nuestros lenguajes. Y para ello necesitamos que los lenguajes xBase sean atractivos para los nuevos programadores. ¿ Cómo hacerlo ? Pues cada uno con su granito de arena. Unos participando en los desarrollos de [x]Harbour, FW, Xailer, C3. Otros dándolos a conocer y demostrando que los lenguajes xBase siguen vivos.

¡ Ánimo Jaime y suerte !

programar es divertido, hacer programas es difícil

Este era hasta hace poco el Nick de Messenger de un buen amigo mio. ¡ Que gran verdad !

Hacer pínitos con un lenguaje de programación es divertido. Abres tu editor de código o el IDE del entorno de programación, haces tres dibujitos, picas cuatro lineas, compilas y tienes un bonito formulario con tres etiquetas, 3 cajas de edición, un radio butón y dos botones. Hala, ya has hecho un programa. Fantástico. ¡ Qué fácil es esto de programar !

Las narices.

Hacer programas es difícil y más con entornos de desarrollo inestables. Se acaba de liberar una nueva versión de xHarbour – la 0.81 – que ya trae los CDX casi terminados. Fantástico. El Pcode ahora vale 5 …. a recompilar todas las librerías. Clases de FWH que antes funcionaban ahora no funcionan. Una clase TGet de FWH que iba después de todo el retoque que hicieron en el Get de [x]Harbour ahora no funciona bien. Cosas que funcionaban bien de momento no van. ¿?

Yo no tengo ni idea de programar componentes, pero es que no la quiero tener. Yo quiero tener un entorno de desarrollo estable de una santa vez. No digo que sea culpa de nadie, lo único que digo es que mi negocio no es hacer componentes. Ni se hacerlos, ni puedo hacerlos, ni quiero hacerlos. ¿ Alguien se imagina a un albañil construyendose sus ladrillos ? Por favor… lo importante es mantener lo importante como lo importante. Y dejarse de enredos.

Quiero recompilar mi código y que siga chutando lo que chutaba con la versión anterior del compilador y del GUI. Sólo eso. Ni más ni menos.

Llevo dos meses con Colossus en fase beta. ¡¡¡ Dos meses !!! Entre que no soy Donald Knuth, que tengo poco tiempo para programar y que el suelo se mueve bajo mis pies, así no hay quien libere una versión completa de nada. Es para ponerse a llorar.

En fin, voy a pasar por taquilla y me voy a actualizar al build de 1 de julio de FWH a ver si la cosa mejora, que estoy de los nervios.

el cliente puede tener derecho al código fuente

El pasado 19 de Junio, justo hace una semana, se publicó en el suplemento Ciberpais del diario El Pais una noticia con el mismo título de este post. Llevo toda la semana esperando a ver si leia algo del tema por otro sitio, pero visto que no ha tenido repercusión he decidido escanear la noticia y colgarla aqui.

Creo que estamos ante una sentencia que puede llegar a cambiar la forma de trabajar de muchas empresas. Por lo que dice el artículo el Tribunal Supremo ha dado la razón a una gestoría que demandó a una empresa de informática por no facilitarle los fuentes de un desarrollo contratado a medida. Esto da un vuelco total a las relaciones desarrolladores – clientes. Teniendo en cuenta que la mayoría de profesionales del desarrollo se dedica a hacer software a medida, esta sentencia puede tener una gran repercusión en dicho mercado y en la industria en general. No digo más, dejo la noticia para que cada uno saque sus conclusiones.

una explicación de la Programación Extrema

Este fue el título de la Ponencia de Manuel Calero Solis en el pasado congreso de la asociación de programadores xbase Olivares2000. Entre tanta ponencia técnica, la de Manuel nos acercó una metodología que se engloba dentro de las llamadas metodologías ágiles y que está causando un gran revuelo dentro de la disciplina de la Ingeniería del Software. La ponencia es un estupendo repaso por esta metodología y por eso le he pedido a Manuel que la publique aquí. La ponencia se puede descargar en formato de OpenOffice, Microsoft Word y el archivo de la presentación en Powerpoint file.

Harbour.NET

Los mas viejos del lugar sabíamos que Antonio Linares no se iba a estar de brazos caidos ante los últimos movimientos en el mundillo Xbase. Tanto xIDE como Xailer y C3 son una gran amenaza a la hegemonía que ha mantenido hasta ahora AL con Fivewin, que dicho sea de paso es lo único que hay operativo a día de hoy. El pasado 21 de Junio, Antonio puso el siguiente post en las News de OZS:

Actualmente estoy estudiando CLR y MSIL de .NET para encontrar la forma de portar Harbour a .NET incluyendo a Mono (Ximian) y dotGNU.

Afortunadamente he podido conversar por teléfono con Miguel de Icaza y me ha
proporcionado algunas ideas.

Si tambien estás interesado y quieres intercambiar ideas acerca de dicho
proyecto, eres bienvenido.

Antonio Linares
www.fivetechsoft.com

A esto le llamo yo doble pirueta con salto mortal. Cuando parece que todo el mundo anda mirando a Delphi como paradigma de entorno de desarrollo, AL se descuelga con .NET. Se que a más de uno le ha gustado la idea.

¿ Alguién da más ?

alanit
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.