Entradas

Mostrando entradas de noviembre, 2022

Upload Files

Imagen
Una de las funciones que teníamos pendientes en nuestro servidor era la capacidad de subir ficheros y ya lo tenemos 😊. La manera de subir los ficheros es un proceso un poco diferente a los demás, ya que lo forman  2 acciones: 1.- Elegir fichero/s 2.- Subir y procesar los ficheros subidos  Los ficheros que se suban al servidor van a parar a una carpeta temporal de nuestro sistema, por defecto será ./tmp. Esta carpeta es gestionada automáticamente por nuestro servidor que se encargará de mantener e ir borrando los ficheros a partir de un máximo de tamaño de la carpeta, por lo que no nos deberemos preocuparnos de nada.  Estos ficheros una vez se suben y están en la carpeta temporal, deberemos procesarlos y meterlos donde queramos: moverlos, copiarlos, insertarlos en registros blob,... A nivel de la Api que estamos diseñando para las pantallas, la codificación es similar a los otros controles.  Proceso 1 La manera html de indicar que muestre un button para seleccionar fichero sera: <in

Gestion de errores

Imagen
Uno de los temas mas importantes en el diseño de una aplicación es la gestión de errores. Gracias a ello podemos ver por donde rompe nuestro programa. El problema empieza a surgir cuando nuestro querido harbour lo queremos portar a la web. Básicamente podemos generar un error, capturarlo y mostrar el error. El problema empieza a surgir cuando a nivel web, este viene desde una carga de pagina o desde una petición ajax. Hemos de aprender a controlar este flujo, y saber mostrar el mensaje. A esto le debemos saber sumar que nuestro httpd2 ahora es capaz de pre-procesar nuestras paginas web con nuestros {{ ... }} o insertando código prg que será procesado dentro de las etiquetas <?prg ... ?> En resumen, un escenario que debemos controlar lo mejor posible para ayudarnos al diseño de la app.  Como he comentado en muchas reuniones para mi la mejor practica es usar nuestra función _d(...) que nos sacara por el dbview la información que indiquemos y esto permite tracear muy bien la aplicac

Pantallas, alla vamos...

Imagen
Este viernes se añadió Quim a la reunión  para mostrarnos como ha trabajado durante esta semana una nueva manera para enfocar el diseño de las pantallas https://formio.github.io/formio.js/app/builder   Durante estas últimas sesiones explique como podríamos abordar el tema de las pantallas para acabar de poner las patas a nuestro taburete. Una de las opciones era aprovechar algunos de los muchos editores wysiwyg que existen, alguno había visto por encima durante estos años pero realmente no los usaba porque creo mis pantallas de otra manera.  Fue cuando Quim me dijo: "mira Charly esto te va a gustar" y... me encantó. El Form.IO es un editor online muy avanzado que te permite crear tus pantallas arrastrando los diferentes controles y en cuestión de minutos tienes tu pantalla "pintada". Esta pantalla luego te la puedes gravar en un fichero, en una tabla, donde sea, y cuando desde tu programa la recuperas se pinta al momento.  Mi manera de pensar cuando vi eso era en cl

Cerrando el concepto

Imagen
Esta semana ha sido especial porque he cogido ya el viejo TWeb y he intentado portar una parte para poder mostrar la parte de las pantallas, la que mas preocupa.  En la demo inicial de UHttpd2 la parte de pantallas la codifiqué toda en html para poder entender el tema de los tags que deben tener los diferentes controles para que funcione el sistema. Al final todo funcionaba pero muchos se quedaban aún con la mosca con la parte de diseño de las pantallas, que lo veían complicado, pero ya había explicado en la anterior sesión que para llegar a esa codificación especial de tags, se podía llegar por varias vías: Frameworks estilo TWeb a modo comandos, sistema de parseo de ficheros *.rc, editor wysiwyg, traductor de pantallas windows estáticas a html,...  Es aquí porque decidí hacer un parche con TWeb (digo un parche porque no está del todo traspasada la librería) para poder mostrar todo el concepto. Tuve que tocar unas cuantas cosas y es que cuando diseñas sistemas que van mutando y cambia

Preprocesador

Imagen
Recuerdo que montamos esta parte en el mod intentando asi emular a lo que hacia php. El sistema nos permite tener páginas mas dinámicas y podemos facilmente insertar código harbour en tiempo de ejecución <h2>Home</h2><hr> Welcome. Now is {{ time() }} .  En php seria: <h2>Home</h2><hr> Welcome. Now is <?= time() ?> . Ahora podemos ejecutar la función que tengamos en los tags {{ ... }}. Esto hace que nuestro servidor preprocese antes de enviar la página, la función que tenemos encerrada entre los tags. De la misma manera y a semejanza de php podemos crear los tags <?prg ... ?> . Esto nos permiste construcciones de este tipo: <!DOCTYPE html> <html lang="en"> <h2>Preprocesor example...<h2><hr> <?prg     local a     := time()     local cHtml := '<ul>'     local n           for n := 1 to 5         cHtml += '<li>Item ' + ltrim(str(n)) + ' => ' + a + '</li&g