debate de ideas o sobre software y coches

Una de las cosas que me animó a hacer este blog es intentar promover un debate de ideas acerca de la programación en general y el uso de entornos xbase en particular. Los foros de consultas técnicas están muy bien para eso, para resolver dudas, pero siempre he echado de menos los debates de ideas sobre programación. Me encanta leer artículos sobre experiencias de programación, uso de metodologías… sobre cosas que no son estrictamente de programación, sino digamos del envoltorio. Me gusta mucho la web de Joel Spolsky, es algo que he dicho mil veces, donde igual se habla de programación pura y dura que de como diseñar una oficina para que los programadores estén agusto. Pagaría por leer algo asi en castellano. José Alberto Hernandis ha comenzado un blog sobre programación que va en esta linea, se llama softinspain y la verdad es que tiene muy buena pinta.

A veces pienso que los programadores somos como los mecánicos y el software que hacemos son coches. A muchos de nosotros sólo nos interesa el motor del coche, mientras que al que se monta en el coche lo que menos le importa es el motor y da más importancia a la habitablidad del coche, la comodidad, la tapicería y el maletero. Y nosotros con la cabeza metida en el motor todo el dia. Creo que los progamadores deberiamos prestar más importancia al coche en su conjunto y menos al motor. Por eso son muy importantes los debates de ideas, porque te hacen levantar la cabeza del teclado y mirar hacia el horizonte para saber hacia donde vas y no sentir que vas en una ola que no sabes donde se dirige.

Por eso me ha gustado el debate entre René y Carles en los comentarios al post fivewin.info, porque este tipo de debates es lo que yo quiero leer. René, Carles: muchas gracias.

En el blog hay abierto un foro de debate para que todos podais abrir hilos sobre cualquier tema que os interese.

editor de recursos de PellesC… ahora si que si

Hace algún tiempo hablé del editor de recursos de PellesC. El caso es que he estado intentando usarlo, pero hasta hoy no he dado con la manera de hacerlo y encajarlo con xHarbour. Comprobareis que soy un poco chapuza, pero creo que todo esto puede servirle a más de uno.

Hasta ahora usaba el editor de recursos de Borland C++ 5.01 y todo iba bien. Sin embargo no me gustaban varias cosas, pero principalmente que de vez en cuando me hacia una de indios y me dejaba inservible el .RC porque al salvar los recursos mezclaba las lineas de texto de los mismos y armaba una gordísima. Además me parecía una barbaridad tener instalado el Borland C++ 5.01 si realmente usaba para compilar xHarbour la versión gratuita del Borland C++ 5.5.

Con el editor de recursos de PellesC tenía basicamente un problema: no era capaz de leer los .RC que el editor de recursos de Borland pero si leía bien los .RES. Sin embargo al leer un .RES, salvarlo como .RC el compilador de recursos de Borland no tragaba y me daba error.

La solución a todo esto es un poco enrevesada, pero basicamente consiste en editar los .RC con el PellesC y usar su propio compilador de recursos para generar el .RES que luego el link de borland meterá en el ejecutable.

Lo primero es tener un .RES, abrirlo con el PellesC y guardarlo como .RC. Si te creas un .RC desde cero con el PellesC tambien sirve. Antes de compilar con el MAK de la aplicación hay que generar el .RES y esto se hace de la siguiente manera:

1\pellesc\bin\porc /I\pellesc\include2 programa.rc

Como los ficheros de cabecera de PellesC están en varios directorios los he copiado todos a un subdirectorio que se llama include2… ya dije que era una chapuza.

Luego hay que editar el .MAK de la aplicación para decirle que no use el compilador de recursos de Borland y que enlace directamente el .RES que acabamos de generar. Esto se hace comentando estas lineas:

1# Application directories & filenames ########################################
2...
3#APP_RC   = $(APP_RES_DIR)\$(APP_NAME).rc
4...
5# Borlanc directories & flags ################################################
6...
7#BORLANDC_RES_EXE     = $(BORLANDC_EXE_DIR)\brc32.exe
8...
9# Explicit Rules #############################################################
10!if $(RES_FILE) == YES
11#$(APP_RES) : $(APP_RC)
12#   $(BORLANDC_RES_EXE) -r $**
13$(APP_EXE) :: $(APP_RES)
14@if exist $(APP_EXE) $(DEL) $(APP_EXE) > nul
15!endif

Y con esto he desinstalado el Borland C++ 5.01. PellesC se puede descargar desde http://www.smorgasbordet.com/pellesc/. Si alguien prueba esto y quiere compartir sus experiencias estaré encantado de leerlas.

fivewin.info

Fivewin.info es – era – una de las mejores webs sobre Fivewin. Mantenida por Patrick Mast, recogía noticias sobre Fivewin, aportaciones del autor de la web y de otros usuarios a Fivewin. Desde hace meses está sin actualizar. Patrick tomó la decisión de participar empresarialmente en xHarbour.com y ha dejado de mantener la web, algo por otra parte totalmente entendible. En un futuro próximo xharbour.com pretende ser competidor de Fivewin con su propio GUI y Fivewin.info era uno de los puntales de Fivewin. Lo bueno de Fivewin.info era que tenía actualizaciones casi a diario y eso creaba un gran sentimiento de comunidad. Todos los fivewiners teniamos un sitio de referencia donde aparecían las noticias más importantes de nuestro entorno de desarrollo favorito.

Han surgido otros intentos de hacer portales basados en lenguajes xbase como Olivares2000 y Puertosur, pero, siento decirlo, no es lo mismo. Quiza sea porque estos dos sitios están restringidos a usuarios en español, pero desde que Fivewin.info dejo de actualizarse parece como si hubiera menos usuarios de habla inglesa de Fivewin o es que los que hay hacen menos ruido que antes. Una cosa que no entiendo es porqué Antonio Linares no crea un sitio parecido… creo que es un error de estrategia monumental. Lo cierto es que Fivewin ha perdido apoyos importantes y eso a la larga puede pasarle factura.

Una cosa que me hizo mucha gracia las primeras veces que visité Fivewin.info fue la foto de Patrick en la portada. Luego comprobé que era de mucha utilidad: en la reunión de Olivares2000 en Marbella iba hablando con Manuel Calero hacia la sala donde se iba a celebrar la reunión y vi dos hombres con bigote dentro de la sala. Uno era Patrick, lo conocí enseguida por la foto de su web, y le pregunté a Manuel quien era el otro. Me contestó: Antonio Linares. Vaya, pensé, conozco antes a Patrick que al padre de la criatura. Antonio, creo, no tiene ninguna foto en su web.

navegación por pestañas y portadas de libros

Después de mucho probar he llegado a un diseño de la nueva web de alanit que me gusta. Está basado en el artículo taming lists de A list apart, uno de los mejores sitios sobre diseño web que conozco. El nuevo diseño queda así:

El caso es que me ha tocado ponerme de nuevo a mirar cosas sobre diseño web, faceta que tenía algo abandonada, y me ha picado la curiosidad el sitio de Jeffrey Zeldman, uno de los editores de A list apart. Resulta que Zeldman tiene un libro sobre diseño de sitios web que tiene buena pinta y que va a ser publicado proximamente en España. Es chocante comparar la portada de la versión original de libro con la que se va a editar aqui.

A lo mejor son manias, pero mira que me fastidia que le cambien la portada a un libro. De verdad que es algo que me toca las narices.

la culpa fue de un anuncio

La revista PcActual publicó en su número de Octubre de 1996 el siguiente anuncio:

Contesté y publicaron la versión 2.0 de Cuaderno de Bitácora en la revista de diciembre. Yo había hecho el programa para mi, para aprender Fivewin e incluso estuve hablando con Antonio Linares para ceder los fuentes del programa al directorio de ejemplos. A los pocos dias de publicarse la revista recibí una carta desde Baza, en Granada, en que un señor solicitaba la versión completa del programa. Mi primer cliente se llama Teodoro y vive en la calle Alamillos de Baza, es algo que nunca olvidaré.

Después hice el Puchero por un acuerdo con una compañera de trabajo que tenía desperdigadas muchas recetas en libretas y papeles. La idea era hacer yo el programa y ella meter las recetas y venderlo. Al final mi compañera se hecho atrás y el programa se vendió sin recetas. El primer registro fue de Paco Cañizares, también un compañero de trabajo al que le hizo gracia el programa. Luego vinieron Hemerot, ahora Azeta, y Guardian, ahora reconvertido en Colossus.

Quiza si no hubiese aparecido el anuncio yo habría donado los fuentes como un ejemplo más de five y me habría perdido esta aventura.

Folders XP con Xailer

A raiz del post sobre los folder XP con FWH en los comentarios se la librado un pequeño intercambio de opiniones. Por alusiones, José Giménez posteaba un enlace a un ejemplo de Xailer donde se puede ver esto:

No es exactamente igual que mi diálogo de Colossus que mostraba en el artículo mencionado, pero desde luego que las trasparencias están bien resueltas.

un sitio para trabajar

En el artículo titulado Bionic office, Joel Spolsky hace un repaso de las razones por las que ha invertido en un equipamiento adecuado de oficinas y las condiciones que de sus nuevas oficinas.

Las razones son:

  • existen muchas evidencias de que un lugar de trabajo adecuado beneficia la productividad de los programadores, especialmente las oficinas privadas.
  • unas oficinas adecuadas permiten contratar a los mejores desarrolladores.
  • la oficina es el sitio donde más tiempo pasas de tu vida, aparte de tu familia y amigos.

mientras que las condiciones que tuvo en cuenta para diseñar su oficina fueron estas:

  • oficinas privadas con puertas que se puedan cerrar.
  • muchos enchufes para enchufar cualquier tipo de cacharro.
  • que se pueda recablear toda la oficina sin abrir las paredes.
  • que permita hacer programación por parejas.
  • los monitores no deben estar delante de una pared.
  • la oficina debe ser un sitio agradable donde estar.

Esto puede parecer chocante en sitios como España, donde la mayoría de sitios de trabajo no se diseñan en función de la labor a desempeñar. Bastantes centros de trabajo que conozco son un auténtico desastre. He visto mesas en pasillos donde hay gente entrando y saliendo constantemente, salas enormes con gente revuelta sin criterio y despachos con libros y periódicos amontonados formando auténticas piras.

También conozco gente superorganizada, que tienen su sitio de trabajo superorganizado y da gusto esta allí. Yo tengo una tendencia natural al desorden, pero intento organizar periodicamente mi sitio de trabajo. Lo que tengo comprobado es que merece la pena estar media hora organizando y archivando cosas y dejarte la mesa limpia y todo organizado.

Después trabajas mucho mejor.

folders XP con FWH ¿ misión imposible ?

En el build de Julio de 2003, FiveTechSoft anunciaba la siguiente mejora en su librería FWH:

* Enhancement: Windows XP true folders! are ready for FWH/FW++. They are backwards compatible with your existing folders. All you have to do is change «TFolder» into FOLDER32 (or SysTabControl32) into your resources. No source code changes are required!

Como esto era algo que llevaba buscando bastante tiempo para incorporar a mis programas compré la citada actualización de FWH. Al probar el control, me encontré que éste no funcionaba bien. Las pestañas se pintaban bien y el cuerpo del folder hacía el degradado de los folder de XP, pero los controles estáticos hacían la trasparencia sobre el color del diálogo que había detrás en vez de sobre el color del folder. Asi:

Puesto al habla con FiveTechSoft estuve 2 meses esperando una solución al problema. La solución que me dieron era quitar el brush NULL del cuerpo del folder, de manera que se perdía el degradado que hace XP sobre los folder y este queda con el mismo color que la trasparencia. Comentando la linea donde se asigna el brush NULL a los diálogos del folder:

1#ifndef __CLIPPER__
2// oDlg:SetBrush( TBrush():New( "NULL" ) ) //byhDC
3#endif

y después de ajustar los valores de coordenadas en el método Initiate del control

1::aDialogs[ n ]:SetSize( ::nWidth()- 8, ::nHeight() - ::nFdHeight - 4 )

el ajuste del diálogo del folder no es total, pues queda una linea en blanco a la izquierda del diálogo que no he conseguido quitar. La cosa queda de esta manera:

O sea folder de XP a medias. Una posible solución sería pintar el dialogo de blanco o de un color de los que XP usa para el degradado, pero esa es una mala solución. Nunca se deben pintar controles con un color fijo, pues estamos yendo contra el principio de uniformidad del interfaz de usuario que debemos respetar. Si pintase el diálogo del folder de color blanco, un usuario de Windows98 o Windows2000 vería las pestañas en gris – o en el color del diálogo – y el cuerpo en blanco, lo cual sería una chapuza monumental.

Puesto de nuevo en contacto con FiveTechSoft sobre la manera de hacer diálogos como este:

la respuesta es que realmente estos diálogos son un tipo especial de diálogos llamados Property Sheet y que son como Wizards que implementa el propio Windows. Lo que no se puede hacer con WindowsXP – según FiveTechSoft – es usar folders de XP dentro de un diálogo donde haya otros controles fuera del folder además de los botones de Aceptar y Cancelar.

Mi gozo en un pozo.

Postdata. El caso es que a mi me suena haber visto un ejemplo de un diálogo así en un test de Xailer que me envió José Giménez antes del verano, pero con los últimos cambios de xHarbour no me funcionan los ejemplos que tengo de Xailer.

upx

Estos dias estoy probando UPX – the Ultimate Packer for eXecutables. Es un compresor con licencia GNU, pero que sus desarrolladores permiten que se use en aplicaciones comerciales. Permite comprimir ejecutables con múltiples formatos, entre ellos el Win32/PE de Windows. El ratio de compresión es muy bueno, por ejemplo Colossus pasa de 1.764.352 bytes a 564.248 bytes. En las pruebas que he hecho con Windows98 y WindowsXP, el ejecutable comprimido no ha dado ningún problema.

UPX se puede descargar desde http://upx.sourceforge.net/.

actualización Olvidé decir que UPX sólo comprime ejecutables de 32 bits. No sirve para aplicaciones hechas con Clipper+FW, pero si para xHarbour+FWH.

ya funciona bien la i18n de xHarbour

La semana pasada Giancarlo Niccolai corrigió los ultimos errores en hbdict, la herramienta de traducción de diccionarios que utiliza la i18n de xHarbour. Con estas correcciones, xHarbour ya cuenta con una característica de lenguajes de proramación modernos como es la facilidad de internacionalización de los programas. Para mi esto es muy importante pues aspiro a tener versiones multiidioma de mis programa a corto plazo. De momento ya tengo Colossus traducido a inglés y estoy comenzando con la traducción a Catalán. Después seguirán los otros programas, tan pronto como vaya migrandolos a xHarbour.

Quiero agradecer a Giancarlo Niccolai el trabajo que ha hecho con la i18n, y su paciencia conmigo. He de decir que además de un brillante programador ha demostrado tener una enorme paciencia. Ha habido muchas veces en que le he escrito diciendole que la i18n no iba bien, y siempre se ha prestado a aislar el problema mediante test y ejemplos. Algunas noches le escribía pasadas la 1A.M. y cuando me levantaba a las 7A.M. ya tenía su respuesta en mi buzón de correo. Creo que todos los correos me los ha contestado en menos de 5 horas y encima cuando ya conseguimos que todo funcionase bien me escribió: Very well. Again, thanks for your support 🙂.

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.