Categoría: Programación

    Jugando con threads en C++11

    Una buena noticia de C++11 es que se incorporó la biblioteca pthreads al nuevo estándar. Esto quiere decir que ya no es necesario implementar un encapsulamiento propio como hacíamos algunos años atrás. Este artículo (breve) ilustra el uso de la nueva clase threads y permite jugar un poco con el comportamiento del multitasking para comprender algunas particularidades que debemos tener en cuenta a la hora de crear aplicaciones concurrentes. Si te interesa este artículo te recomiendo leer también esta nota sobre problemas con float en Golang.

    Puntero automático con contador de referencias

    C++ es un lenguaje que no tiene manejo automático de memoria incorporado en su versión más pura. Es decir, en los compiladores o IDEs más populares entre quienes se dedican a este lenguaje. Existen algunas implementaciones de garbage collectors para C++ y las versiones más nuevas del estándar incluyen una implementación de puntero automático en la biblioteca de plantillas STL. Pero consideraría correcta la afirmación general de que el manejo de memoria en el lenguaje es manual.

    Obtener la dirección MAC local en C/C++

    Este extracto de código muestra cómo obtener a dirección de hardware del adaptador de red en C/C++ en sistemas POSIX. Debería funcionar también en Windows, usando Cygwin o similar. #include <netdb.h>#include <unistd.h>#include <string.h>#include <sys/fcntl.h>#include <sys/errno.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <arpa/inet.h>#include <net/if.h>#include <stdio.h> int main(int argc, char ** argv) { struct ifreq ifr; int s; if ((s = socket(AF_INET, SOCK_STREAM,0)) < 0) { perror("socket"); return -1; } strcpy(ifr.ifr_name, argv[1]); if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) { perror("ioctl"); return -1; } unsigned char *hwaddr = (unsigned char *)ifr.

    Encontrar las direcciones MAC en una red

    Cuando una red ethernet es suficientemente grande como para que el administrador no pueda tener a la mano todas las bocas de conexión, la simplicidad de conexión de esta topología se puede convertir en un problema. Descubrir los dispositivos que se encuentran conectados en un momento determinado, puede resultar complejo. Y es algo que debí solucionar más de una vez. Pero en la última ocasión se me presentó el requerimiento adicional de automatizar el control.

    Ley de gravitación universal II

    Segunda versión de esta simulación de la ley de gravitación universal. Implementada en 3D con la biblioteca Three.js, para Javascript. Con fines didácticos se posicionó una partícula con masa mucho mayor al resto y se fijó en el escenario para que cumpla el rol de sol. Está disponible el código fuente con licencia GPL. Edad: años Zoom: Esta programa sólo funciona con las últimas versiones de Chrome, Firefox o cualquier navegador compatible con HTML 5.