Hace unos meses tuve un problema de lentitud con una aplicación. Se había eliminado el servidor de una oficina y la aplicación, que funciona en red, se tenía que ejecutar en remoto desde otra. Comenzaron los problemas de lentitud, abrir una formulario TFSDI — https://cincomundos.wordpress.com/2006/06/13/fsdi2006/ — con una rejilla de datos sobre un fichero tardaba casi 10 segundos. Después de varias pruebas, vi que el problema era una clase browse muy vieja, y que simplemente actualizando la versión de Harbour + FWH usada en la aplicación la lentitud desaparecía hasta niveles aceptables.
Entonces caí en la cuenta de que en esta aplicación estaba utilizando una clase de manejo de dbf, y al intentar compilarla para la versión de Harbour a utilizar me daba un montón de errores. La alternativa era rehacer todo el código afectado por la clase o seguir utilizándola actualizándola, cosa que a su vez llevaba a rehacer código pues esa clase había sido actualizada de manera no compatible con la que yo tenía.
Lo que hice fue coger la calle de enmedio. Rehice todo el código afectado por la clase a Harbour puro, y comencé a utilizar una clase de manejo de buffer de registro que me proporcionó Marcelo Via Giglio en http://forums.fivetechsupport.com/viewtopic.php?f=6&t=34402 . Con esta clase podría manejar todos los campos de un dbf como datas de un objeto y cargarlos/salvarlos con una llamada a un método. Es una solución sencilla, pero me evitó tener que aprender el manejo de otra clase de gestión de dbf que suelen tener montones de opciones que nunca utilizo. En mi caso, menos es más.
En febrero de este año comencé la publicación de Harbour Magazine, una publicación dedicada al lenguaje de programación Harbour.
Es por ello que este blog ha estado un tanto abandonado, pues he estado publicando allí información acerca del lenguaje Harbour. Harbour Magazine es bilingue español/inglés, es la primera vez que hago algo así y está siendo una gran experiencia.
Los post publicados hasta ahora han sido los siguientes:
Con Harbour Magazine ya son tres los sitios web donde publico: el blog de alanit, cincomundos y Harbour Magazine. Sinceramente no me gusta nada tanta dispersión de contenidos así que estoy pensando seriamente en unificar todo en un único sitio. Veremos como lo hago.
Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.
Harbour Magazine organiza una reunión de programadores en Novelda (Alicante — España) los próximos días 11 y 12 de Noviembre de 2017.
En la reunión tendremos una visita turística a la ciudad, conferencias de destacados programadores y mesas redondas. El idioma de la reunión será el español. Las conferencias previstas en el momento de abrir la inscripción son las siguientes:
Patrón MVC con FWH y MySQL, por Manuel Calero Solís.
Harbour Data Objects, por Manu Expósito.
Inteligencia Artificial con Harbour, por Antonio Linares Cañas.
Uso de Advantage Data Server con Harbour, por Reinaldo Crespo.
Charla de Rafa ‘TheFull’ Carmona, pendiente de concretar.
En caso de que algún asistente desee realizar una conferencia puede comunicarlo en el formulario de inscripción.
Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.
Patrick Mast es el destinatario de una nueva entrevista. Patrick fue uno de los iniciadores del Proyecto Harbour, hospeda xHarbour.org, es el propietario de xHarbour.com y un miembro activo de nuestra comunidad. Es también una gran persona y ha contestado amablemente a mis preguntas.
Cuentanos acerca de tí, una pequeña biografía, donde vives y a que te dedicas.
Vivo en Bélgica y este año cumplo 50 años. Comencé a programar con 13 con un Sinclair ZX81que compré con mis primeros ahorros. ¡Estaba intrigado sobre qué era posible hacer con una máquina tan pequeña! ¡Podias escribir algo y te respondía con texto o sonido! ¡Haha, para un chico de 13 años era sorprendente! Tenía unicamente 1KB de memoría. No 1GB, ¡¡1KB!! ¡Esto es 1024 bytes, chicos! Esto me enseño a ser muy austero con el código que escribo. Por qué usar 100 bytes si puedes hacerlo con 20, verdad ?
Entonces, en 1984 apareció el Sinclair QL. Lo utilicé para construir mi primera aplicación real, llamada ‘Survey’ (n. del t.: encuesta). Era una aplicación para registrar todas las carreras de la compañía de taxis de mis padres. De esta manera podía dar una ‘encuesta’ de todas las carreras realizadas en un periodo, calcular la distancia, el gas utilizado, etc. Estaba muy orgulloso de ella. ¡Una aplicación real de negocios!
Mi siguiente ordenador fue un IBM Personal Computer. Tenía como sistema operativo Microsoft MS-DOS. Tenía su propio monitor y teclado. ¡Una gran máquina! En ese momento estaba buscando un entorno de desarrollo mejor que el MS-BASIC que traía incorporado. Estaba mirando dos sistemas: PowerBasic y Nantucket Clipper. Elegí Clipper porque en ese momento estaba convencido de que Clipper tenía más futuro que PowerBasic.
Mi primera aplicación escrita en Clipper fue “Resto-File”, un TPV para restaurantes. Mi vecino en esa época tenía un resaurante y me pidió que desarrollara algo que le facilitara recoger las comandas de los clientes y comunicarlas a la cocina. El programa funcionó bien durante años y años. El restaurante también quiso imprimir facturas y llevar la contabilidad, así que comencçe mi siguiente aplicación Clipper a la que llamé “Fakt-File”. Era una aplicación de facturación y contabilidad para toda clase de negocios.
Entonces, en 1995 Microsoft lanzó Windows 95 y fue un éxito instantaneo para Microsoft. Debido a que yo totdavía utilizaba Clipper para todos mis desarrollos y Clipper era sólo para DOS, tuve que espabilarme y buscar una solución para llevar mis aplicaciones a la nueva plataforma Windows. En ese momento, Delphi era una gran elección, pero suponía reescribir TODO el código. Clipper y Delphi eran totalmente diferentes. Entonces conocí FiveWin que era una librería GUI que se usaba con Clipper. Así, podía mantener todoe el código de negocio y reescribir unicamente el interfaz de usuario. ¡Perfecto!
Comencé a desarrollar con Clipper/FiveWin y lancé WinFakt! versión 1.0 en 1996, sólo un año después de Windows 95. Aunque actualmente utilizamos Visual xarbour para nuestros nuevos desarrollos, todavia utilizamos FiveWin para nuestro ejecutable WinFakt.exe que va por la versión 11.
En e 2003 comencé xHarbour.com con Ron Pinkas. Queriamos dar a la comunidad [x]Harbour una versión precompilada y empaquetada de xHarbour con la opción de soporte profesional. Actualmente, en WinFakt!, utilizamos xHarbour/FiveWin/Visual xHarbour en todos nuestros desarrollos.
Para los que no te conozcan, coméntanos cuál es tu relación con la comunidad Harbour. ¿Cómo participas y qué opinas de ella ?
Cuando Antonio Linares comenzó a hablar sobre tener un nuevo compilador/intérprete que reconociera el lenguaje Clipper, yo estuve muy interesado. Todavía recuerdo el día que tuvimos que decidir el nombre del nuevo compilador. Siendo honesto, no me gustó el nomnre “Harbour” al principio, pero al grupo le gustó y así nació Harbour. Yo contribuí dando al grupo presencia en la web y proporcioné el logo y los gráficos de la comunidad Harbour.
¿ Cómo empezaste en Harbour y en qué momento decidiste usarlo profesionalmente ?
Comencé a utilizar Harbour desde su creación.
¿ Qué tipo de software haces ? ¿ De qué desarrollo tuyo te sientes más orgulloso ? ¿ Puedes mandarnos un pantallazo de tu desarrollo ?
Nuestra aplicación principal es WinFakt!. Se trata de un programa de facturación/contabilidad para pequeños negocios, que es mantenida actualmente por 6 desarrolladores. Nuestra compañía tiene un total de 23 empleados, repartidos por todo el mundo.
Este es una pantalla de WinFakt:
Este es nuestro generador de informes, desarrollado con VXH:
¿ Utilizas algún GUI en tus desarrollos ? ¿ Cual de ellos ?
Todavía utilizamos FiveWin para nuestro winfakt.exe. Para nuevos desarrollos y mejoras de WinFakt! utilizamos Visual xHarbour.
Cuentanos cual es tu entorno de desarrollo y qué herramientas de programación utilizas.
Utilizo un ordenador Mac para mis desarrollos. Utilizamos Microsoft Code para Mac como editor de código. Compilamos y ejecutamos/probamos en Windows 10 con Parallels Desktop en Mac. Todavía usamos TotalComander en Windows como gestor de ficheros.
¿ Qué echas de menos en Harbour o en su comunidad ? ¿ Qué te gustaría que tuviera Harbour ?
Un gran IDE como Visual xHarbour, pero para Harbour
¿ Conoces otros entornos de programación aparte de Harbour ? ¿ Qué tipo de desarrollos has hecho en otros entornos ?
Tengo conocimientos de C, C#, Delphi, Javascript etc. Pero programar es como montar en bicicleta, una vez sabes montar a una no es dificil montar en otra
Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.
En esta nueva entrevista he contactado con Antonio Linares, uno de los iniciadores del proyecto Harbour y desarrollador de la librería Fivewin, uno de los más populares GUI para Harbour.
Explícanos un poco tu bio, donde vives y a qué te dedicas profesionalmente.
Nací hace 55 años en Málaga. Un día un ordenador ZX81 llegó a mis manos, lo conecté a la tele, escribí “hola” y quede fascinado mirando esas letras en la pantalla. Fué mágico. A partir de ahí la curiosidad y las sincronías de la vida, hicieron el resto. Mi hobby se transformó en mi profesión. Un regalo inmenso de la vida.
Para los que no te conozcan, coméntanos cuál es tu relación con la comunidad Harbour. ¿Cómo participas y qué opinas de ella ?
Basicamente soy el papá de Harbour. Me límité a poner la semillita y esta se convirtió en un árbol enorme con muchas ramas. Otra bendición de la vida. Somos muy afortunados de haber sido capaces de construirlo entre todos.
¿ Cómo empezaste en Harbour y en qué momento decidiste usarlo profesionalmente ?
Queria entender como funcionaba Clipper. No decidí nada, simplemente las cosas fueron sucediendo. Lei varios libros de construcción de compiladores, me puse a hacer pruebas y compartí los resultados publicamente. Mucha gente se entusiasmó y se puso a ayudar. Y así comienza el proyecto Harbour.
¿ Qué tipo de software haces ? ¿ De qué desarrollo tuyo te sientes más orgulloso ? ¿ Puedes mandarnos un pantallazo de tu desarrollo ?
De FiveWin sin duda alguna. Me ha hecho conocer a muchos grandes amigos por todo el mundo, me ha hecho viajar, me ha permitido tener mucho tiempo para mi y sigue pagando mis facturas
¿ Utilizas algún GUI en tus desarrollos ? ¿ Cual de ellos ?
FiveWin para Windows. En Mac uso FiveMac. Y en Android e iOS uso QT ó directamente el GUI propio de esas plataformas.
Cuentanos cual es tu entorno de desarrollo y qué herramientas de programación utilizas.
Total Commander como manejador de ficheros. Fivedit como editor de código fuente. Visual Studio para depurar a bajo nivel.
¿ Qué echas de menos en Harbour o en su comunidad ? ¿ Qué te gustaría que tuviera Harbour ?
Me parece genial tal y como está. Irá incorporando lo que sea necesario y evolucionará gracias a la comunidad.
¿ Conoces otros entornos de programación aparte de Harbour ? ¿ Qué tipo de desarrollos has hecho en otros entornos ?
Todos son muy similares pero con Harbour puedo hacer lo que desee muy rapidamente. Es la magia de Clipper: nos hizo a todos programadores profesionales mientras jugábamos con él
Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.
Este mes de mayo se han producido interesantes novedades en el entorno del lenguaje Harbour:
Aleksander Czajczy?ski ha creado The Harbour Playground, es una versión autocontenida de Harbour que se puede ejecutar desde cualquier navegador moderno, útil para probar trozos de código, ejemplos, etc. También permite formatear código mediante una versión embebida de hbformat. Disponible en https://os.allcom.pl/harbour/ y sencillamente impresionante.
Viktor Szakats ha realizado una actualización del sitio web de Harbour. La web de la versión 3.2 ha incorporado el aspecto de la web de la versión 3.4, y se encuentra disponible en https://harbour.github.io/. La Guía de Referencia de Harbour se ha enlazado con el Harbour Playground, y ahora es posible ejecutar los ejemplos directamente desde el navegador.
Manu Expósito ha terminado la versión 1.0 de su Harbour Data Objects, su librería de acceso universal nativo a bases de datos SQL. Incorpora, de momento, acceso a bases de datos SqLite y SQLCipher, y se encuentra en desarrollo el acceso a MySql. El grupo de soporte de la librería está https://es.groups.yahoo.com/neo/groups/HDO_Harbour/info.
He liberado el código fuente de la versión 6.10 de Colossus, mi programa de gestión de contraseñas realizado con Harbour y FWH. Disponible en https://github.com/JoseluisSanchez/colossus
¿ Conoces alguna novedad sobre Harbour, su entorno de programación, artículos sobre el lenguaje, código fuente, etc. que merezcan ser publicados ? Escribeme a mediumharbourmag@gmail.com y lo publicaré en el próximo boletín mensual sobre Harbour.
Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.
El diseño plano o flat design ha sido una tendencia en diseño web en los últimos años, pero con la llegada de Windows 10 se ha impuesto también en cuanto a interfaces de sistemas Windows. El diseño plano se caracteriza basicamente por:
Ausencia de texturas, sombras, gradientes, biseles o cualquier otro elemento que provoque sensación de profundidad.
Diseño minimalista, donde los elementos respiran y no se amontonan uno encima del otro.
Uso de formas geométricas simples (cuadrados, rectángulos, círculos, etc.) para estructurar la información o diseñar elementos de la interfaz (botones, iconos, etc.).
Uso de colores uniformes, vibrantes.
Como programadores de aplicaciones en un entorno gráfico como Windows, debemos preocuparnos de que nuestras aplicaciones sigan las reglas de interfaz del entorno, de otra manera su aspecto quedará totalmente desfasado. En función del tipo de software que realicemos esto tendrá todavía más importancia, no es lo mismo desarrollar sistemas por encargo que los usuarios tienen que usar de manera obligatoria que desarrollar aplicaciones a la venta por internet donde la primera impresión al usuario será determinante en el proceso de compra. Si quieres que tu aplicación se vea bonita debes siempre seguir las reglas del interfaz del sistema operativo en que se ejecuta. Un diseño simple y funcional es la clave para tener éxito.
En mi caso, como programador de aplicaciones Windows, he modificado mis aplicaciones para dotarlas de un diseño plano. A continuación muestro los cambios que he realizado:
Eliminación de gradientes en el registro seleccionado de las rejillas de datos.
Eliminación de efecto de sombra en las pestañas de ordenación de las rejillas de datos.
Eliminación de gradientes en los títulos de las listas de acciones.
Además, he dejado de utilizar una clase calendario – lo siento Paco – desarrollada a medida por el control estándar de Windows. El cambio de aspecto se muestra en las siguientes imágenes de mi programa el Puchero, que es el primero que he adaptado al estilo plano.
Y tú, ¿ has adaptado tus programas al diseño plano ?
Con la encuesta para programadores Harbour a punto de finalizar, tenemos casi 200 respuestas. Sin embargo, las dos entradas anunciando la encuesta han sido vistas más de 500 veces, con lo que una primera conclusión es que hay muchos más lectores de la publicación de los que han respondido la encuesta.
Cuando termine la encuesta publicaré toda la información de la misma, pero lo que sí puedo adelantar es que la diversidad de entornos/GUI/editores/herramientas que utilizamos es enorme. Yo no conozco, ni de lejos, todas las herramientas mencionadas en las encuestas, por lo que os animo a todos los lectores de Harbour Magazine a colaborar con la publicación para dar a conocer vuestras herramientas.
Harbour Magazine está abierta a colaboraciones de todos los programadores Harbour de todo el mundo que quieran publicar artículos de las siguientes categorías:
descripción de funcionalidades o características de [x]Harbour.
descripción de funcionalidades o características de los GUI para [x]Harbour.
Descripción de funcionalidades, características, ejemplos de código de librerías o funciones que hayamos creado o utilicemos habitualmente.
Descripción de funcionalidad, características o tutoriales de herramientas de programación: editores de código, IDE, editores de recursos, etc.
Descripción de funcionalidades de programas propios que puedan servir de ejemplo para otros programadores, explicando el motivo de lo novedoso de la funcionalidad y la manera de implementarlo.
Libros de programación o de temas relacionados con programación: psicología, sociología, organización del trabajo, productividad, etc.
Cualquier otro tema relacionado con programación en lenguajes xbase.
Experiencias con otros lenguajes/entornos de programación.
Puedes escribirme a mediumharbourmagARROBAgmail.com adjuntando el artículo a publicar. Si quieres convertirte en editor de Harbour Magazine escribeme para que te incorpore a la publicación.
Esta entrada se publicó originalmente en Harbour Magazine, mi publicación sobre el lenguaje de programación Harbour.
He preparado una encuesta para conocer más acerca de los programadores Harbour de todo el mundo. La encuesta me permitirá obtener información acerca de qué versión de Harbour usamos más, que tipo de software hacemos los programadores Harbour y también obtener información para futuros artículos de Harbour Magazine.
La encuesta estará abierta hasta el domingo 26 de Febrero. Por favor, si participas en algún foro sobre Harbour o alguna de sus GUI difunde la encuesta.