Publi

  • 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

  • Y tú, ¿cuántas teclas eres capaz de pulsar en un día?

    teclado_chulo_r

    Un dato inútil si no fabricas teclados, y muy friki si te gustan este tipo de cosas. Además, depende del uso que hagas de un ordenador, si eres más de teclado o de ratón. Parece que no, pero somos muchos los que preferimos escribir qué queremos hacer que hacer varios clicks en determinadas zonas de la pantalla, o desplazamientos y arrastres con las correspondientes esperas ventana a ventana hasta que el ordenador conozca cuál es nuestro objetivo.… Leer artículo completo

  • BITeS: bug en openSSH, C en 2016, Debian y PHP7, Apple, nmap, Kali Linux y reto poeta de 2016

    photo-1424886097867-7a53e6058dff_r
    Una nueva sección, BiTeS (en realidad iba a ser bocados de Internet, pero eso eso quedaba muy largo para los tweets). Quiero hacer como hace un tiempo, trayendo algunas webs que he visitado los últimos días con información curiosa, y desconectar un poco de tanto programar (o no).

    Vulnerabilidad en openSSH

    ¡La primera en la frente! Terminamos la semana con un bug en openSSH, en realidad es una funcionalidad no documentada y que está en pruebas, pero desde la 5.4 hasta la 7.1 todas son vulnerables.… Leer artículo completo

  • Cómo extraer la parte alta y la parte baja de un número con varios ejemplos en C

    photo-1414509902153-26bed16bc962_red

    En ocasiones, en C, sobre todo, una misma variable numérica (un entero, un short, o incluso un char) encierra en sus bits más valores que nos pueden resultar interesantes por separado. Sobre todo, por optimizar la memoria, en lugar de reservar dos variables de tipo entero de 32bits para almacenar valores pequeños, queramos empaquetar en el mismo valor entero los dos valores y luego extraerlos cuando los necesitemos. Esto lo podemos ver en sistemas empotrados en los que estamos muy limitados en memoria.… Leer artículo completo

  • Bailando con bits III. Mostrando el valor binario de un número [bash, C, C++, PHP, Java, Python, Ruby]

    photo-1425036458755-dc303a604201_red

    De todos es sabido que un ordenador, internamente trabaja con ceros y unos, simplemente eso, a partir de ese simple valor, verdadero o falso, abierto o cerrado, existe o no existe es capaz de formar sonidos, imágenes, textos y cualquier cosa que podamos imaginarnos.

    Aunque no vamos a hacer algo tan complicado, muchas veces puede que tengamos un valor entre manos y queramos saber qué bits hay a uno y qué bits hay a cero aunque sólo sea para verificar que una operación se está realizando como debe o porque estamos aprendiendo a utilizar este sistema de numeración y queremos verificar que todo nos sale bien.… Leer artículo completo

  • Reparto de escaños a partir de los resultados electorales según el sistema d’Hondt

    b3546d64_r

    El sistema d’Hondt. Es el método por el cual se realiza el reparto de escaños tras un proceso electoral en países como España, Chile, Perú, Uruguay, Argentina, Colombia, Portugal, Finlandia y muchos más.

    Y como curiosidad, y dado que vivimos en épocas de elecciones en varios países, vamos a implementar unas hipotéticas elecciones en España. Para ello, vamos a introducir varios nombres de partidos políticos en un saco, vamos a definir un número de votantes y vamos a generar los resultados de unas votaciones, también podemos pedirlas al usuario, pero me ha parecido también curioso generar los votos para hacer pruebas más rápidamente).… Leer artículo completo

  • Cómo comprimir y descomprimir datos en memoria o textos en 128 líneas o menos en C

    photo-1417514645232-3042464af1da_r

    Si queremos que nuestra información ocupe menos, ésta es una buena forma de conseguirlo. Muy útil cuando queremos transmitir información y reducir los bytes transmitidos, es lo que hacen muchas páginas web actualmente, el servidor nos manda la página comprimida y luego el navegador se encarga de descomprimirla antes de mostrarla y como por lo general se tarda menos en comprimir-enviar-descomprimir que en enviar sin comprimir antes es algo que acelera la navegación web.… Leer artículo completo