General

Esta es la categoría general donde pongo los posts que no encajan con el resto de categorías. Y algunos posts, que aunque encajan en alguna otra categoría, también los he considerado de interés general en informática. Aquí puedes encontrar contenidos varios sobre utilidades como programas, sistemas operativos, herramientas de mantenimiento y cosas de este estilo que me han parecido interesantes.

Symfony: registro de usuarios, reset password, login..

2021-10-02 - Categorías: CSS / General / HTML / PHP / Symfony

¡Hola de nuevo! Esto es un codekata, esta vez para páginas web construidas con Symfony, con registro, autenticación y autorización de usuarios. Se trata de un clásico para generar toda la estructura necesaria para crear desde cero un proyecto funcional en unos minutos.

Hasta la versión 4 de Symfony teníamos vendors, como FOSUserBundle, con lo que estas cosas de registros de usuarios venían hechas. Ahora a partir de la versión 5 de Symfony también, tenemos de casa componentes para integrar estas cosas, generando códigos y configuraciones en pocos minutos.

Vamos al grano y lo vemos?¿ 😎👍

Continuar leyendo..

API Platform, Symfony: añadiendo funcionalidades fácilmente

2021-09-12 - Categorías: General / PHP / Symfony

Jugueteando con esta joya del software, la API Platform, podemos construir una API Restful en muy poco tiempo. Lo siguiente que podemos necesitar es disparar acciones cuando ocurren cosas con los elementos de la API. Pero no vamos a editar las acciones de GET, POST, PUT, PATCH o DELETE, porque esto viene hecho, y es estándar su comportamiento. Si no que vamos a engancharnos a los eventos de dichas acciones, a post-procesar la información o a implementar nuevos endpoints en este post.

Es decir, una API Restful puede ser una cosa bastante simple, en la que sólo almacenamos información que podemos editar remotamente. Se pueden añadir puntos de entrada con lógica nueva y controlable desde el exterior. Pero es más interesante, que después de recibir peticiones, hagamos tareas aparte de las básicas CRUD: crear, listar, actualizar y borrar.

Por lo menos tenemos tres formas de lanzar estas acciones nuevas:

  • Añadiendo nuevos puntos de entrada para procesar, no recomendable.
  • Programando tareas que se ejecuten cada cierto tiempo.
  • Enganchándonos a los eventos de la API en las peticiones.
Continuar leyendo..

Refactorizando un Singleton usando Static

2021-09-07 - Categorías: General / PHP
PHP-testing-POST

Uno de los patrones de diseño del software que tenemos disponible es el Singleton. Según las buenas prácticas es un patrón del que tenemos que huir, porque viola varios principios del desarrollo. Para más información me remito a los principios STUPID vs SOLID.

Según podemos encontrar por Internet, hay un gran debate entre usarlo o no. Sólo se ve que sea la buena opción cuando necesitamos usar un sistema de cacheado de la información de forma global, registros de información global o sistemas en los que manejamos procesos debiendo controlar su cantidad.

Una forma de salvar la situación es el uso de Static en favor de tener información global, mejorando así también el rendimiento, aunque la idea de Singleton es subyacente a la forma de uso de Static. Otra forma de salvar la situación, es controlar la creación del objeto externamente, no internamente en la clase, delegando esta responsabilidad.

Continuar leyendo..

PHPLOC, una alternativa a PHP Depend para medir la calidad del código fuente

2021-07-03 - Categorías: General / PHP

Siguiendo con las herramientas de medición de la calidad del código fuente del post anterior, encontramos que tenemos disponible una alternativa a PHP Depend, que tiene funciones parecidas. Se trata de PHPLOC de Sebastian Bergmann, que te puede sacar unas métricas muy descriptivas en modo texto de todo un programa.

Es bien sencillo de usar y los resultados son bien descriptivos por si mismos. Vamos al grano..

Continuar leyendo..

Analizando la calidad del código fuente con PHP Depend

2021-06-26 - Categorías: General / PHP

Hay muchas herramientas para medir la calidad del código fuente. Una de estas es PHP Depend, que del mismo modo que JDepend para Java, analiza los códigos fuentes, y nos da una visión del estado del código sin entrar al detalle.

Este es un pequeño HOWTO para instalarlo en un proyecto y empezar a usar esta herramienta.

Continuar leyendo..

GNU/Linux: visualizando multiples registros en tiempo real con multitail

2021-05-09 - Categorías: General / GNU/Linux
Revisando registros en tiempo real con Multitail.

Hace tiempo que no escribo, no quiero perder las buenas costumbres así que por aquí estoy de nuevo compartiendo un sencillo comando que me ha costado un poco encontrar entre los habituales cat, tail, head, etc.. Se trata de un comando útil para depurar aplicaciones en sistemas GNU/Linux. En mi caso suelo andar mucho con webs o servicios del sistema. Así que viene bien tener a mano los registros.

Una buena alternativa pueden ser sistemas completos como el ELK con Elasticsearch, Logstash y Kibana, GoAccess, Splunk, etc.. Pero si el caso es revisar rápido a ver qué está pasando en tiempo real, sin tardar mucho en lanzar consultas en algún panel de control, tenemos multitail.

Continuar leyendo..

PHP, Composer y el PSR, montando la autocarga de clases

2021-03-20 - Categorías: General / PHP
PHP Composer PSR

En el origen de los tiempos, PHP no estaba tan organizado como lo está ahora. Era habitual encontrar los programas PHP divididos en ficheros .inc. También era habitual el descargar los ficheros de las librerías o componentes manualmente. Luego había que incluir todas las partes manualmente para hacerlo funcionar como un todo. Surgían conflictos de nombres, era difícil hacer crecer una aplicación, se incrustaba mucho el código programado en las plantillas. No había mucho orden, o había el orden que se podía esperar, de un lenguaje de programación tan nuevo.

Todo esto ha cambiado con el pasar de los años hasta la fecha en que escribo este post. PHP se creó en 1994, por Rasmus Lerdorf. Ha llovido mucho desde entonces, y han llegado muchas cosas por el camino como Composer, Twig, el PSR, la HipHop Virtual Machine, o la compilación JIT de la última versión de PHP 8, en la que los códigos compilarán a código máquina con lo que su velocidad será mayor.

Continuar leyendo..

Esqueleto para mensaje de cookies

2021-03-17 - Categorías: CSS / General / HTML / JavaScript
Cookies message

¡Hola de nuevo! Hoy vengo a compartir otro codekata para construir nuestro propio mensaje de cookies. Están teniendo bastantes visitas las páginas en JnjSite sobre este tema de las cookies. Y he recibido ya varias consultas a la web sobre este tema. Así que aquí estoy de nuevo compartiendo mi granito de arena en todo esto de la programación.

Se trata de un sencillo esqueleto de página web, con puro JavaScript, CSS y HTML. No se utiliza ni jQuery ni ningún elemento extra para que si has llegado aquí buscando algo de esto, lo puedas copiar y pegar a tu web, y adaptarlo a como quieras 😉

Continuar leyendo..

Datatables: filtrando entre rangos de fechas por columnas

2021-02-20 - Categorías: General / JavaScript

¡Hola de nuevo! Comparto aquí otro codekata o howto. Simplemente es una forma de filtrar entre fechas por columnas usando Datatables. Nunca lo había hecho, y buscando por Internet no he encontrado la solución, así que jugando un poco con JavaScript, aquí que lo dejo..

Partiendo de un post anterior sobre Datatables con botones, lo he reescrito para permitir el filtrado entre fechas. Posiciona en la segunda columna unos campos de texto. Y al poner dos fechas, una fecha desde y una fecha hasta, entonces filtra los datos de la tabla mediante JavaScript.

Continuar leyendo..

GNU/Linux: el antivirus ClamAV con auto-escaneo

2021-02-01 - Categorías: General / GNU/Linux

ClamAV es un excelente antivirus gratis Open Source que está disponible para GNU/Linux. Viene sin interfaz de usuario por defecto, porque inicialmente se creó para ejecutarse desde línea de comandos. En GNU/Linux por otro lado hay muchos entornos de escritorio. Con lo que con esto, podemos encontrar el porqué quizá hace falta darle una vuelta de tuerca, para ponerlo a funcionar como los demás antivirus de pago.

Es uno de los principales antivirus usado para bloquear la propagación de códigos maliciosos por Internet hoy en día. Se usa por defecto en varias distribuciones o paquetes de software para gestión de servidores de correo, alojamientos web, etcétera..

Este post es un howto para conseguir que ClamAV se auto-actualice, y para que realice escaneos automáticos ya sea programados o cuando accedemos a los ficheros. Es un poco continuación de un post antiguo en el que quedó la última parte del escaneo automático en el aire..

Continuar leyendo..

WordPress: mejorando el rendimiento con Query Monitor

2020-12-23 - Categorías: General / PHP / WordPress
Logo de WordPress

En la incansable búsqueda por conseguir hacer que las cosas funcionen lo mejor posible, me he encontrado con un plugin que vengo a compartir en este post. Se trata un plugin que todo desarrollador de WordPress debería de conocer, el Query Monitor.

Es un plugin que una vez instalado te muestra detalladamente qué es lo que está pasando dentro de WordPress para poder depurar, mejorar todo y aumentar el rendimiento de la web. Es una manera de tener una visión global del funcionamiento, número de consultas a la base de datos, plantillas cargadas, tiempos, errores/notificaciones/advertencias en la programación, y un largo etcétera..

Continuar leyendo..

Scripts y técnicas de despliegue continuo para una web con Git

2020-11-16 - Categorías: General / Magento / PHP / Symfony / WordPress

Automatizar la publicación de nuevas versiones es una técnica de desarrollo de aplicaciones que se denomina Despliegue Continuo o Continuous Deployment en inglés (CD). Se suele usar junto con el Continuous Integration (CI), en el que se elabora una serie de pruebas automáticas sobre el software.

Tener esto automatizado nos ahorra mucho tiempo, nos dará velocidad en todos estos pasos intermedios ya que no tendremos que repetirlos continuamente, y podremos centrarnos en desarrollar para cada iteración.

Durante las pruebas puede notificarnos en caso de errores, realizar todo tipo de chequeos, o elaborar documentación sobre el proyecto para el resto del equipo. Pero una vez que tenemos el primer paso montado del CI, es interesante seguir con el segundo paso del CD. A continuación comparto unos scripts e instrucciones para una web en WordPress, Symfony o Magento 2, con GitHub o BitBucket. Así es como funciona también aquí en JnjSite.com..

Continuar leyendo..

© 2021 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.