Symfony: tutorial 16: la seguridad

2019-08-03 - Categorías: PHP / Symfony

La seguridad no es una de las asignaturas difíciles en Symfony. Puede ser difícil en otras aplicaciones web hechas a medida, pero en Symfony, siguiendo unas pocas directrices, conseguiremos aplicaciones web muy seguras. Symfony nos provee de mecanismos fáciles de configurar, de métodos de programación para usar allí donde necesitemos estas capas de seguridad. Además de que hay componentes, hechos por expertos en seguridad, para nuestros proyectos.

Este es un post muy teórico, en donde dejo las pinceladas principales para luego ahondar más en cada tema. Y también he tratado de dejar un caso de uso a modo de codekata, como viene siendo costumbre en la serie de tutoriales de iniciación a Symfony. Usando en Symfony los componentes recomendados, y unas pocas directrices, conseguiremos aplicaciones web muy seguras sin ser necesariamente expertos en seguridad web.

Continuar leyendo..

VHDL: multiplexor de 4 a 1 con selección de 2 bits

2019-08-02 - Categorías: VHDL
VHDL multiplexor 4 a 1 son selección de 2 bits

Code-kata para generar un circuito de un multiplexor. En este caso es un multiplexor que recibe 4 señales de entrada y las encauza en una salida eligiendo con otras dos señales de entrada cuál tiene que encauzar a la salida.

Es decir, los 2 pins de entrada para seleccionar nos permiten 4 posibilidades: 00, 01, 10 y 11. Esto nos permite, suponiendo que tenemos 4 señales de entrada x0, x1, x2 y x3; que si seleccionamos 00 en la salida saldrá la señal de entrada x0, si ponemos 01 saldrá la señal x1, si ponemos 10 saldrá la señal x2 y si ponemos en selección 11 saldrá la señal de entrada x3 por la única salida que hay.

Continuar leyendo..

VHDL: decodificador BCD de 4 bits para display de 7 segmentos

2019-08-02 - Categorías: VHDL
VHDL decodificador 4 bits para display de 7 segmentos.

Code-kata para mostrar en un display de siete segmentos números en binario que van desde el 0 al 9. Es un sencillo circuito que se puede encadenar con otros para mostrar los dígitos que sean necesarios. Esto es lo que se llama un decodificador BCD de 4 bits para un display de 7 leds, en este caso.

No tiene mucho que explicar simplemente que es un circuito que convierte las señales de entrada de 4 bits en una señal de salida de 7 bits. Las de entrada son números en binario del 0 al 9. Mientras que las de salida simplemente encienden o apagan los segmentos para pintar el número que toque.

Continuar leyendo..

VHDL: decodificador 4 a 16

2019-07-31 - Categorías: VHDL
GTKWave señales del banco de pruebas de un decodificador 4 a 16.

Otro code-kata traigo ahora. Se trata de un decodificador que tiene 4 pines de entrada y 16 de salida. Le falta la señal de habilitado/deshabilitado. Puede servir para activar 16 cosas, en función a una señal de entrada de 4 bits, como paso intermedio en el viaje de la información por los circuitos, etc..

Continuar leyendo..

VHDL: los ladrillos básicos; and, or, not, nand, nor, xor y xnor

2019-07-31 - Categorías: VHDL
VHDL puertas lógicas básicas.

Dejo aquí un code-kata a modo de apunte de consulta. Se trata de un código no sintetizable, ya que no tiene entradas ni salidas, sólo es a modo de pruebas. Una entidad sin entradas ni salidas que asigna concurrentemente señales x y para visualizar en GTKWave los resultados de las puertas lógicas.

Sin muchas explicaciones, es más sencillo leer el código. Tenemos dos partes principales en los ficheros .vhd: la del entity y la del architecture que define el entity.

Continuar leyendo..

VHDL: diseñando hardware con software libre

2019-07-28 - Categorías: VHDL

Con este post comienzo con una serie de apuntes sobre el lenguaje de definición de hardware VHDL. Para los nuevos, VHDL no es un lenguaje de programación, sino un lenguaje de definición. Me explico, no lo confundamos o hablaremos piedras. Algunos lo llaman Very Hight Difficult Language 😀 difícil es, pero en realidad las siglas vienen del VHSIC (Very High Speed Integrated Circuit) y HDL (Hardware Description Language).

Resumiendo, VHDL es un lenguaje de descripción de hardware, con el que podemos definir y probar hardware, antes de pedir su fabricación a mayor escala. También podemos inyectar el diseño generado en FPGAs para usar directamente en los prototipos, ya viendo después si conviene sintetizarlo o no, y con qué tecnología.

Continuar leyendo..

Raspberry Pi: el manejo básico del GPIO con sysfs

2019-06-20 - Categorías: GNU/Linux
Raspberry Pi

Cada loco con su tema ? pues yo aquí que sigo con la Raspberry Pi, como niño con juguete nuevo.. ? En un post anterior estuve escribiendo sobre el GPIO desde el punto de vista del programador PHP, y con Symfony. Sigo quitando capas, mientras que voy aprendiendo, y aquí que he llegado al sistema de ficheros..

Cité que podíamos tener acceso directo al hardware, pero realmente me equivocaba, no es acceso directo al hardware, sino a través del sistema de ficheros, ya que estaba usando PHP. Después de unas cuantas pruebas, así como haciendo Machine Learning 😀 me corrijo a mi mismo, y también me corregí los errores del post anterior.

Continuar leyendo..

Magento 2: cómo crear un módulo propio

2019-06-14 - Categorías: Magento / PHP
Magento funcionamiento interno

Ahora es mucho más sencillo arrancar un nuevo módulo para Magento 2. Aquí que dejo unos sencillos pasos para crear un módulo propio. Luego es cuestión de ir añadiendo las configuraciones que quieras, menús en backend, zonas en frontend, plantillas, controladores, tareas programadas, y un largo etcétera..

La idea es la misma que en muchos otros CMS, al modo de Vendor/Modulo que vamos a seguir estructurando los códigos.

Continuar leyendo..

Raspberry Pi: utilizando los GPIOs desde PHP y Symfony

2019-06-12 - Categorías: GNU/Linux / PHP / Symfony

Hoy traigo un howto para instalar PHP 7.2 en la Raspberry Pi.. luego un proyecto Symfony 4, con Symfony Flex.. y finalmente un code-kata para lanzar algunos comandos para encender unos LEDs conectados a unos pines del chip GPIO de la Raspberry Pi. Simplemente es un post de arranque para controlar desde PHP, con acceso casi directo a hardware, el chip de los GPIOs. Así de paso con Symfony, que aunque no es necesario, ayuda mucho en cualquier proyecto por los todos los extras que aporta.

Por si no lo conoces, Raspberry Pi es un pequeño ordenador de propósito general de apenas 30 €, que la última versión a fecha de hoy trae HDMI, USBs, Wifi, Gigabit Ethernet, GPIOs, etcétera. Siempre ha hecho furor entre los programadores, y en la comunidad maker de dispositivos electrónicos. Una de las tareas para las que puede servir, es como servidor de páginas web, y en paralelo, puede controlar cualquier dispositivo que se ocurra conectar a los GPIOs. La última versión que es la Raspberry Pi 3B+ tiene 1 GB de RAM, con un procesador de 4 núcleos, más que suficiente para darle la potencia lógica a casi cualquier dispositivo que quieras probar de construir.

Continuar leyendo..

Magento 1: auto-activar la caché

2019-06-09 - Categorías: Magento / PHP
Magento funcionamiento interno

Aquí estoy de nuevo compartiendo un truco sobre Magento 1. Magento 1 es un proyecto Open Source, con lo que navegando por el código fuente, o preguntando por foros por Internet que podemos llegar a encontrar cómo hacer esto.

Pero aquí que lo dejo porque me ha costado un poco encontrar cómo hacerlo, y ha sido útil como técnica de mejora de proyectos en Magento 1. Digo que me ha sido útil ya que a veces, me he encontrado los proyectos sin activar la caché. Esto hacía que los proyectos corrieran mucho más lento, ya que Magento en general, sin la caché activada, es realmente lento.

Continuar leyendo..

PHP y SEO: detectando contenidos duplicados

2019-05-23 - Categorías: General / PHP / SEO
SEO PHP duplicados

Hoy traigo un howto o code-kata, para comenzar a hacer nuestra propia herramienta de detección de duplicados. Puede ser una tarea más o menos compleja, depende mucho de hasta dónde queramos llegar, pero sólo mediante scripting en PHP podemos implementarlo.

Es decir, podemos recorrer toda una web de la que estamos encargados, guardar los contenidos de sus URLs, y chequearlos para ver si tiene contenidos duplicados. Me remito a un post de hace un par de años para recorrer una web en anchura, o en profundidad, mediante un sencillo script en PHP: https://jnjsite.com/yo-robot-ii-white-gray-black-hat-seo/

Continuar leyendo..

Cómo poner la Tierra en tiempo real en tu escritorio Gnome

2019-05-16 - Categorías: GNU/Linux
Gnome Dconf fondo de escritorio de la Tierra en tiempo real
Gnome Dconf poniendo fondo de escritorio de la Tierra en tiempo real..

Hoy traigo un pequeño howto o tutorial para hacer una personalización de tu fondo de escritorio en Ubuntu, Ubuntu Mate, Debian, o cualquier otro sistema operativo GNU/Linux derivado que venga con el escritorio Gnome. En este post se usa Dconf, que es un sistema de configuración en el modo clave/valor para las configuraciones de Gnome.

ACTUALIZACIÓN: Ha dejado de funcionar la descarga de la imagen. El resto del tutorial se puede usar con cualquier URL que genere una imagen.

Es decir, podemos modificar muchas cosas de Gnome mediante comandos con dconf. Esto es peligroso, puede dejar tu escritorio inservible. Así que si vas a juguetear con esto, mucho cuidado antes de modificar los valores.

Continuar leyendo..

© 2024 JnjSite.com - MIT license

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