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 f...

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 apl...

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...

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    ...