Música
La música que voy realizando está disponible para oirla y descargarla en este repositorio.
Otros sitios donde la voy subiendo como en Soundcloud y Youtube.
Desde 1993 he desarrollado música electrónica como ocio. Una de las primeras aplicaciones más interesantes que utilicé fue Fasttracker II, donde aquí tienes un recorrido de ejemplo de las cosas que hacía.
Con el tiempo, la evolución de las aplicaciones, la adquisición de algún sintetizador y la ayuda y apoyo de algunos amigos llegué a componer música electrónica más elaborada y actualmente la sigo desarrollando.
Diresp
Uno de los principales problemas de los sistemas de información es la falta de espacio en algún lugar de almacenamiento.
Conocer en qué lugares se producen las mayores concentraciones de espacio ocupado sirve de ayuda para tomar decisiones rápidamente, como eliminar ficheros que no son necesarios, moverlos a otro lugar o ampliar espacio.
Los sistemas distintos a Windows, como GNU/Linux, UNIX y MacOS normalmente incluyen una herramienta denominada du (disk usage), que fácilmente proporciona esta información.
En el caso de sistemas Windows, para averiguar rápidamente el espacio que ocupa cada subcarpeta de una carpeta dada, desarrollé en C una pequeña herramienta de línea de comandos denominada diresp3.exe.
Para utilizar esta herramienta es necesario que el fichero diresp3.exe esté ubicado en una carpeta donde pueda ejecutarse desde cualquier otro lugar, por ejemplo en c:\windows\system32, o en cualquier otra que esté incluida en la variable PATH del sistema. Después, en la línea de comandos vamos a la carpeta donde queremos obtener el tamaño de sus subcarpetas y ejecutamos diresp3.exe directamente. Como resultado tendremos la lista de subcarpetas con sus correspondientes espacios ordenada de menor a mayor espacio.
La guía de Raku
Raku es una especificación de lenguaje de programación con muchos puntos fuertes: el soporte de Unicode más completo que existe en la actualidad, un potente motor concurrente, tipado gradual, gramáticas avanzadas y variedad de paradigmas de programación entre otras características interesantes.
La implementación actual de Raku es un compilador denominado Rakudo, que incorpora la máquina virtual MoarVM que a su vez interpreta el código de Raku y lo ejecuta en el sistema.
Si quieres conocer Raku, uno de los lugares recomendados es https://raku.guide. La versión española, la cual desarrollé y participo en su mantenimiento, está disponible en es.raku.guide.
Módulos de Raku
El lenguaje de programación Raku dispone de un ecosistema de módulos que amplian su funcionalidad, facilitando desarrollar soluciones con menos líneas de código.
Mi granito de arena en este ecosistema incluye los siguientes módulos orientados a la gestión de sistemas:
FileSystem::Capacity
Proporciona información de la capacidad del sistema de archivos
Package::Updates
Busca y visualiza actualizaciones de paquetes de los gestores de paquetes más utilizados
System::Stats::CPUsage
Estadísticas en porcentaje de uso de CPU
System::DiskAndUpdatesAlerts
Envía notificaciones sobre la capaciad de discos y actualizaciones pendientes
System::Stats::DISKUsage
Proporciona estadísticas de uso de disco
System::Stats::MEMUsage
Proporciona estadísticas de uso de memoria RAM
System::Stats::NETUsage
Proporciona estadísticas de uso de red
Win32::DrivesAndTypes
Visualiza unidades Win32 sus tipos
RawApp
Un pequeño framework de aplicación web
Tutorial de PowerShell
PowerShell es un lenguaje de programación interpretado de Windows, utilizado normalmente para trabajar con .NET. Muy útil para gestionar el sistema, automatizar operaciones, implementar configuraciones y llevar a cabo integraciones.
En 2023 publiqué un tutorial disponible en este enlace de Github orientado a principiantes y como referencia para los que ya lo vengan utilizando.
Tutorial de punteros en C
C es el lenguaje de programación en el que están escritos la mayoría de los lenguajes de programación más populares. Desde su publicación en 1972 no ha habido lenguaje que haya envejecido tanto y tan bien. Sencillo y poderoso, en C se han escrito los sistemas operativos predominantes como UNIX, el kernel de Linux, Microsoft Windows, Android e iOS, así como la mayoría de los servicios más importantes de Internet como los servidores web Apache y Nginx, o bases de datos como MySQL o Redis.
El aspecto más poderoso y útil de C son los punteros. Con ellos puedes realizar operaciones masivas en estructuras complejas de datos de la forma más rápida y eficiente posible. Para comprender a los punteros de forma adecuada traduje uno de los mejores tutoriales sobre este tema, escrito por Ted Jensen y disponible en este enlace. La versión PDF está disponible en este otro enlace.
Ken Thompson y la confianza
Ken Thompson diseñó e implementó el primer sistema operativo UNIX en 1970, creó el lenguaje B, que fue el predecesor del lenguaje C, definió la codificación UTF-8 inicialmente en una servilleta de papel... Todo esto entre otras cosas influenciaron de forma notable las ciencias de la teoría de la computación. En 1983 Ken Thompson recibió el premio Alan Turing junto con Dennis Ritchie por su contribución al desarrollo de la teoría general de sistemas operativos (concretamente la implementación de UNIX) y aprovechó la recogida del premio para hablar sobre la "Confianza en la confianza", demostrando que es muy difícil detectar un programa troyano (o virus troyano) cuanto más bajo sea el nivel de su implementación. El documento que contiene esta demostración puedes verlo en este enlace y la traducción que realicé al español en este otro enlace.