Últimas entradas del blog

276 entradas

VHDL decodificador BCD de 4 bits a display de 7 segmentos

VHDL: decodificador BCD de 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.

VHDL decodificador 4 a 16

VHDL: 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..

VHDL puertas lógicas básicas

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

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.

Circuitos digitales

VHDL: diseñando hardware con software libre

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.

Raspberry Pi

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

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.

Magento funcionamiento interno

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

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.

PHP y Symfony en la Raspberry Pi

Raspberry Pi: utilizando los GPIOs desde PHP y 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 […]

Magento funcionamiento interno

Magento 1: auto-activar la caché

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.

SEO PHP duplicados

PHP y SEO: detectando contenidos 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/

Gnome Dconf fondo de escritorio de la Tierra en tiempo real

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

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. 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.

Symfony 4 tests unitarios y funcionales

Symfony: tutorial 15: los tests automáticos, funcionales y unitarios

Hay personas que estáis siguiendo los tutoriales sobre Symfony, escribiéndome, consultándome, sobre Entidades, Doctrine Query Language, y otras cosas.. ¡Gracias! Esto me anima a seguir escribiendo, a terminar con la planificación que hice de puesta al día con Symfony 4. Así que, aquí estoy de nuevo con otro howto o tutorial, sobre éste framework tan cojonudo. Hoy llegamos a cómo automatizar las pruebas de tu aplicación web. Es decir, este post va sobre Test Drive Development (TDD para los amigos). Imagina que vas a entregar una web, la pruebas y pruebas pensando que todo va bien. Pero llega el día de la puesta en producción, pero como no has leído este post y no has automatizado las pruebas.. 😉 empieza a romperse por los rincones que menos habías pensado. No automatizar las pruebas es bastante habitual en el mundo de las webs, pero no debería de ser así. Así que con este post, repasaremos dando pinceladas a las principales herramientas que nos provee Symfony. Así sí que dormiremos tranquilos cada vez que entreguemos una nueva versión de nuestras aplicaciones web hechas en Symfony.

Virtualmin home

Migrando de Ubuntu Server 16 a 18 con Virtualmin

Llevo unos cuantos días sin escribir nada, pero es que intento sacar tiempo de debajo de las piedras y no hay manera. A ver si no pierdo las buenas costumbres y puedo seguir escribiendo más a menudo. El caso es que estoy revisando uno de los servidores que administro, para actualizarlo a la última versión, y optimizarlo tanto en costes como en rendimiento. Así que aquí estoy de nuevo compartiendo este sencillo HOWTO para migrar un servidor completo con Virtualmin. Primero que todo tengo que presentar a Virtualmin para el que no lo conozca, es un panel de control del tipo Cpanel o Plesk. Funciona muy bien y tiene una versión gratuita con la que puedes tener correos electrónicos, antivirus, anti-spam, fail2ban, SSH, FTP, servidor de páginas web Apache, Mariadb, Mysql, Postgress, servidor de DNS.. etcétera.