Programacion

Animando tu web con SVG 1024 576 juangmuelas
Esfera Svg

Animando tu web con SVG

En cada diseño, intentamos mostrar elementos diferenciadores y que llamen la atención del visitante en algún apartado del sitio creado.

Los SVG (gráficos vectoriales escalables) son una opción muy interesante que además de mejorar visualmente nuestro diseño, lo hacen con un impacto mínimo sobre los navegadores.

La pega es que no son tan sencillos de crear ni manejar a la hora del diseño, como pueden ser los tradicionales formatos de imagen.

Personalmente, he tenido que googlear mucho, para acabar comenzando a aprender gracias a un par de artículos y algunas webs que he ido encontrando por la experiencia.

Tendremos que acostumbrarnos a sus etiquetas (están basados en XML), a su propiedad viewbox donde añadir la ubicación y a su path, donde no sólo se “dibuja” nuestro diseño, sino donde podemos modificar aspectos como el color a través de las propiedades fill o stroke.

captura fill Svg

No voy a ahondar mucho en esa parte, pues todavía soy muy novato en ello (esto no pretende ser una biblia del SVG 😅), pero quiero mostraros sitios donde poder aprender a jugar con ellos, familiarizarnos con su sintaxis y luego aprender sobre sus animaciones.

Familiarízate con los SVG

El primer sitio que creo que deberías visitar es smooth donde puedes crear atractivas olas para incorporar a tus diseños y comprobar sus propiedades en el svg resultante.

svg wave generator

Cuando tengas eso un poco claro, puedes dar un paso más en getwaves y en blobmaker donde creas formas de lo más diversas mientras sigues aprendiendo.

Os recomiendo visitarlos y probar cosas en ellos, porque estoy seguro, que lo acabaréis usando en vuestros proyectos.

Animando nuestros SVG

Ahora que ya vamos asimilando las bases de los SVG, pasamos a la animación.

La mayor parte de las animaciones que hagamos con nuestros SVG van a ser sencillas, por lo que en muchos casos, nos bastará con conocer las animaciones básicas en CSS a través de animate y sus propiedades:

css animate

Para animaciones más complejas como variaciones en las formas, CSS se queda bastante corto hasta donde he podido aprender, con herramientas descontinuadas y pasos adelante y atrás por parte de los navegadores por intentar adaptarse a ello, de los que seguro habréis leído bastante hasta la fecha.

Por tanto, si queremos dar un paso más, tenemos a nuestro infatigable JavaScript y varios frameworks que nos ayudarán:

Animejs es uno de ellos con muchos ejemplos y documentación más que decente. Para mí, son una referencia al respecto y por eso una imagen de su web, presenta este artículo.

Otra, es vivus donde podemos crear animaciones a modo de dibujo, muy atractivas y que en cuanto lo visitéis, os mantendrá haciendo pruebas un buen rato seguro.

web de Vivus

Por último, tengo “deberes” con Snap Snapsvg, del que he leído muy buenos artículos y comentarios, pero acaba siendo de esas cosas que quedan en el cajón (quizás vosotros ya tengáis experiencia con este sitio y podáis darme más feedback).

Para acabar, quería dejaros una web con algunos de los ejemplos más chulos y que seguro habéis visto en más de un sitio web. Es la web de Javi Niguez y su artículo sobre animaciones en SVG.

svg-niguez

Seguro os gustará.

Como siempre, espero que este artículo pueda servir de ayuda y apoyo para muchos de vosotros y, por supuesto, si tenéis otras fuentes o sitios de donde aprender a manejarnos con los SVG, estaré encantado de leeros!.

Envía Emails desde HTML5 con FormSubmit 1024 576 juangmuelas
formsubmit+html5

Envía Emails desde HTML5 con FormSubmit

Corría mayo del 2021 cuando escribí un artículo en mi perfil de LinkedIn sobre como enviar datos desde un formulario de tu web utilizando solo frontend con la librería SmtpJS.

Puedes recordarlo aquí .

La había utilizado varias veces durante la pandemia por COVID19 por ser muy sencilla y rápida de implementar.

Incluso la utilicé en mi primer sitio web.

Por desgracia hubo cambios importantes con los servidores admitidos, y muchos dejamos de aprovechar sus bondades.

Hace no mucho conocí un nuevo proyecto, y tras varias pruebas, decidí usarlo para mi sitio web: FormSubmit.

FormSubmit?

Así es. Desde este proyecto han conseguido crear una herramienta con la que puedas enviar emails con solo crear un formulario en Html. Sólo debemos vincular nuestro email a su endpoint y que ellos manden el correo de forma gratuita.

¿Cómo es este proceso entonces?

Muy sencillo.

Puedes diseñarlo desde cero, aprovechar el ejemplo que ellos tienen en su documentación para poder probarlo desde la web, o aprovechar plantillas.

Para ello debes vincular el atributo action a su sitio, y añadir el email donde quieres que se envíen los datos.

También, nos aseguramos que todos nuestros elementos del formulario tengan el atributo name para asociar a los datos a enviar.

Aquí nos muestran un ejemplo.

Captura formulario de ejemplo

Lo siguiente, es darle al botón de enviar y probarlo 🧙!

Y ahora, ¿qué?

Lo primero que veremos, es que nos redirige a la url que hayamos puesto en el action y nos mostrará un Captcha que debemos resolver.

Tras aceptar o resolver el Captcha propuesto, nos mostrará una página de agradecimiento, y nos devolverá a la url original.

En nuestra bandeja, podremos ver ya el envío del formulario.

recepción de envío en correo

Bien. En el primer envío, nos mostrará un aviso para que activemos nuestro formulario en su sitio web.

Aviso de activación

Si revisamos nuestra bandeja de entrada, podremos ver el correo que nos han enviado (para el ejemplo, está en local).

Correo de activación

Si tras activar, copiamos el código random que nos ha generado para asociarlo a nuestro formulario, podemos sustituir nuestra cuenta de correo por este string en el action, para que no sea visible a terceros.

Código de activación en nuestro action

¿Qué más podemos hacer?

Es bastante personalizable y en la documentación te muestran varias cosas muy interesantes para añadir a tu formulario.

¿Quieres que no se muestre el captcha porque ya implementas otra seguridad?. Se puede.

Añade esta línea y resuelto:

etiqueta no captcha

¿Quieres que envíe a otra página o url en la redirección?

El atributo name con valor _next se encarga de ello.

etiqueta next

¿Qué envíe un correo automáticamente al remitente?

Con _autoresponse y el mensaje personalizado, está hecho.

Etiqueta autoresponse

Hay más, pero creo que es mejor que las explores directamente!.

¿Vas a utilizarlo?

¿Es seguro este correo? 1024 683 juangmuelas
secure-email

¿Es seguro este correo?

Parece correcto, pero…

¿Compruebas quien te envía ese correo electrónico que debes gestionar?

Hablábamos este pasado fin de semana en un grupo de Telegram que tenemos para DAW distancia sobre un Off-topic: Una serie de detenciones tras ser estafada, entre otras, una empresa de Ponferrada mediante un técnica de “man in the middle”…

Y hablando de ello, salió el tema de la seguridad en nuestras comunicaciones, y es que nos topamos todos los días con correos muy toscos y burdos como para engañar a la mayoría de los usuarios… pero a veces son buenos. Muy buenos.

Un compañero entró de lleno al grano y dio una solución que siempre está bien recordar: revisar los encabezados y comprobar si un correo electrónico ha pasado el SPF, DKIM y DMARC.

¿SPF, DKIM y DMARC?

Sin profundizar demasiado, te diré que nos ayudan a autentificar a los remitentes de un correo electrónico, evitando que terceros utilicen un correo que no es suyo.

Los dos primeros ayudan a demostrar la legitimidad de quien lo envía.

El tercero, si está bien configurado, dirá al servidor que debe hacer cuando fallan los anteriores (marcarlo como «spam» por ejemplo)

Vale, ¿Cómo lo compruebo entonces?

Los clientes de correo electrónico ofrecen normalmente la opción «Mostrar detalles» o «Mostrar el original» , pudiendo ver la versión completa de un correo electrónico, incluida su cabecera.

Los servidores muestran en la cabecera -suele ser un largo bloque de texto sobre el cuerpo del correo electrónico-  los resultados de SPF, DKIM y DMARC.

Al ser bastante texto, si lo abrimos desde en un navegador se puede hacer clic en «Ctrl+F» o «Command+F» y escribir «spf,» » dkim,» o «dmarc» para encontrar estos resultados.

El texto podría ser algo así:

arc=pass (i=1 spf=pass spfdomain=ejemplo.com dkim=pass

dkdomain=ejemplo.com dmarc=pass fromdomain=ejemplo.com);

La aparición de la palabra «pass» nos indica que el correo electrónico ha pasado una comprobación de autentificación. «spf=pass,» por ejemplo, significa que el correo electrónico no falló el SPF; procedía de un servidor autorizado con una dirección IP que figura en el registro SPF del dominio.

En el ejemplo, el correo electrónico pasa los tres SPF, DKIM y DMARC, y el servidor de correo puede confirmar que realmente procede de ejemplo.com y no de un impostor.

Buscando las cabeceras en Gmail y en Outlook

He seleccionado a ambos como clientes de correo muy utilizados y que pueden servir de ejemplo para mostrar posibles casos.

En el caso de Gmail, podemos acceder sin problemas a través del menú contextual de su derecha (Estoy seguro que el equipo de DragonJAR verá como bueno este artículo 😁).

Menú contextual de Gmail y la opción "Mostrar original" para ver las cabeceras.

Menú contextual de Gmail y la opción «Mostrar original» para ver las cabeceras.

En este caso, podemos ver la información principal sin rodeos, aunque también nos muestra luego debajo todo el texto, además de dar la opción de descarga.

Vemos rápidamente que ha pasado correctamente las dos partes principales: SPF y DKIM.

Vemos rápidamente que ha pasado correctamente las dos partes principales: SPF y DKIM.

En el caso de Microsoft, tenemos que abrir primero el correo con un doble clic, e ir a Archivo -> Propiedades.

Vista de los encabezados desde Outlook.

Vista de los encabezados desde Outlook.

En este caso, nos lo ponen algo más difícil, pero podemos seleccionar todo el texto y buscar como ya indicábamos más arriba.

Haciendo esto, podríamos comprobar que pccomponentes (gracias por servir para el ejemplo 🤩), habría superado los tres filtros, con una configuración de nota.

¿Y en la versión online de 365?

Pues tendremos que ir a los tres puntos (…) de la derecha del mensaje y en el desplegable, navegar a Ver> Ver detalles del mensaje.

Acceso desde 365

Acceso desde 365

¿Puedo ya confiar?

La respuesta corta y sincera es: NO.

Esto es solo una parte de la casuística, pues confirmamos el remitente (por ejemplo, un spam o un intento de estafa puede venir desde una cuenta de Gmail que contará con sus tres filtros), pero sin duda es un elemento diferenciador para poder evitar caer en estafas como la del principio del artículo.

Por tanto, siempre que sea posible, verifica ese envío como parte de tu seguridad, y sigamos atentos a toda la picaresca que surge cada día.

¿Tienes más buenas ideas para mantenerte a salvo de forma rápida?

Si es así, no dudes en comentarlo y ayudarnos a tener una bandeja de entrada mucho más saludable!.

Clona con éxito un proyecto Laravel desde GitHub 1024 576 juangmuelas
banner-clon-git-laravel-vscode

Clona con éxito un proyecto Laravel desde GitHub

En ocasiones, clonar un proyecto desde GitHub para poder seguir aprendiendo, suele ser la salida rápida para muchas personas.

Sin embargo, en muchos casos (y especialmente cuando no cuenta con un archivo README suficientemente detallado) acaba siendo un callejón sin salida, pues como usuarios o desarrolladores noveles, nos faltan destrezas para revisar documentación o hacer la búsqueda correcta en nuestro navegador.

Laravel, es un framework muy bien documentado y con una amplia comunidad de desarrolladores que han nutrido la web de ayudas a casi cualquier error que podamos tener, pero aún así, es común ver personas que se atascan en cuestiones básicas.

Por ello, y tras un problema de un usuario en un grupo de Telegram, decidí crearles un documento que pudiera ser de ayuda -dando por hecho que se tiene instalado de forma global Composer, que se tengan conocimientos básicos sobre PHP, el framework Laravel o el uso de GitHub y Visual Studio Code– y de paso compartirlo desde este artículo, esperando reforzar poco a poco mis propios conocimientos y destrezas además de servir como apoyo para instalaciones futuras.

Primeros pasos.

Tras abrir nuestro editor suelo abrir una consola para así, situarnos en el directorio donde queremos alojar el proyecto y comenzar con el primer comando:

git clone [url-github-project]

Para este ejemplo, tomaré uno de los archivos de dicho grupo:

git clone https://github.com/TexvnOnline/Punto-de-venta-Texvn-Online.git

Con este paso, ya tenemos acceso al proyecto en sí, pero al estar trabajando con Laravel, vamos necesitar dar unos cuantos pasos más.

Instala las dependencias del proyecto.

Al clonar desde GitHub, el archivo .gitignore nos «quita» la carpeta vendor con las librerías que usa el proyecto. Necesitaremos que nos lea cuales son desde nuestro archivo composer.json. Voy a seguir los pasos «a prueba de novatos», esperando incluso posibles errores.

Nos situamos en el directorio clonado y pasamos por consola la siguiente instrucción:

composer install

Vemos que necesitamos actualizar nuestras versiones, por lo que corremos un comando más:

composer update

Con este comando nos termina de instalar las librerías declaradas en el proyecto clonado.

Generando archivo .env y la key del proyecto.

No sólo deja sin carpeta vendor el proyecto descargado cuando lo estamos compartiendo desde git, también nos faltará por motivos obvios de seguridad, el archivo de configuración .env

Por suerte, si que estará en el directorio el archivo .env.example, que podemos tomar como guía.

Podemos hacerlo del modo tradicional con un nuevo archivo y copia-pega, o por línea de comando con la instrucción:

cp .env.example .env

Añado al archivo generado la key de seguridad.

php artisan key:generate

Si te queda algo para personalizar el .env, es el momento

Lo dicho.

Desde el nombre de nuestra aplicación, a la conexión de la base de datos, o cualquier otra variable global que ya tengas disponible (ej: paypal, stripe…).

No creo que sea necesario recordarlo, pero ahí vamos: O ya tienes una base de datos creada, o debes crearla con el nombre que pongas en tu .env .

Crea el enlace simbólico y la carga automática de tus clases

Vas a guardar imágenes, pdf’s… Por ello, necesitarás comunicar tu carpeta storage con tu carpeta public. Por suerte, es con un sólo comando:

php artisan storage:link

Seguro que hay más de un helper añadido para trabajar con las clases creadas, y deben agregarse al cargador automático (queremos evitar los típicos errores de clase no encontrada, verdad?).

composer dump-autoload

Se nos pasaba ya que habrá migraciones con las tablas para nuestra BBDD.

php artisan migrate

🛑Espera!. Revisa si en tu carpeta database hay seeders y factories con datos para llenarla!. Si es el caso, mucho mejor este comando!:

php artisan migrate –seed

Si surgiera algún error con los seeders, es muy posible que sea este:

BadMethodCallException: This cache store does not support tagging.

En ese supuesto iremos a nuestro .env, ya que la configuración de ejemplo suele venir con el campo CACHE_DRIVER=file es incompatible con las tags

Podemos cambiar ese valor a :

CACHE_DRIVER=array o por CACHE_DRIVER=memcache

Probando, probando… 1..2.. si…

Ha llegado la hora de la verdad.

php artisan serve

Ups! 🤦♂️. Por lo visto, algo falló y aunque la consola nos decía que había generado la clave, no lo hizo.

Por suerte, el modo debug:true de nuestro .env nos «canta» lo que pasa y la solución.

Recuerda que la herramienta de debug de Laravel, no solo da muy buenas pistas para saber que error estamos teniendo, sino que además, te suele mostrar la posibilidad de buscar más información a través de Google o Stackoverflow, por ejemplo.

Volvemos a correr el comando php artisan key:generate

Esta vez, ya podemos ver como ha generado la clave de forma automática y correcta.

¿Tendremos nuevos errores?: Lo sabremos volviendo a refrescar nuestro server:

Ya tenemos nuestro clon

Creo que ya podemos decir: Eureka!…

Al menos de momento.

Es hora de seguir avanzando y aprendiendo!.

Muchas gracias al Proyecto de Cristian Castro (TextOnline), que ha servido de apoyo !.
Jag Molar
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.