Publi

  • Cómo empotrar datos dentro de un ejecutable hecho en C

    photo-1453179592584-e2587867cfff

    En nuestras andanzas como programadores, seguro que nos hemos encontrado alguna vez en esta situación. Tenemos un programa que vamos a distribuir, pero que tiene ciertos archivos asociados (imágenes, texto, scripts, etc) que deben ir junto con el programa.
    En un primer momento podemos distribuir los archivos junto con el programa, y es una buena solución hasta que a alguien le da por cambiar esos archivos y consiguen que nuestro programa haga cosas diferentes a aquellas para las que ha sido pensado originalmente.… Leer artículo completo

  • Generando la salida de nuestros programas con plantillas en C++ con Silicon en pocas líneas

    photo-1456983887044-b5ecb1059660

    A medida que el hardware y el software van evolucionando, van cambiando las preferencias a la hora de desarrollar un producto. Hace unos años, el objetivo principal era que el producto final funcionara, intentar hacer el mínimo número de operaciones para que el software corriera en un ordenador de la mejor forma posible. Desde hace unos años, el hardware es capaz de hacer muchas cosas y muy rápido, los lenguajes han evolucionado y se han optimizado mucho; por lo tanto, podemos aprovechar y hacer que desde el punto de vista del mantenimiento, legibilidad del código, hacer que el código sea poesía y hacer que todas las piezas encajen perfectamente.… Leer artículo completo

  • Ese inesperado día en el que decides devolver el favor

    photo-1418874586588-88661ed80c4a

    El mundo del software libre es amplio y complejo. Se ha hablado mucho de las 4 libertades del software libre, definidas por Richard M. Stallman1 (libertad de usarlo con cualquier propósito, libertad de estudiarlo y modificarlo de acuerdo a tus necesidades, libertad de compartir las copias del programa y libertad para mejorarlo). Si lo pensamos, desde un punto de vista humano, tal vez pensemos que todos los programas de nuestro ordenador son así.… Leer artículo completo

  • Cómo insertar un elemento a la lista de documentos recientes en C

    photo-1448523183439-d2ac62aca997_r

    Hoy toca un código muy rápido para nuestras aplicaciones con Gtk+ (yo he usado la versión 3 para este ejemplo). Lo que haremos será incluir un archivo (el que nosotros queramos) en la lista de «Usados recientemente» de forma que cuando vayamos a algún diálogo de apertura de archivo veamos añadido dicho documento.
    Esto puede ser muy útil cuando nuestra aplicación salve o cargue archivos y queramos que el usuario pueda utilizarlos rápidamente desde otra aplicación.… Leer artículo completo

  • Cómo buscar en un vector o una lista de mapas en C++

    photo-1433357094834-cdeebc8e9dce_r

    Una de las cosas que hacen mágico C++ es que podemos crear estructuras realmente grandes valiéndonos de las clases y estructuras de que disponemos. Vale, en otros lenguajes también podemos hacerlo, pero en C++ parece más grande aún dada la literatura de los tipos. Bueno, en Java podemos llegar a tener mucha más literatura, pero hoy el tema es C++.

    ¡ Una lista de mapas ! ¿Para qué?

    Bueno, el primer paso es hacer un ejemplo práctico para el que una lista de mapas puede ser útil y, por ejemplo, puede ser para almacenar información estructurada.… Leer artículo completo

  • Cómo buscar un archivo en diferentes rutas en C++

    photo-1442849914809-0df6c377974f_r

    Es algo muy común, hemos creado un software que necesita ciertos archivos para ejecutarse. El ejemplo más común es el archivo de configuración. Tenemos que cargar la configuración de nuestro programa, pero antes, tenemos que saber dónde está, y hay varias alternativas. Pero podemos utilizar el mismo programa para buscar plantillas, páginas web, archivos de datos, en fin, lo que queramos.

    Nota: Estos programas están hechos para Linux, aunque si queremos usarlos en Windows, bastará con cambiar la barra / por \ o tal vez queramos hacer una opción multiplataforma, pero no deberíamos tener que cambiar muchas cosas.… Leer artículo completo

  • Cómo crear ventanas semitransparentes en Gtk+-3.0 con GtkMM

    Screenshot 17-02-2016-070256
    Es algo que está muy chulo, y puede hacer que la experiencia de usuario de nuestras aplicaciones sea mucho mejor, además de dar un punto friki si queremos intercalar información de fondo, o queremos hacer una animación, una ventana splash chula mientras arranca nuestro programa, etc.

    Lo que tenemos que hacer es que nuestra ventana se pinte en un contexto RGBA (rojo, verde, azul, alpha), donde alpha es nuestro valor de opacidad.… Leer artículo completo

  • Conocer el tipo MIME de un archivo gracias a GIO en lenguaje C

    3210986710_d3cbbdac55_b

    La biblioteca GIO nos proporciona una capa más sobre el manejo de archivos. Nos aíslan un poco de las llamadas al sistema operativo para hacer muchas operaciones sobre archivos facilitando el uso de la biblioteca en aplicaciones multiplataforma. Así como dándonos algunas funciones interesantes que ya vienen hechas.

    La gran ventaja de GIO frente al acceso normal a un archivo es que hace transparente al programador el acceso a sistemas de archivos compartidos (en Windows, Mac o Linux) sin tener que gastar mucho tiempo en todo eso.… Leer artículo completo

  • Cómo listar archivos de forma recursiva en C, y un mundo de posibilidades en nuestros programas

    3042638653_f14c62a4f7_bPuede que seas un hacha con el comando find o incluso con locate; pero hay veces que nuestro software tiene que ser capaz de realizar la búsqueda de un archivo en el árbol de directorios, puede que queramos hacer inclusiones, exclusiones, o analizar las características del archivo.
    Podemos tener varias misiones, por ejemplo calcular el tamaño que ocupan todos los archivos a partir de una ruta dada (como hace du -s), copiarlos a otra ruta como haría un gestor de archivos o, incluso buscar archivos repetidos.… Leer artículo completo

  • Creando un cliente para un servicio de red con pocas líneas en C++

    neon_open_splitshire_r

    En la era actual, es muy importante que múltiples aplicaciones accedan a servicios online para obtener la información que desean (o incluso enviarla). Es decir, las aplicaciones han perdido su simplicidad de ejecutarse en una sola máquina, y han pasado a ejecutarse en múltiples máquinas conectadas a través de Internet.

    Y, aunque muchos piensan que C++ no es un lenguaje muy indicado para ello, y que no se pueden hacer estas cosas.… Leer artículo completo