GPF y WindowsUpdate

Este fin de semana estuve refactorizando código de el Puchero para presentarlo al XAAC. No es que piense entregar el código, pero como programador intento que el programa por dentro esté bonito. Resulta que al pulsar el botón salir el programa mostraba un formulario preguntando si se queria salir del programa, pero al dar en la X del cuadro de control de la ventana salía directamente. A medias de la refactorización me bajé a casa a recoger correo. Cuando terminé la refactorización recompilé y al salir del programa me daba un bonito GPF.

Hacia meses, desde la versión 0.90 de xHarbour que no tenía GPF’s en el Puchero. Me puse a mirar todo el código que habia tocado y no vi nada raro. Cogí una copia del código de la semana anterior y tampoco. Lo deje estar, pensando que al dia siguiente más despejado lo arreglaría.

Pero no. Ayer miré, remiré. Soy torpe, pero… joder que esto es una chorrada. Me acordé de que había aplicado un parche relacionado con el consumo de recursos de FWH. Conservaba la libreria previa al parche, las renombré, recompilé… el GPF seguía. ¿ Que había hecho desde el viernes, que el programa iba perfecto, hasta el sábado ? La refactorización, bajar el correo … y un WindowsUpdate. Fui al panel de control y desinstalé todos los parches que apliqué el día 17 y el GPF desapareció.

¿ Que bien verdad ? Pues no, desde mi punto de vista es una putada de narices. Si al hacer un WindowsUpdate mis programas van a dar GPF pues apaga y vamonos. Eso no es programar, eso es luchar contra los elementos. Que Dios nos pille confesados con el WindowsUpdate, el ServicePack 2 y la
política de Microsoft de pasar de compatibilidades hacía atrás. ¿ Que les digo a los usuarios, que no actualicen Windows ? Si un señor instala una demo de un programa y al salir le da un GPF he perdido un potencial cliente porque seguro que no registra el programa.

La verdad es que dan ganas de irse a Linux y dedicarse a hacer software libre.

numeración de versiones how to / 1

Una de las maneras habituales de numerar las versiones de los programas consiste en segmentar el número de versión en tres partes, de la manera 9.99.99:

  • El primer segmento es el número de versión propiamente dicho, que se cambia cuando se trata de una revisión en profundidad del programa.
  • El segundo segmento es el número de release, que cambia cuando se hace un cambio de funcionalidad importante en el programa, pero no tan importante como para que sea un cambio de versión. Además existe la costumbre de que las los números impares de release son inestables, mientras que cuando se llega a una versión estable se cambia a un número par.
  • El tercer segmento es el numero de build dentro de la release.

Hace unos dias, en uno de los grupos de news que visito – xHarbour o Fivetechsoft – alguien propuso una numeración en tres segmentos, pero de la sguiente manera:

  • El primer segmento igual que antes.
  • El segundo segmento de dos dígitos, el primero del año – en este caso 4 de 2004 – y el segundo del cuatrimestre – ahora sería también 4.
  • El tercer segmento de número de build dentro de la release.

La ventaja de este segundo métido de numerar versiones es que sabes que versión es y te haces una idea de cuando fue liberada. En aplicaciones o software en que se liberan versiones continuamente esta segunda notación te hace tener claro lo actualizado o no que tienes tu software.

¿ Opiniones ? ¿ Cual os parece mejor ?

xHarbour Annual Application Competition

Se acaba de convocar la primera edición del Concurso anual de aplicaciones xHarbour, cuyas bases están en la web de xHarbour.com. Sinceramente me parece una excelente idea, porque cosas como estas son las que contribuyen a crear comunidad entre los programadores y a sentir que su herramienta está en la cresta de la ola. Recuerdo los años dorados de los lenguajes xBase, a mediados de los 90, en que los desrrolladores de UltimAde ganaron un par de veces el concurso de programación de la revista DataBased Advisor. Los programadores xBase eramos los reyes del mambo, luego vinieron los años oscuros y desde hace un par de años parece que hay luz al final del tunel.

En los hilos de news de xHarbour y FWH donde se anunció el concurso hubo muchas respuestas, alguna de ellas realmente interesante, como la de Sandro Freire – uno de los desarrolladores de HwGui – o la de TheFull. Si Rafa manda algo de su GUI multiplataforma basada en Gtk+ creo que tenemos un serio candidato a premio.

Jaime y yo vamos a competir con las nuevas versiones de el Puchero y Cuaderno de Bitácora. No se cual será el nivel de los programas que se presenten, pero tenemos claro que no tenemos que envidiar nada a nadie. Haremos campañas para que los lectores de nuestros blogs nos voten, a ver si pillamos alguno de los premios, que falta nos hace.

compatibilidad entre xHarbour y FWH

Esta semana ha habido un post en las news de FWH que me ha llamado poderosamente la atención. Es este post se preguntaba por la incompatibilidad entre xHarbour y versiones de FWH previas a la 2.5 y Walter Negro, componente del equipo de xHarbour al que nunca le agradeceremos las explicaciones que nos dá, aclaraba:

Es verdad, xHarbour es compatible con FWH 2.4 hasta la Beta 1.1 que acaba desalir, pero ya no con el último CVS.

Sin embargo haciendo unas pequeñas modificaciones y recompilando el xHarbour por completo, es posible mantener la compatibilidad con FWH 2.4 y anteriores.

El que xHarbour no sea compatible, no es un problema de xHarbour.
A decir verdad, la causa de esta incompatibilidad surge de una necesidad y
de una propuesta hecha por el equipo de desarrollo de xHarbour.
Esta propuesta se comunicó al equipo de desarrollo de Harbour junto con la
propuesta de como mantener la compatibilidad, al menos durante un tiempo
necesario para que Antonio pudiera brindar las actualizaciones necesarias al
código, actualizaciones que prometió tener prontamente.
El equipo de desarrollo de Harbour no quiso mantener la compatibilidad con
FWH e hizo el cambio directamente y es así que FWH 2.4 solo es compatible
hasta la versión 0.43 y de la misma forma, FWH 2.5 sólo es compatible con
0.44.

Lo que se hizo en xHarbour ahora, es ser compatible con Harbour y con FWH
2.5, aunque sigue existiendo la posibilidad de recompilarlo para mantener la
compatibilidad con FWH 2.4 Dejan de ser compatibles por la misma razón que lo fué Harbour. Esto es, se pasó de SHORT a LONG el registro que indica la cantidad de referencias que existe sobre un array u objeto.

De momento, la manera de solucionar esta incompatibilidad es esta – GRACIAS WALTER -:

Para poder seguir usando el xHarbour actual con FWH 2.4, hay que restaurar
los archivo hbvmpub.h y hbdefs.h anteriores al cambio.

Una forma sencilla de conseguirlo, es en SourceForge.

http://cvs.sourceforge.net/viewcvs.py/*checkout*/xharbour/xharbour/include/hbvmpub.h?rev=1.31

http://cvs.sourceforge.net/viewcvs.py/*checkout*/xharbour/xharbour/include/hbdefs.h?rev=1.55

En este otro link, se puede apreciar en colores las líneas eliminadas

http://cvs.sourceforge.net/viewcvs.py/xharbour/xharbour/include/hbvmpub.h?r1=1.31&r2=1.32

http://cvs.sourceforge.net/viewcvs.py/xharbour/xharbour/include/hbdefs.h?r1=1.55&r2=1.56

Pero yo creo que el tema no es que cada uno se monte de nuevo xHarbour para mantener la compatibilidad. Como decía TheFull en el mismo hilo, no es cosa de que un compilador sea compatible con una librería, sino al revés. No se en que medida estos cambios afectan a FWH, pero creo que sería un detallazo que FiveTechSoft publicase los parches adecuados para que FWH mantuviera la compatibilidad con xHarbour.

nuevo motor de informes

Una de las novedades destacadas de las nuevas versiones de Cuaderno de Bitácora y el Puchero va a ser nuestro nuevo motor de informes. Es un motor de informes a lo Calero, ya que fue en su GST+ donde lo ví por primera vez. Nos ha costado bastante ponerlo en marcha, pero el resultado es muy bueno.

El formulario de selección de informes se compone de tres pestañas. En la primera se elige el tipo de listado que se quiere, contando que los datos vienen con la ordenación seleccionada en el mantenimiento del fichero de que se trate.

En la segunda pestaña se eligen las columnas del listado, el orden en que van a salir, la anchura de la columna y si se quiere totalizar, para los casos en que sean datos numéricos.

Y, por último, en la tercera pestaña se eligen los encabezados del informe y los tipos de letra de todos los elementos: títulos, encabezados de columnas y datos.

Además, el motor de informes recuerda el último informe realizado y lo presenta la siguiente vez que se accede a él.

estoy aquí…

El verano está siendo largo en muchos sentidos. Desde que nos fuimos a vivir al campo una de mis mayores preocupaciones es la conexión a internet. Parece que a Telefónica no le sale rentable instalar lineas de teléfono fuera de los cascos urbanos de las localidades y las compañías eléctricas no acaban de despegar con el acceso por red eléctrica. El resultado es que ni tengo teléfono ni conexión a internet, y no se cuando lo voy a tener. Un profesor mio decía siempre que hambre que espera comer no es hambre, pero yo no se cuando comeré.

La versión 4 de el Puchero está casi lista. Vamos por la 10ª beta y falta afinar unas cosas de la clasificación francesa, pero creo que este mes tendré ya una beta pública. Jaime también va bien con la versión 6 de Cuaderno de Bitácora y creo que para mediados de octubre tengamos en la calle las nuevas versiones. Esto de no tener internet está bien porque no te despistas y cuando te sientas a programar programas y no haces el indio, pero llevo un lio de narices con el correo, que leo cuando puedo y contesto cuando me dejan.

Dos cosas a destacar: en Noviembre reunión de Olivares2000, y si me dejan haré una ponencia sobre los primeros capítulos del libro ‘The pragmatic programmer’.

La otra: T-Gtk. Rafa Carmona, The Full, está construyendo una GUI sobre GTK+ para Harbour, usando además GCC. Quiero subirme a este tren, ponerme las pilas y colaborar. Creo que usar GTK+ es una excelente idea, y creo que la única de poder desarrollar para Windows y Linux al mismo tiempo, algo sencillamente genial. Espero que en la reunión de GO2000 Rafa nos cuente cosas de su criatura.

progressbar con FWH

Hasta ahora había usado los meter de CanalFive en mis aplicaciones, que eran a 16 bits. Sin embargo, con la modificación en la clase TBitmap de la versión 2.3 de FW los meter dejaron de funcionar, asi que comencé a usar la clase TMeter de FWH. Miré la clase TProgressBar de FWH pero, no se porqué, tenía en la cabeza que no funcionaba bien. Cuando cayó en mis manos xBackupLite una de las cosas que me llamó la atención era que usaba ProgressBar para indicar la realización de la copia de seguridad. Como el código fuente venía incluido fue fácil ver el comportamiento del control en vivo, tas lo cual me dispuse a usar este control en vez de los clásicos meter. El resultado es este:

xbackuplite

De vez en cuando das con un programa que te llama la atención y este es el caso de xBackupLite. No por lo que hace – genera copias de respaldo de archivos en un fichero ZIP y permite restaurarlos -, sino por cómo lo hace y por la herramienta con que está hecho. El programa es superelegante y está hecho con xHarbour y FWH.

Sus autores son Carlos Vargas y Kleyber Derick, habituales de los foros de Fivetech Software. Además trae el código fuente para poder estudiar en profundidad el manejo de archivos ZIP desde nuestras aplicaciones. Si Antonio Linares reinstaurara el cool tool of the month creo que xBackupLite sería un buen candidato a premio. Por gentileza de los autores, el progama completo se puede descargar desde este blog.

el oficio de programador

He comenzado a leer ‘the pragmatic programmer’ y la verdad es que me está gustando mucho. El libro se hace facil de leer pues está estructurado en puntos cortos, de 2 ó 3 páginas que puedes leer sin agobiarte. Cuando tengo delante un texto largo en inglés la cosa se me pone bastante cuesta arriba, pero la manera en que está estructurado el libro es ideal para gente como yo que tiene un nivel de inglés regular.

La primera reflexión que me ha gustado está en el prefacio del libro, donde se reivindica el oficio de programador. Los autores dicen que si bien el desarrollo de software debe ser abordado con técnicas de ingeniería, existe un oficio de programador que no debe ser minusvalorado. En el libro se hace una comparación entre la construcción de catedrales en la edad media, donde las técnicas de ingeniería eran muy limitadas, con la ingeniería civil de hoy en día. Está claro que esta disciplina ha avanzado enormemente, pero cuando se visita una catedral de la edad media no dejamos de sorprendernos de lo buenos artesanos que la construyeron y de como su excelente labor ha perdurado todo este tiempo, por ejemplo la de los maestros canteros o vidrieros. Lo mismo pasa ahora cuando te haces una casa: el arquitecto puede hacer un proyecto fantástico, pero cómo no des con un buen albañil, con un buen carpintero y con gente que conozca bien su oficio lo tienes claro.

En desarrollo de software pasa lo mismo. Puedes tener un diseño fantástico de una aplicación, pero necesitas un programador que te la haga. Y como en todos los oficios hay programadores buenos y malos, y muchas veces es el programador el que marca la diferencia pues, igual que el resto de oficios, un buen programador es capaz de encontrar soluciones a lo que se hizo mal en el diseño. Un programador pragmático es aquel que se preocupa de su oficio, de estar al día, de mejorar continuamente en todas sus facetas profesionales – que son muchas – y que piensa lo que está haciendo cuando programa y no trabaja con el piloto automático puesto.

Es curioso que haya mucha gente que piense que los programadores son la escala más baja dentro de la profesión informática, y que muchos programadores intentan ser otra cosa pues piensan que de esta manera avanzan en la profesión. Sin software un ordenador es un trasto totalmente inservible y sin embargo el trabajo de programador esté tan poco reconocido, incluso dentro de la profesión.

Una vez me llamaron de una tienda de ordenadores para comprarme un programa para un señor que les habia encargado un ordenador con uno de mis programas, pues este señor decía que lo que quería era mi programa. El de la tienda no sé que ganó con el ordenador, seguro que más que yo con el programa, pero aquello me llenó de satisfacción.

dbdesigner4 y sqlite

Hace un par de semanas comencé a buscar una herramienta visual para implementar los modelos E/R de mis programas. Primero probé DIA, una herramienta open source para crear diagramas que sólo sirve para eso: crear diagramas. Después vi en un foro sobre xbase que alguien preguntaba por Dezign for databases. Me bajé la demo y estuve trasteando con el programa, pero se quedaba corto en el tema de los listados ya que la documentación que permite generar es muy escasa. Luego vi el post de Abel y la referencia a DbDesigner4 en un comentario. Me bajé el programa y me sorprendió. Es sencillo de usar y bastante potente, permite crear modelos lógicos de BB.DD. relacionales definiendo tablas, atributos y relaciones, generando luego los esquem
as para crear la base de datos. También permite hacer ingeniería inversa, creando un modelo a partir de una base de datos. La información que almacena el programa se guarda en ficheros XML, cosa también a tener en cuenta y es un programa con licencia GPL. Tremendo.

El programa rebosa elegancia, es uno de esos programas en los que te fijas cuando te planteas tus aplicaciones. Para muestra, el acerca de…

Me llama mucho la atención que el programa use SqLite. Esto es algo sobre lo que tengo que investigar, y ver si lo puedo usar con Xailer y sus DataControls.

PD: ¿ Alguien me dice como evitar que me llenen de basura los comentarios a los posts ?

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.