Conviértete en Pro de PHP – Late Static Binding

Atendiendo a lo que tradicionalmente conocemos como herencia, esperaríamos que si yo redefino una función o una constante en una clase hija, esta se va a sobreescribir. En PHP esto no sucede así dependiendo de como hagamos la llamada.

En este vídeo explico con varios ejemplos como funciona el Late Static Binding, que es la formal de solucionar este comportamiento inesperado.

Symfony promueve las buenas prácticas

El equipo de Symfony ha hecho una serie de cambios, versión tras versión, orientados a promover las buenas prácticas a través del buen uso del contenedor de inyección de dependencias y el principio de inversión de dependencias. En este vídeo vemos como algunos proyectos usaban malas prácticas en su código, porque podían hacerlo, y como ahora es realmente complicado seguir haciéndolo.

Conceptos necesarios para entender el vídeo:

Las ayudas para todos están hechas para los ricos

A cuantos pobres conocéis comprándose un Tesla ( ni siquiera un Zoe)? Y a cuantos ricos?

A cuantos pobres conoces instalando placas solares en sus casas? Y a cuantos ricos?

A cuantos pobres conocéis haciendo al menos un viaje de vacaciones / ocio en coche al año? Y a cuantos ricos?

El Gobierno prorroga el descuento de 20 céntimos por litro de combustible

A cuantos pobres conoces que se hospeden por más de 100€ la noche? o simplemente que puedan irse de vacaciones? Y a cuantos ricos?

Una de cada tres ayudas del bono viaje valenciano fue a pagar estancias de más de 250 euros por noche
La falta de un filtro de renta en las solicitudes provoca situaciones llamativas, como que la ayuda sea empleada para pagar vacaciones de lujo. Es el caso de las 1.369 reservas que superan los 400 euros por noche, o las 1.800 de entre 350 y 400 euros. Más de una tercera parte de las ayudas fueron destinadas a sufragar alojamientos de más de 250 euros por pernoctación, con más de 14.500 reservas solo en ese rango. Si se tiene en cuenta el coste total del alojamiento, el Gobierno valenciano ha apoyado económicamente a un millar de personas en escapadas superiores a los 1.000 euros. Un 10% del total de estancias superaban los 800 euros.

El relato es importante, y cuando se anuncia este tipo de ayudas siempre lo hacen con la falacia de que son ayudas para todos, aunque la realidad es que los que principalmente se benefician son los ricos.

Fuera del relato esta es la realidad, los pobres dan paguitas a los ricos para que sigan siendo aún más ricos. Bueno, para los ricos las cosas suelen ser todo a lo grande, así que más que paguitas son pagazas.

Los botones del brillo no funcionan en Linux con una gráfica de Intel y i3 WM

Si estás usando i3 WM en Linux con una gráfica moderna de Intel, probablemente estés utilizando el driver de Mesa. En este caso el problema es que la orden «xbacklight«, que es la que utiliza el script por defecto, no te va a funcionar.

Yo estoy utilizando Endeavour OS con su configuración por defecto para i3 WM, y claro, me molestaba bastante no poder bajarle el brillo al portátil cuando no estaba conectado a la red eléctrica. La solución es cambiar la orden «xbacklight» por una llamada a «brightnessctl» equivalente.

Para ellos vamos a editar el archivos «~/.config/i3/scripts/volume_brightness.sh» y haremos los siguientes cambios:

--- volume_brightness-old.sh	2023-11-28 22:32:59.867716528 +0100
+++ volume_brightness.sh	2023-11-24 17:58:54.184428340 +0100
@@ -21,7 +21,10 @@
 
 # Uses regex to get brightness from xbacklight
 function get_brightness {
-    xbacklight | grep -Po '[0-9]{1,3}' | head -n 1
+    max=`brightnessctl m`
+    actual=`brightnessctl get`
+    echo $((actual*100/max))
 }
 
 # Returns a mute icon, a volume-low icon, or a volume-high icon, depending on the volume
@@ -84,13 +87,15 @@
 
     brightness_up)
     # Increases brightness and displays the notification
-    xbacklight -inc $brightness_step -time 0 
+    brightnessctl set +$brightness_step% 
     show_brightness_notif
     ;;
 
     brightness_down)
     # Decreases brightness and displays the notification
-    xbacklight -dec $brightness_step -time 0
+    brightnessctl set $brightness_step%- 
     show_brightness_notif
     ;;
 esac

Y lo tenemos. Ahora ya podemos subir y bajar el brillo sin problemas.

Inyección de dependencias vs Inversión de dependencias vs Contenedor de inyección de dependencias

Explicación de las diferencias entre estos tres conceptos que a veces se confunden:

  • Inyección de dependencias
  • Inversión de dependencias
  • Contenedor de inyección de dependencias

Veremos que problemas tiene cada uno, coo resolverlos y cuando usarlos.

Dependencias iconos creados por juicy_fish – Flaticon

Repo de ejemplo

Enlaces relacionados:

La Inflación Subyacente

La inflación subyacente es un concepto económico importante que mide el aumento general de los precios de los bienes y servicios que la gente compra en la vida cotidiana, excluyendo los precios volátiles de alimentos y energía. La inflación subyacente es considerada un indicador más preciso de la inflación a largo plazo y es monitoreada por los bancos centrales en todo el mundo para ayudar a determinar su política monetaria.

El objetivo de la inflación subyacente es medir el aumento de los precios de los bienes y servicios que realmente importan a la economía y a las personas. Los precios de los alimentos y la energía son excluidos debido a su volatilidad y la influencia de factores externos, como cambios climáticos y conflictos internacionales, en sus precios.

La inflación subyacente es un indicador importante para los bancos centrales ya que puede ayudar a predecir la inflación futura y determinar la política monetaria apropiada. Si la inflación subyacente es demasiado alta, los bancos centrales pueden aumentar las tasas de interés para frenar el crecimiento económico y controlar la inflación. Por otro lado, si la inflación subyacente es demasiado baja, los bancos centrales pueden reducir las tasas de interés para estimular el crecimiento económico.

Además, la inflación subyacente es importante para los inversionistas y los consumidores ya que puede tener un impacto en la tasa de interés y, por lo tanto, en el costo del crédito y las inversiones. Por lo tanto, es importante tener en cuenta la inflación subyacente al tomar decisiones financieras.

En resumen, la inflación subyacente es un indicador clave de la economía que mide el aumento general de los precios de los bienes y servicios que realmente importan a la gente. Es monitoreada por los bancos centrales y puede tener un impacto en la política monetaria, la tasa de interés y las decisiones financieras.