
Ambas fotos son del Set “Estado de Puebla“, al cual estan todos invitados a visitar en Flickr.
La celebración de Día de Muertos ha sido nombrada como Patrimonio de la Humanidad por la UNESCO. El día de muertos tiene mas de 3mil años celebrándose en América, muchisimo antes llegara Cristóbal Colón. El Día de Muertos lo conmemoraban muchas culturas de mesoamérica como los Mexicas, Purépechas, Mayas, Totonacas y no se cuantos otros más.
Ahh y por favor, no confundan el Dia de Muertos con el susodicho Halloween, no es la misma cosa ni tienen relación uno con el otro, ninguno es copia del otro. Y por cierto el Halloween no es patrimonio de la humanidad.

Es muy útil hacer debugging con std::cerr, y si usas:
#include <iostream>
using namespace std;
main(blabla...){
cerr << "This is a debug message" << endl;
}
Todo funciona maravillosamente, hasta que tus 20 threads comienzan a vomitar cientos y cientos de mensajes que hacen imposible leer el debug. Para ello lo ideal sería definir “debug levels”. Hay dos formas la forma simple y tonta:
#ifdef DEBUG_N
cerr << "This is a debug message" << endl;
#endif
Pero esa forma es muy fastidiosa, así que mejor definimos un ‘cerdo‘ (cerdo = cerr debug output). O incluso mejor un cerdo con niveles: cerdo, cerdo2, cerdo3,… , cerdoN. He aqui uno para 3 niveles (donde hacemos que cerdo=cerdo1):
// ----- cerdo.h -----
#ifndef DEBUG
#define cerdo if(0) cerr
#define cerdo1 if(0) cerr
#define cerdo2 if(0) cerr
#define cerdo3 if(0) cerr
endif
#if (DEBUG==1)
#define cerdo cerr
#define cerdo1 cerr
#define cerdo2 if(0) cerr
#define cerdo3 if(0) cerr
#endif
#if (DEBUG==2)
#define cerdo cerr
#define cerdo1 cerr
#define cerdo2 cerr
#define cerdo3 if(0) cerr
#endif
#if (DEBUG==3)
#define cerdo cerr
#define cerdo1 cerr
#define cerdo2 cerr
#define cerdo3 cerr
#endif
// ---- end cerdo.h ----
Ahora solo queda usar los cerdos.
#define DEBUG 2
#include "cerdo.h"
using namespace std;
main(blabla...){
cerdo << "This is a debuglevel 1 message" << endl;
cerdo1 << "This is a debuglevel 1 message" << endl;
cerdo2 << "This is a debuglevel 2 message" << endl;
cerdo3 << "This is a debuglevel 3 message" << endl;
}
Bye. Continue reading ‘Debugging con el ‘cerdo’ y con std::cerr’
Hay dos formas, directo del repositorio y usando una copia local del trunk.
Directo del repositorio
$ svn merge -r START:END http://repo/svn/trunk /directorio/branch
De una copia local:
$ svn up /directorio/trunk
$ svn merge -r START:END /directorio/trunk /directorio/branch
Cualquiera de las dos anteriores te hace un merge a la copia local que está en /directorio/branch.
Para finalmente subir (a la branch) los cambios obtenidos
$ svn ci -m "Merge del trunk a mi branch START:END" /directorio/branch
Si no se pusieron de acuerdo tus programadores, probablemente salgan conflictos, arreglalos.
Espero que al ver esta foto no se decepcionen, esa chava no es tan bonita como aparentaba ser.
Lo que sigue es NSFW y especialmente para el deleite visual de Kaleman :-)
ok, bye.
Para los (tal vez pocos) extranjeros que visitan mi blog y no saben que onda. Resulta que el 2 de Noviembre en Mexico se celebra el Dia de Muertos y el lugar donde uno debería estar es en Patzcuaro y sus alrededores. Esta foto fue tomada en Cucuchucho.