Modificar el author de un comit (git)

El problema es conocido, a veces, al hacer un commit, se nos olvida configurar bien nuestro usuario o simplemente usamos la cuenta equivocada (si usamos varios login, o servers para git).

Corregir esto en git es muy sencillo, teniendo en cuenta dos escenarios diferentes:

  1. Cambiar el autor del último commit
  2. Cambiar el autor de uno o varios commits más atrás del HEAD
Continue reading

Git Hash Commit, identificando commits

¿Qué es un hash de un commit? Cuando haces un commit en Git, se guarda una instantánea del estado de nuestro proyecto en ese mismo momento. Para identificar ese commit de forma única, Git genera un código hash, que es una especie de “huella digital” del commit. Algunas características de este código hash son:

  • Es una cadena de caracteres generada con el algoritmo SHA-1.
  • Representa de forma única el contenido del commit (incluyendo archivos, autor, fecha, mensaje, etc.).
  • Sirve para referenciar ese commit en el historial.

Por ejemplo, un hash “largo” tiene la forma: e3a1b2c4d5f67890123456789abcdef123456789.

Continue reading

DosBox: Cómo corregir que el ratón se mueven MUY rápido

El problema

Estás jugando a un juego de MS-DOS o usando un programa TUI tipo QBasic u otro que tenga soporte para ratón, pero …. el ratón súper rápido: el mínimo movimiento produce un desplazamiento del ratón bestial de extermo a extermo de la pantalla y lo hace inmanejable.

Solución

Hay que ajustar la sensibilidad del ratón, por defecto DosBox la pone al 100%. Podemos poner un valor entre 0 y 100. En mi caso probé a bajarlo al 50% y me lo solucionó.

En el fichero dosbox.conf editar la secciçon [sdl] y modificar sensitivity, su valor por defeto es 100 bajaro a 50:

sensitivity=50

Para más información consultar [1]. (esto no lo he probado pero lo dejo aquí anotado por si es de ayuda) Otras opciones serían ajustar en tiempo real DosBox usando shortcuts de teclado. Presiona:

  • Ctrl + F10 → captura/libera el ratón.
  • Ctrl + F11 / Ctrl + F12 → bajan o suben la velocidad de emulación (afecta todo, no solo el ratón).
  • Ctrl + F8 / Ctrl + F7 (según versión) → pueden ajustar la sensibilidad del mouse directamente.

¡Espero haber sido de ayuda!

REFERENCIAS

  1. Configuración del SQL en DosBox

Mockear un API con json-server

json-server es una herramienta NodeJS que nos permite prototipar o mockear un API REST de forma muy rápida. Ya sea para empezar un desarrollo Frontend si esperar al desarrollo del BackEnd o porqué necesitamos mockear el BackEnd por el motivo que sea.

Una vez definido el API a usar es muy rápido y sencillo usar cualquier petición HTTP con los métodos GET, POST, PUT, PATCH, DELETE …

Continue reading

Apache Maven: Comandos utiles

Apache Maven es una herramienta de gestión de proyectos que automatiza la construcción, informe y documentación de software. Usa un archivo POM (Project Object Model) basado en XML para definir cómo se construye un proyecto, sus dependencias y cómo se empaqueta. Esto estandariza el proceso, permitiendo que cualquier desarrollador compile, pruebe y empaquete un proyecto de forma consistente.

Conocer los comandos de Maven es clave porque te da control total sobre el ciclo de vida de tu proyecto. Te permite automatizar tareas, gestionar dependencias, depurar problemas de construcción y personalizar el proceso. Dominar estos comandos te hará más productivo y autónomo al manejar proyectos de software.

Continue reading

Extraer atributo de una etiqueta XML en lote

Tengo un directorio con ficheros XML, tienen etiquetas del tipo <process id="..." name="..." ....> y necesito extraer todos los valores del atributo name, Con Bash es muy sencillo usando este comando:

grep -oP ']*name="[^"]*"' *.xml | sed -E 's/.*name="([^"]*)".*/\1/'

Así obtenemos una salida con el valor del atributo name en cada linea del shelll

Borrar todos los directorios target en maven

Todo desarrolldor Java conoce Maven. Una herramienta que funciona igual que en su día ant o Gradle. La idea es teer una herramienta que en base a la configuración del proyecto (ficheros pom.xml) sabe cómo compilar, en qué orden y qué dependencis tiene (además de resolverlas e instalarlas si puede).

Normalmente se compila usando un comando como mvn compile o mvn package, el resultado se generar e un subdirectorio llamado target. Para limpiar el proyecto y borrar todo el contenido generado se usa el comando mvn clean.

Cuando tenemos un proyecto con subproyectos (submodulos, en maven) si es muy complicado puede volverse loco y no hacerlo bien. En Bash tenemos un truco para borrarlos de forma recursiva, con el comando (ejecutado en el raíz del proyecto):

for f in $(find . -type d -name target -exec echo {} \;); do rm -rf $f; done

Podemos ver el tamáño del directorio con:

du -h -d1

Por ejemplo, si comparamos un proyecto antes y después de hacer esto:

Una diferenci de 9 GB !!!

Carpetas compatidas en VirtualBox

Introducción

El problema es conocido: crear una máquina virtual y disponer de un mapeo entre carpetas de la máquina que aloja al virtualizador (host) y otra en el máquina huesped (guest) De este modo tenemos una ruta donde leer o escribir ficheros, y el sistema debería mapear permisos de usuario de forma bidireccional.

Guía paso a paso

Crear una carpeta en tu equipo (donde tiene el software de virtualización). En caso de Windows, por ejemplo: C:\temp\CompartidoVirtualBox

Y en Virtual Box debemos abirr la configuración de la máquina virtual, ir a la sección de compartidos y poner esta información (o la que cada cual haya querido):

– Arranca la máquina virtual
– Ir a: Devices > Insert Guest Additions CD image…
– Si no se monta de forma automática la imgen de CD usar el comando: sudo mount /dev/cdrom /media/cdrom
– Instalar paquetes adicionales: sudo apt-get install make gcc linux-headers-$(uname -r)
– Instalar Guest Additions: sudo /media/cdrom/VBoxLinuxAdditions.run

IMPORTANTE: Debemos añadir el usuario que va a usar el recurso compartido al grupo vboxsf.

sudo usermod -aG vboxsf $(whoami)

Reinciar, el punto de montaje debe estar disponble.