Los Truquis de Occam
TRUQUIS
Los Truquis de Occam
2016-04-06
Por
Occam's Razor

Aquí está. Vuestra sección preferida no podía faltar. Este mes venimos con unos TRUQUIS bastante interesantes... Ya nos contaréis que os parecen

Escribe y ejecuta tu programa C en una línea

Nuestro querido compilador gcc, dispone de un flag para leer el código a compilar desde la entrada estándar, en lugar de desde un fichero de texto. Así que esto nos permite compilar y ejecutar programas mú rápido.

$  gcc -xc - && ./a.out
#include <stdio.h>

int main(void) { printf ("%s", "Hola Mundo!\n");}
^D (CTRL + D)
Hola Mundo!
$

Como podéis ver más arriba, para terminar de escribir vuestro programa y ejecutarlo, tendréis que pulsar CTRL+D. Alternativamente podéis utilizar documentos "AQUÍ" ( :o... si, la traducción de "Here Documents" apesta).

Algo tal que así:

$  gcc -xc - <<<EOP && ./a.out
#include <stdio.h>

int main(void) { printf ("%s", "Hola Mundo!\n");}
EOP
Hola Mundo!
$

La principal diferencia sería esta:

$ STR="Hola Mundo!\n" 
$ gcc -xc - << EOP && ./a.out
#include <stdio.h>

int main(void) { printf ("%s", "$STR");}
EOP
Hola Mundo!
$

Parcheando Ficheros Binarios con vim

Sí amigos. Recordáis?. Vim el todopoderoso, el que todo lo puede, incluso parchear ficheros binarios. Para poder hacer esto necesitamos la herramienta xxd que debería estar instalada en vuestro sistema. Usando esta herramienta y la capacidad de vim para ejecutar comandos sobre el texto que estamos editando parchear cualquier programa es pan comio.

Para probar este truco os recomendamos que utilicéis un programa 'Hola Mundo' y cambiéis el mensaje a otra cosa.

  • Abrid el fichero... por ejemplo el a.out que acabáis de general con el Truqi anterior

  • En vim, entrad en modo comando y escribid ":%!xxd". Este comando selecciona todo el texto (%) y lo envía a través de un "pipe" al programa xxd. La salida del programa se lee de vuelta y se muestra en el editor.

  • Nuestro fichero se ha convertido en un volcado hexadecimal del fichero binario que abrimos al principio.
  • Ahora podéis modificar el fichero binario. Lamentablemente solo los valores hexadecimales pueden ser editados. Buscad la cadena "Hola Mundo"... el Hola es, en hexadecimal 0x486f 0x6c61. Lo cambiamos a "Chao" 0x4368 0x616f. Si no podéis convertir ASCII a HEX de cabeza como hacemos nosotros:
    echo "Chao" | xxd
  • Ahora tenéis que convertir el fichero en binario de nuevo. Activad modo comando y escribid : ":%!xxd -r"
  • Grabad el fichero y ejecutadlo! (y una vez que esté muerto deshaceros del cadáver).

Se os ocurren otros comandos interesantes que utilizar desde vim?

Añade la fecha a tus Changelogs

Los Changelogs de los proyectos son ficheros que contienen un registro de los cambios realizados al programa. Normalmente comienzan con una línea conteniendo una fecha, y bajo esta línea, la lista de cambios realizados ese día.

Si escribís vuestros ChangeLogs con vim, como nosotros hacemos, podéis añadir la fecha actual, utilizando el siguiente comando:

:read ! date

HASTA EL PRÓXIMO NÚMERO
Esto es todo... nos vemos en la próxima entrega


SOBRE Occam's Razor
Somos una revista libre que intenta explicar de forma sencilla conceptos tecnológicos y científicos de los que no podemos escapar. Al final, todo es más fácil de lo que parece!

 
Tu publicidad aquí :)