El comando less de GNU es mucho más que un sustituto de more (es decir, un “paginador”). Lo cierto es que es sorprendentemente configurable, tanto que puede utilizarse para visualizar todo tipo de documentos, eso sí, convertidos a texto. A continuación, como ejemplo, describiré cómo configurarlo para ver imágenes en una consola.
(más…)
Descarga el programa: apod.zip.
APOD (de Astronomic Picture of the Day: Foto Astronómica del Día) es una popular web de la NASA que publica y comenta una fotografía diferente cada día de temática astronómica o científica. El programa Python que incluyo a continuación descarga automáticamente la foto de APOD y la instala como fondo de escritorio (si usas GNOME, claro).
(más…)
Allá por el año 1999 se publicaba el nuevo y flamante estándar de C, C99. Una de las muchas de novedades que incluye es la de macros variadic, es decir, con un número variable de argumentos. Sin embargo, siendo programador de C++ me resisto a utilizar macros para cualquier cosas que pueda resolverse con funciones inline y con templates. Esto me deja en una situación de desventaja, pues la única manera que que una función en C++ reciba un número variable de argumentos es con (…) y
¡Hasta ahora! Porque C++0x ha conseguido lo que parecía imposible: templates variadic, es decir templates con número variable de argumentos.
(más…)
Hace unos días tuve que mover un archivo grande de un sistema Linux a otro. Y cuando digo grande, me refiero a alrededor de 10 GB, por lo que transmitirlo por la red no es una opción muy atractiva, sobre todo cuando tengo un disco USB externo con espacio libre de sobra. Pero, ah, este disco está formateado con FAT32 por cuestiones de interoperatibilidad con otros sistemas operativos, y en este sistema el tamaño máximo de archivo es de solamente 4 GB. ¿Qué hice? Lo resolví con la misma técnica que hace 15 años usando disquetes y MS-DOS: un archivo RAR multivolumen con nivel de compresión cero, se crean 5 archivos de 2 GB cada uno y se copian sin problemas. Pero estamos en el siglo XXI y tenemos Linux, tiene que haber una forma más elegante de hacer esto.
Y la hay, por supuesto. Mi propuesta es crear unos cuantos archivos en el sistema FAT32 que juntos sumen el espacio necesario, y luego construir sobre ellos un dispositivo de bloques lo bastante granda para contener el archivo en cuestión. Para esto utilizaré dos drivers de Linux: loop y device-mapper.
(más…)
El otro día veíamos la deducción automática de tipos usando auto, con la que el tipo de una variable se deduce de la expresión con la que se inicializa. Para todos los demás casos, desde hace ya varios años, muchos compiladores proporcionan alguna forma de deducción de tipos, normalmente algo parecido a __typeof. El comité de C++ consideró seriamente incluirlo en estándar, pero finalmente lo descartaron en favor de una idea nueva: decltype.
(más…)