Escenario Un usuario se conecta con el móvil a su aplicación de empresa. Si es la primera vez que lo hace ésta le pide autorización para recabar su localización. La aplicación manda la localización al servidor y desde el servidor se informa a una página de monitorización. Dicha página está conectada por websocket con el…
Hibernate no puede resolver la propiedad…
Escenario En una aplicación Spring Boot v2.3.4 hay dos entidades Balance y Shop. Una tienda (shop) puede tener varios saldos y un saldo (Balance) ha de estar relacionado con una tienda. Además existen panaderías (Bakery) y sastrerías (TailorShop) que extienden la clase Shop:
|
1 2 3 4 5 6 7 8 9 |
@Entity public class Balance { @ManyToOne @JoinColumn(name = "shop_id") private Shop shop; ... } |
|
1 2 3 4 5 6 7 8 |
@Entity abstract public class Shop { @OneToMany(mappedBy = "shop") private Set<Balance> balances; ... } |
|
1 2 3 4 5 6 |
@Entity public class Bakery extends Shop { ... } |
|
1 2 3 4 5 6 |
@Entity public class TailorShop extends Shop { ... } |
Y necesito saber cuál es la fecha del…
Chart.js: cómo cambiar el idioma (locale) dinámicamente
Escenario Por un lado una aplicación que permite al usuario personalizar el idioma del sitio. Por otro, una gráfica de tipo línea temporal generada con la biblioteca Chart.js, integrada en un módulo de React con react-chartjs-2. Problema Según un comentario de un usuario de Stackoverflow, basta con un require('moment/min/moment-with-locales'); y establecer el valor de la…
Cómo acceder a partición encriptada
Escenario Hace poco he añadido un disco SSD a mi ordenador para mejorar el rendimiento del sistema operativo. Instalé un Kubuntu en el nuevo disco y lo configuré como el principal del sistema. La partición del antiguo usaba el gestor de volúmenes lógicos LVM y no fui capaz de entrar en el viejo sistema operativo,…
Cómo NO hacer iteraciones anidadas en thymeleaf 3
Escenario Me han pedido que integre en una nueva aplicación una funcionalidad de otra ya existente. No es la primera vez que me ha tocado hacerlo. Suele ser un trabajo tedioso basado en continuos copia y pega y frecuentes refactorizaciones. Una de la vistas que debo importar en la nueva aplicación muestra una tabla con…
ApexCharts.js: No funciona exportar a png
Escenario Ésta es rápida y muy específica, pero nada evidente. Me ha llevado un poco de tiempo dar con el problema. Si no utilizas apexcharts posiblemente no te vaya a interesar esta entrada. Es una biblioteca de JavaScript para dibujar gráficos a partir de datos. Problema Apexcharts ofrece la posibilidad de exportar a PNG desde…
¿Qué es www.roxoenos.xyz?
Escenario Desde hace años tengo una aplicación web apoyada en Laravel, que mantengo con frecuencia. En el servidor corren dos instancias del framework, una para la aplicación principal con Laravel 6, y otra para un API que desplegué hace poco con Laravel 7. Problema Llevo unos días notando que las páginas tardan más en cargarse,…
horario de verano y javascript
Escenario Con el fin de dibujar una gráfica cronológica, necesito generar en javascript una matriz de fechas a partir de una de inicio y otra de fin. En stackoverflow doy con una solución que considero sencilla e inteligible:
|
1 2 3 4 5 6 7 8 |
const getDaysArray = function (start, end) { let days = [] let day; for (days, day = new Date(start); day <= end; day.setDate(day.getDate() + 1)) { days.push(day.toISOString().split('T')[0]); } return days; }; |
Tras modificarla lo justo y probarla compruebo que devuelve una matriz de fechas de tipo '2019-02-01','2019-02-02','2019-02-03','2019-02-04'……
Argument list too long!
Escenario Después de más de 11 años de fiel servicio ha llegado el momento de cambiar de NAS. Hasta ahora había estado usando una máquina con FreeBSD y la interfaz web Nas4Free. Para el nuevo servidor, he optado por instalar Ubuntu y gestionar la administración web con webmin. El soporte de Ubuntu para el sistema…
Instalación y configuración de Guacamole 1.3
Escenario Necesitamos acceder de manera remota a nuestro entorno de trabajo y hemos decidido que guacamole es nuestra mejor opción. Permite el uso de protocoles estándares como VNC, RDP y SSH No requiere instalar software en las máquinas de los usuarios. Gracias a HTML5, una vez instalado en un servidor, puedes acceder a tu escritorio…