Git Intermedio – Bisect, Mejores Prácticas y Rebase

He subido un nuevo video a YouTube, titulado «Git Intermedio – Bisect, Mejores Prácticas y Rebase (español)»

Es la grabación de mi presentación en la reunión de los sábados en LinuxCabal el pasado sábado 26 de enero de 2019 en Guadalajara, México.

Explico cómo usar git bisect y git bisect run junto con las mejores prácticas para hacer commits que sean útiles para el uso de Bisect. Me apoyo en el código de Superkb para explicar con un bug visual y sea más fácil la comprensión. Concluyo con git rebase para actualizar ramas y git rebase --interactive para limpiar el trabajo antes de publicarlo.

Gracias por las preguntas de los asistentes.

Liga al video en YouTube: https://www.youtube.com/watch?v=0bzZ-5YVJ5o

Formatos de fecha, su endianness, ISO 8601 y otras reflexiones

Introducción

El propósito de esta publicación es reflexionar en los diferentes formatos de fecha, sus conceptualizaciones, sus ambigüedades, su endianness y finalmente el formato internacional de fecha ISO 8601.

El endianness se refiere al extremo por el que comienza la representación de un número. Por ejemplo, para el número 547 —y considerando que en español escribimos de izquierda a derecha— primero escribimos el 500, después el 40 y después el 7. El 5 tiene más valor relativo que el 7. Puesto que se comienza por el dígito de mayor valor, a esto se le llama big-endian y es común en protocolos de red. El contrario se denomina little-endian y es común en algunos procesadores de Intel. Cuando no se sigue un orden progresivo se le dice middle-endian.

Sigue leyendo

Video: Cómo usar Vim, abril de 2018

He subido un nuevo video a YouTube, titulado «Taller práctico: Cómo usar Vim»

Es la grabación de mi participación en el FLISoL 2018 celebrado en Guadalajara, México, en LinuxCabal el pasado sábado 28 de abril de 2018.

Liga al video en YouTube: https://www.youtube.com/watch?v=J7EjB7HiMTw

Video: PostgreSQL – Reunión Gultij, enero de 2017

El pasado sábado 21 de enero de 2017 durante la reunión mensual del Gultij, Grupo de Usuarios de GNU/Linux de Tijuana, México, di una presentación sobre PostgreSQL, un sistema manejador de bases de datos objeto-relacional (ORDBMS).

Liga al video en YouTube: https://www.youtube.com/watch?v=xyq6b9wZ0aw

Esperar hasta terminar la entrada estándar

Si uno teclea líneas a la entrada estándar desde el teclado, ésta se va procesando línea por línea:

$ cat -n
hola
     1	hola
mundo
     2	mundo
maravilloso
     3	maravilloso
^D
$

Así, resulta impráctico marcar la salida usando el ratón para copiarlo al portapapeles o simplemente para ver la salida junta. Como alternativas tenemos:

  • Marcar y copiar línea por línea, acumulando el resultado en un editor antes de copiar todo el texto. Muy impráctico.
  • Redirigir la salida a un archivo, pero aún queda pendiente tener que procesar y borrar el archivo después.
  • Usar tac | tac:
    $ tac | tac | cat -n
    hola
    mundo
    maravilloso
    ^D
         1	hola
         2	mundo
         3	maravilloso
    $
    

tac es una instrucción que concatena archivos y los despliega en reversa (LIFO en lugar de FIFO por línea). Por naturaleza, tac se ve en la obligación de leer la entrada estándar completa antes de poder mandar la primera línea de su salida. Si invertimos la entrada dos veces se obtiene el efecto deseado.

No sé hasta cuántas líneas soporte antes de volverse lento. Aquí con 10,000 líneas funciona aún bastante bien.

¿Alguien conoce alguna mejor manera?

Actualización: Dualbus me recomienda sponge de moreutils. Ejemplo:

$ sponge | cat -n
hola
mundo
maravilloso
^D
     1	hola
     2	mundo
     3	maravilloso
$

Según el manual, sponge «absorbe la entrada estándar y la escribe a un archivo».