Cuando usemos la función is_a en PHP debemos usar el identificador completo de la clase:
use App\Models\ItemActiveErrorMessage;
// Esto no funcionará
is_a('ItemActiveErrorMessage');
// En cambio esto sí
is_a('App\Models\ItemActiveErrorMessage');
Cosas de programación para recordar y de todo un poco
Cuando usemos la función is_a en PHP debemos usar el identificador completo de la clase:
use App\Models\ItemActiveErrorMessage;
// Esto no funcionará
is_a('ItemActiveErrorMessage');
// En cambio esto sí
is_a('App\Models\ItemActiveErrorMessage');
sudo fdisk -l (por ejemplo /dev/sda1)sudo umount /dev/sda1sudo fsck.ext4 /dev/sda1 y aceptamos las sugerencias que nos va proponiendo.Si en el dominio en el que queremos integrar Redsys usamos Cloudfare las notificaciones (webhooks) que nos quiera enviar Redsys no nos llegarán porque Cloudfare las bloquea al considerar que no las está realizando un navegador al uso. Bien por Cloudfare, que para mucha morralla antes de que llegue a nuestro servidor, pero mal por el Koas que se tira un día y pico sin comprender por qué el webhook funciona si se llama a mano y no cuando lo hace Redsys.
La solución es incluir una regla en el cortafuegos de Cloudfare para que las peticiones que lleguen desde Redsys a la dirección del webhook no realicen esa comprobación. La forma de hacerlo está perfectamente explicada en esta entrada del blog de Marc Pàmpols.
La integración de la pasarela de pago de Redsys en modo insite es bastante simple pero tiene algunos momentos wtf. Dejo aquí algunos apuntes para no volver a tropezar con ellos en el futuro:
Actualización: los dos últimos puntos no vienen indicados en la documentación de integración del Santander, pero sí vienen en la oficial de Redsys, así que lo mejor es usar esa.
Hay veces que en una aplicación de Vue tenemos una pantalla donde puede haber un número variable de componentes que el usuario puede configurar, por ejemplo en un dashboard o en una pantalla de definición de filtros.
En estos casos usar la sintaxis habitual para importar componentes se hace tedioso y es más sencillo utilizar el componente de Vue component y un sistema de carga dinámica. En esta página lo explican perfectamente.
TL,DR: en la parte de template definimos el componente:
component(:is="currentComponent")
Y definimos la propiedad computada así:
currentComponent()
{
let name = "Aquí establecemos el nombre del componente a cargar";
return () => import(`@/components/Ruta1/Ruta2/${name}`);
}
Hacía tiempo que instalé este repetidor Wifi y ya no me acordaba de cómo acceder a la configuración. Solamente hay que entrar en esta dirección en un dispositivo que esté conectado al repetidor:
Reiniciamos el equipo, y cuando nos aparezca la pantalla de acceso abrimos una sesión de consola con Ctrl + Alt + F1. Nos identificamos y ejecutamos
sudo service lightdm stop sudo init 3
Una vez hecho esto ya podemos ejecutar el instalador y reiniciar el equipo.
La mejor mantequilla de las que se dicen “fáciles de untar” es la de Central Lechera Asturiana. Recién sacada de la nevera se unta sin problema sobre una rebanada blandita de pan bimbo.
Con las demás marcas que he probado la mantequilla sale mucho más dura y destrozas el pan.
Una pequeña pega que tiene Vivaldi es que si al pulsar el enlace de un fichero seleccionamos Abrir en vez de Guardar o Guardar como lo guarda siempre en el disco antes de abrirlo. El problema es que no lo guarda en una carpeta temporal, sino en la carpeta de descargas por defecto.
¿Por qué? Ni idea. Esto hace que al final tengamos en la carpeta de descargas muchos ficheros que no queríamos guardar, solo abrir. ¡Qué terribles estos problemas del primer mundo!
En fin, esto de momento no tiene solución pero se puede hacer una pequeña ñapa:
De esta forma Vivaldi nos preguntará si queremos Abrir, Guardar o Guardar como y ahora podremos decidir:
La opción Guardar queda entonces inútil, porque no tiene sentido guardar ningún fichero en /tmp, que es una carpeta que se vacía periódicamente.
Si en algún momento la liamos con la configuración de nuestro servidor y nos quedamos sin poder acceder a él el proceso para recuperarlo es:
1.- Cambiamos en el panel de control el boot a “Rescue” (rescue-64).
2.- Reiniciamos el servidor, nos llegará por email la contraseña para acceder.
3.- Ejecutamos parted -l para ver qué unidades tenemos. Si tenemos un RAID nos interesa la que empieza por md, por ejemplo md127.
4.- Montamos esa unidad: mount /dev/md127 /mnt/
5.- Hacemos chroot: chroot /mnt/
6.- Buscamos el fichero de configuración donde la hayamos liado y corregimos el error.
7.- Cambiamos en el panel de control el boot a “Hard disk”.
8.- Reiniciamos el servidor y cruzamos los dedos…