Publi

  • Cómo obtener información de salud de tu sistema Linux o tu servidor en C y C++ (I. Memoria)

    Es algo necesario para el buen funcionamiento de nuestras aplicaciones. Para añadir robustez a nuestros sistemas, haciendo que éstos se comporten de manera adecuada en situaciones imprevistas. Por ejemplo, si necesitamos crear un archivo y añadir cierta información, podemos, a priori, comprobar que el dispositivo en el que vamos a escribir tiene suficiente espacio libre, lo que nos puede ahorrar suplicios si los ficheros son demasiado grandes. También deberíamos ser capaces de comprobar que un disco de red está conectado antes de trabajar con él y, en muchos casos, anticiparnos a largas esperas y bloqueos por parte del sistema operativo.… Leer artículo completo

  • Operador coma. Cómo incorporarlo a nuestro día a día con muchos ejemplos en C

    El operador coma. ¿Cómo empezar a usarlo?
    Seguro que lo has visto cientos de veces por ahí, pasando desapercibido en multitud de programas hechos en C. Es más, incluso el primer día que empezaste a ver programación os visteis las caras y casi no te diste cuenta. Incluso puede que lo hayas utilizado sin siquiera ser consciente de lo que hace en realidad.

    Otros muchos sí que sabréis de qué va este operador, y me gustaría que los que sí sabéis de qué va, sugirierais más ejemplos en los comentarios.… Leer artículo completo

  • Crea tus propias webs dinámicas en C++ de forma fácil y usando plantillas para no compilar a cada cambio

    Screenshot 12-08-2016-020848
    Esto forma parte de un pequeño proyecto que mantengo desde hace algo más de un año. El objetivo es crear un sistema con el que servir webs desde C++, que sea más o menos fácil de mantener y generar, flexible, que soporte enrutadores, plantillas, hosts virtuales con el fin de poder utilizarlo para diferentes tipos de aplicaciones a modo de panel de control web.

    Sobre todo está pensado para aplicaciones internas y no para desarrollos web públicos, por temas de seguridad y rendimiento cuando la carga aumenta considerablemente, aunque sí que podría ser utilizado sin problemas en segundo plano por nuestras aplicaciones web por eso de que en ciertas operaciones, un programa hecho en C++ rendirá mucho mejor que cualquier Javascript, Java, PHP, etc.… Leer artículo completo

  • 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

  • Cómo aplicar filtros de GIMP a un vídeo

    photo-1464602083226-de2c1675e946

    Estoy subiendo vídeos a mi canal personal de Youtube. Aunque sólo tengo algunos pequeños tutoriales, postales de navidad y cosas así. He decidido subir algunos vídeos y cortos antiguos. Aunque están grabados con una cámara analógica y en cinta magnética, lo que significa que el vídeo tiene mucha pérdida y poca calidad. En un intento por darle algo más de definición, o al menos que el visionado sea algo más agradable, pensé en un filtro de Gimp (Desenfocado Gaussiano Selectivo), y estaría muy bien poder aplicarlo a todos los fotogramas.… 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

  • Generando imágenes en C, sólo por diversión, empezando desde cero (Parte I)

    colores_y_formasHace tiempo que no pongo nada de imagen digital, y ya tenía ganas. No haremos nada complicado, pero muchas veces, cuando empezamos a programar, pensamos en representar el contenido de un array en una imagen, o para esas veces en que pensamos que un simple algoritmo nos puede ayudar a crear la imagen que queremos.

    Cómo generar las imágenes

    Para generar las imágenes, vamos a pensar en un buffer sencillo, lineal de tipo unsigned char, o uint8_t, para imágenes en blanco y negro… vamos a empezar con imágenes sencillas, ya meteremos color… y más cosas.… Leer artículo completo

  • Cómo hacer pequeñas operaciones matemáticas al reemplazar texto en Emacs

    emacs_user_at_work_by_earlcolour-d38aj2x_2

    Me encanta Emacs, y como me encanta Emacs, no paro de aprender todos los días cosas nuevas. Una de esas cosas nuevas, que más me ha llamado la atención es, como dice el título, la posibilidad de hacer pequeñas operaciones matemáticas al reemplazar texto en Emacs. En concreto, dentro de las expresiones regulares.

    Esto, en la práctica serán sumas o restas, o cualquier operación que podemos hacer a los números que encontramos en una expresión regular.… 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

  • Callbacks en C++11, ejemplos con argumentos por referencia y templates (III)

    7544361624_5fb63e7250_k

    Volvemos a dar guerra con el tema que empezamos hace unas semanas, si no has seguido esta serie de posts te recomiendo echar un ojo a Callbacks en C++11 nuevas posibilidades para un software más potente y Callbacks en C++11, llamando a métodos con un objeto asociado. En ellos pongo muchos ejemplos de cómo asociar funciones o métodos a variables.

    Argumentos por referencia

    Es un tema que hemos dejado un poco de lado, pero sólo quiero hacer una pequeña puntualización.… Leer artículo completo