miércoles, 29 de diciembre de 2010

Otro año se va

Pues como bien dice el título de la entrada otro año más se va, y es que le quedan escasos 3 días al 2010... Y como todos los años antes de acabarlos me gusta ver que he hecho, recapitular un poco por ver si algunos de mis propósitos se han cumplido.

Podría resumir este año, como el año del estrés y del agobio. El máster me ha quitado muchísimo tiempo, vaya que los días de 8:00 a 20:00 intensivos me han matao. Lo peor de todo es acabar, esforzarte y no alcanzar lo esperado. En definitiva fue toda una decepción. Ir a clase todos los días, entregar los trabajos a tiempo, e invertir más de dos meses sin descansar en hacer el proyecto, para al final no llegar a lo esperado. Lo bueno que  de una de las asignaturas hemos conseguido sacar un artículo y en febrero del año que viene ¡¡iremos a Canarias!! :D.


De viajar casi ni hablo :'(. Este año no ha habido tiempo para nada. Alguna escapada se ha hecho, pero muy poquitas. Básicamente la playa en verano y a la sierra en invierno xD, y a Madrid en una visita fugaz a la Warner. Al menos pude permitirme unas mini vacaciones para desconectar de todo. A pesar del calor, de la cantidad de catalanes estúpidos que nos cruzamos, de los carteles indescifrables y la lluvia, me lo pasé muy bien. Fue una semana para descansar y no pensar en nada, salir, ver cosas, pasear por la playa, disfrutar de Carlos, ..., y visitar a Mónica también :P.









Mis hobbies han estado desaparecidos durante el año, aunque el karate no lo he abandonado. De hecho, he estado preparándome el examen de cinturón negro. Hice el examen pero no tuve mucha suerte, digamos que me salio realmente bien, pero por temas de piques entre gimnasios en Granada me suspendieron T_T. Una pena porque tenía muchísima ilusión y le había echado mucho tiempo para prepararlo y perfeccionarlo ...




Como se ve mucho tiempo no he tenido y eso lo han pagado algunos, mi familia y mis amigos. Hay gente que lo ha entendido, y otros no, pero era lo que había ...

Y bueno por suerte sigo teniendo a Carlos conmigo :), quiero darle las gracias por su tiempo, por su compresión, por su paciencia y por seguir queriéndome como lo hace. Porque yo sé que he estado muy insoportable, y también porque él me ha ayudado en todo lo que ha podido, que para mi ha sido mucho.


Espero que el 2011 sea un año más relajado, ponerme en forma de verdad y sacarme el cinturón negro de una vez, y poder competir en serio. Empezar el doctorado de una vez!. Seguir como sigo y si pudiera ser un poco mejor :P.

Y como todos los años seguir teniendo a mi familia y amigos cerca, y por supuesto seguir con Carlos, que es muy especial para mi ^^.

Os deseo un feliz año 2011, que se cumplan todos vuestros deseos. Y por supuesto que paséis una nochevieja estupenda y un día 1 sin mucha resaca ;).

¡¡¡¡FELIZ 2011!!!!

sábado, 25 de diciembre de 2010

Armé el belén y literalmente

Uno de los blogs que sigo (Papercraft) publicó hacé como 1 mes, los recortables para un belén. El caso es que me gustó mucho, pero no quería dejar de poner mi belén de Pin y Pon, así que convencí a mi madre para que me dejara poner el belén que yo hiciera.

El caso es que en 2-3 días he tenido que ponerme deprisa y corriendo por culpa del proyecto, pero ayer, que fue cuando llegué aquí pude terminar lo que me quedaba y colocarlo ^^.

Os dejo unas fotillos de este nuevo belén, que la verdad está muy chulo :P.




Y también os dejo de mi belén de Pin y Pon que también está muy chulo ;).





Por cierto si queréis montar vosotros este belén por gusto o si queréis entretener a vuestros niños os dejo los enlaces para descargar las figuras ^^:
Yo los he montado un poco a mi bola, es decir, que algunas figuras les he intercambiado la ropa y cosas así :P.

Al final ha venido Papá Noel

No estaba yo muy segura de haber sido lo suficientemente buena como para que Papá Noel se pasará por aquí y me dejase algo ... :P. Pero al final parece que sí lo he sido y me ha dejado una cosita :D






Espero que vosotros también hayais sido buenos y os hayan regalado algo ^^.

viernes, 24 de diciembre de 2010

Feliz Navidad y Feliz 2011

Ya queda menos para la Nochebuena y para que termine el 2010, y bueno como todos los años a mi me gusta hacer mi felicitación, este año con el máster y sobre todo por culpa del proyecto, no he podido hacer nada como a mi me gusta, es decir, ni un dibujillo ni una manualidad, así que os dejo una foto de mi belén y mi árbol, este año con cosas nueva :P.

Espero que estas Navidades las paséis con vuestra familia y lo importante que sean las mejores posibles.

¡¡¡¡Feliz Navidad y Feliz 2010!!!!

Feliz Navidad :)

Hoy 25 de diciembre os deseo una feliz Navidad :), espero que Papá Noel os haya traído algo :), y sobretodo que estáis disfrutando con vuestra familia ^^.


Papá Noel lo vigila todo ...

En el XKCD de hoy, sale una tira muy graciosa relacionada con la Navidad y que os dejo por aquí:


He sees you when you're sleeping, he knows when you're awake, he's copied on /var/spool/mail/root, so be good for goodness' sake.

Así que ya lo sabéis sed buenos, y no hagáis cosas que no podéis ;).

miércoles, 22 de diciembre de 2010

La historia digital de la Natividad

Una amiga mía me ha enviado un correo en el que aparecía esta versión moderna del nacimiento de Jesús. Como me parece bastante gracioso y friki pues quiero compartirlo con vosotros :).

Solución problema con acentos en Qt

Ahora que ya he terminado el proyecto, aunque la nota no haya sido todo lo buena que a mi me hubiera gustado o casi que merecido, tengo tiempo de comentar todos esos detallitos de implementación de la interfaz que me han hecho googlear bastante.

En esta entrada voy a comentar una cosa curiosa. En linux, cuando ejecutaba mi interfaz me di cuenta que en vez de poner Características en uno de los label, ponía Caractersticas, es decir, que se comía la i acentuada, o me salía un gurrumiño ... :S. Curiosamente en windows no me pasaba esto, es decir que todo se veía la mar de bonito jejeje.

Para ver correctamente los acentos, lo que hay que hacer es cambiar la codificación de los caracteres usada por Qt. En el fichero .cpp donde se abre la aplicación hay que añadir el siguiente trozo de código:

QTextCodec *linuxCodec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(linuxCodec);
QTextCodec::setCodecForCStrings(linuxCodec);
QTextCodec::setCodecForLocale(linuxCodec);


Espero que a alguien le sirva de ayuda :).

Estamos en Navidad

Con motivo de estas fechas, he cambiado un poco el diseño del blog para que sea más navideño :).

Esta es la versión no navideña:


Y esta la nueva versión navideña :D:

Disfraz de árbol de navidad

El viernes 17 de Diciembre fue la 19 Carrera Nocturna aquí en Granada. La gracia de la carrera es que es una especie de carrera de disfraces, la gente se puede disfrazar de lo que quiera, aunque nosotros entendimos que tenía que ser de algo navideño. EL caso es que un par de días antes de la carrera me enteré de cuando era y casi de que existía :P, y decidimos participar Carlos y yo, la pena es que hubiera tanto tráfico y no pudiéramos correr al final y participar en el concurso de disfraces T_T.

Igualmente nosotros hicimos nuestros disfraces :), fue un poco a toda pastilla pero algo salió :P. Nuestro disfraz era de árbol de navidad :D. No nos dio tiempo a terminarlo entero, pero digamos que se parece :P.



Nos falto pintura y tiempo para ponerle bien el espumillón y la bolas, pero ya para el año que viene lo terminaremos ^^.

Aunque no pudiésemos participar y ya que habíamos conseguido llegar nos acercamos a ver los disfraces. En realidad fue muy mal llegar corriendo y ver que el primero estaba llegando T_T.

La gente iba disfrazada de todo, había unos vestidos de San Fermín, otros de toreros, había abejillas y flores, una Dora la exploradora, que apenas si podía avanzar porque los niños no paraban de lanzarse para abrazarla xD, de árbol de navidad, de los personajes de Shrek en la película de navidad, un mega belén viviente, regalos de navidad, turrones, Papá Noel y sus renos, de controladores aéreos, y montón más. Para mi el que más me gustó fue un árbol de navidad que tenía luces de verdad y todo :O.

Aquí os dejo las fotos que aparecen en la página de carrera, que a mi se me olvidó la cámara :S.

Los árboles de navidad

Los controladores aéreos con los pasajeros todo el rato quejándose.

El portal de belén, la pena es que en la foto no salen todos.

El enjambre de abejas con las florecillas.

Estos fueron muy graciosos vistiéndose de las señales por obras, quejándose del estado actual de Granada, que no se puede pasar por ningún sitio sin ver este cartel.

Las burbujas de Freixenet.

Super Mario Bros ^^.

Blancanieves y los mil enanitos jejeje.

Turrón el bobo, de gran marrón.

Leonas o tigresas ...

Toreros.

Papá Noel y sus renos.

Los regalos!!!

Estos van disfrazados de un anuncio que ha hecho Caja Granada, casas que se venden solas.

Vestidos con pijamas.

Los de Shrek, puede que lo de la peli de Navidad me lo haya inventado, pero en el momento me lo pareció...

Los que iban a San Fermin, pero llegaron muy tarde.

Fullmetal Alchemist - Brotherhood

Hace ya que la terminé, pero los que me conozcan o sigan por twitter sabrán que no he estado precisamente libre para escribir ni para nada.

El caso es que el mismo fin de semana que vi la última película de Harry Potter también vi los últimos 9 capítulos de Fullmetal Alchemist - Brotherhood.

Si la otra serie que hicieron de Fullmetal Alchemist me gustó, esta me gustó mucho más. La historia completa es genial, el final es mucho mejor que el de la otra serie, y muchos de los personajes se comportan totalmente diferente.

La base de la historia es la misma que la de la anterior, los protagonistas Eduard y Alphonse Elric son dos niños alquimistas que a la muerte de su madre rompen el tabú, es decir, intentan hacer la transmutación humana para volver a la vida a su madre. Todo falla y lo peor es que en el proceso Eduard pierde su pierna y su brazo y Alphonse todo su cuerpo. Durante toda la serie intentan encontrar la forma de volver sus cuerpos a la normalidad. Para esto se alistan en el ejército donde conocen un montón de gente, algunos le ayudan y otros no.


En esta versión aparecen la mayoría de los personajes principales de la otra, Roy Mustang, Riza Hawkeye, Winry, Alex Amstrong, Scar, ... Pero aparecen otros nuevos que son geniales, como Olivier Amstrong, la hermana de Alex, o Ling Yao, Lan Fang y May, ...



En este caso los homúnculos cambian, es decir, algunos no aparecen y son cambiados por otros, e incluso los nombres no son los mismos.

Lo único que no me gustó es que las primeras historias que en la otra serie si aparecen, en este caso, o no las cuentan o muy levemente ...

Sólo os digo que hay que verla, para que podáis dar vuestra propia opinión, pero que a mi me ha gustado mucho, y a Carlos también :P

domingo, 21 de noviembre de 2010

Harry Potter y las Reliquias de la Muerte - Parte 1



Como buena fan de Harry Potter, compré mis entradas dos semanas antes de estreno para que luego no hubiera problemas :P. Digamos que el muchacho de la taquilla nos dio en la fila del centro los asientos del centro :D, vamos que mejor situados no podríamos estar ^^.

Fuimos a la sesión de las 11:30, tardecillo, pero era cuando se podía, y estaba la sala llena de gente, no había ni un hueco. Creo que de todo el mogollón sólo un chaval y yo llevábamos la bufanda de Gryffindor :).

No quiero contar la peli, pero he de decir que no me decepcionó, para los que os hayais leido el libro, diría que es de las más fieles, me alegro que para terminar la saga, decidieran que las películas se parecieran realmente al libro.

Básicamente esta primera parte cuenta todo el viaje de Harry, Ron y Hermione, para destruir el Horrocrux que encontraron en la película anterior, lo que tienen que hacer, y lo que les pasa. Termina justo cuando todos se reencuentran.

La verdad el corte que han hecho no están mal, y no salé un continuará malvado, que tanto coraje me da.

Para la gente que se haya leído el libro yo creo que le va a gustar, es como siempre, algunas cosas se las inventan pero no está nada mal :P.

Como siempre que curioseo en todas las web de las películas que veo, en la de Harry Potter te dejan crearte tu propio póster de Undesirable 1, que es lo que es Harry cuando Voldemort se hace de nuevo con el poder del mundo mágico ...

viernes, 29 de octubre de 2010

El problema de los puntos más cercanos

Ahora que estoy con el proyecto todo el día, estoy redescubriendo problemas de cuando estaba en la carrera. El caso es que en uno de los pasos de la implementación, necesitaba obtener los dos puntos más cercanos.

El problema de los puntos más cercanos, es un problema geométrico, en el que dado n puntos (en mi caso en 2D, es decir en un plano), quiero encontrar un par de puntos cuya distancia entre ellos sea la menor.

Inicialmente pensé, uy que problema más fácil, con dos bucles anidados resuelvo el problema:


int p1, p2;
double dist, dist_min = 100000000;

for (int i = 0; i < num_puntos; i++){

    for (int i = 0; i < num_puntos; i++){

        if (i != j){
            dist = sqrt((puntos[i].X - puntos[j].X)^2 + (puntos[i].Y - puntos[j].Y)^2);

            if (dist < dist_min){

                p1 = i;
                p2 = j;
                dist = dist_min;
            }
        }
    }
}



Este caso serie por la fuerza bruta, sin pensar en ningún tipo de eficiencia ni nada por el estilo, Por lo que si tienes que repetir esta búsqueda muchas veces, el programa puede tirarse un ratillo en acabar ... Y ya que estamos os hablo de eficiencia. En el caso de la fuerza bruta, la eficiencia sería de O(n2), donde n es el número de puntos.

Hay varias formas de mejorar esta eficiencia, y resolver el problema en un tiempo menor:

  • Usar un algorimo divide y vencerás.Donde se consiguie una eficiencia de O(n log2n)
  • Usar programación dinámica y crear una serie de estructuras de datos para facilitar el problema. En este caso se podría llegar a alcanzar una eficiencia de O(log n)
En mi caso he implementado la primera opción. El algoritmo divide y vencerás realizará lo siguiente:
  1. Ordenamos los puntos según su componente X
  2. El caso base será cuando queden 2 ó 3 puntos, en ese caso calcular la distancia mínima.
  3. Si el número de puntos es mayor, calcular la distancia mínima como el mínimo entra la distancia en el lado derecho e izquierdo.
  4. Además, tenemos que tener en cuenta los puntos cerca de la zona de división, en este caso se calcularán los puntos que estén a menos de dist_min de la línea L. Esta nueva lista de puntos se ordena con respecto a la componente Y, y obtenemos la distancia mínima. Si esta es menor que la distancia mínimal actual se modifica el valor.
No sé si está muy claro el ejemplo pero de todas formas os dejo el trozo de código (en c++) que he implementado.


punto calcular_distancia_minima(int ini, int fin){
    punto p1, p2, p, paux;
    double dist1, dist2, dist3;

    if (fin - ini + 1 > 3){
        p1 = calcular_distancia_minima(ini, ini + (fin - ini + 1)/2 - 1);
        p2 = calcular_distancia_minima(ini + (fin - ini + 1)/2, fin);

        if (p1.get_peso() < p2.get_peso())

            p = p1;
        else
            p = p2;

        vector c1;

        for (int i = ini; i <= fin; i++){

            if (puntos[i].X > (puntos[ini + (fin - ini + 1)/2].X - p.distancia)){
                paux.X = puntos[i].X;
                paux.Y = puntos[i].Y;
                paux.posicion = i;
                c1.aniadir(paux);
            }

            else {

                if (puntos[i].X < (puntos[ini + (fin - ini + 1)/2].X + p.distancia)){

                    paux.X = puntos[i].X;
                    paux.Y = puntos[i].Y;
                    paux.posicion = i;
                    c1.aniadir(paux);
                }
            }
        }

        c1.mergesortY(0, c1.tamanio()-1);

        double dist;
        int j;

        for (int i = 0; i < c1.tamanio() - 1; i++){

            j = i + 1;

            while ((j < c1.tamanio()) && (c1[j].Y - c1[i].Y < p.distancia)){                 dist = sqrt((c1[i].X - c1[j].X)^2 + (c1[i].Y - c1[j].Y)^2);

                if (dist < p.distancia){

                    p.X = c1[i].posicion;
                    p.Y = c1[j].posicion;
                    p.distancia = dist;
                }

                j++;
            }
        }
    }

    else {

        if (fin - ini + 1 == 2){
            p.X = ini;
            p.Y = fin;
            p.distancia = sqrt((puntos[ini].X - puntos[fin].X)^2 + (puntos[ini].Y - puntos[fin].Y)^2);
        }

        else{
            dist1 = sqrt((puntos[ini].X - puntos[fin].X)^2 + (puntos[ini].Y - puntos[fin].Y)^2);
            dist2 = sqrt((puntos[ini].X - puntos[ini + 1].X)^2 + (puntos[ini].Y - puntos[ini + 1].Y)^2);
            dist3 = sqrt((puntos[ini + 1].X - puntos[fin].X)^2 + (puntos[ini + 1].Y - puntos[fin].Y)^2);

            if (dist1 <= dist2 && dist1 <= dist3){

                p.X = ini;
                p.Y = fin;
                p.distancia = dist1;
            }

            else{

                if (dist2 <= dist1 && dist2 <= dist3){

                    p.X = ini;
                    p.Y = ini + 1;
                    p.distancia = dist2;
                }

                else{
                    p.X = ini + 1;
                    p.Y = fin;
                    p.distancia = dist3;
                }
            }
        }
    }

    return p;
}


Programa main que llama a la función de calcular distancia:


// creamos un vector de puntos
vector puntos(2000);
puntos.inicializar();

int main(){
    puntos.mergesortX(0, puntos.tamanio() - 1);
    punto p_distancia = calcular_distancia_minima(0, puntos.tamanio() - 1);
}


Fuentes:
Closest Pair of Points Problem - Wikipedia
Closest Pair Problem - Subhash Suri
losest Pair of Points - Rahul Gokhale

domingo, 24 de octubre de 2010

De camino para el negro

Este sábado hubo en el gimnasio una especie de jornadas de puertas abiertas. Después de echar un rato por la mañana por allí, sobre las 12 empezaron los exámenes de karate. Se examinaron un par de blancos, un par de amarillos y Carlos, que ya es marrón :D.

Yo como me voy a examinar de cinturón negro pues hice una especie de prueba, es decir, lo enseñé para ver como iba la cosa, y parece que no muy mal.







En el vídeo se pueden ver varios fallos, las piernas están un poco reguleras, quizás porque no había calentado ni nada, y lo peor es que iba deprisa, y no dejo que se vean las técnicas bien. Todavía tengo 1 mes y medio para practicarlo pero hay que mejorar un poco más para que en Diciembre salga lo mejor posible ^^.

Y bueno también dejo el de Carlos, que le salió estupendamente :D




lunes, 18 de octubre de 2010

Binarización de imágenes

La primera fase de mi proyecto, es binarizar las imágenes para facilitar el procesamiento posterior. Esto lo tengo implementado desde hace bastante, pero en su momento cuando busqué me costó encontrar la mejor opción.

Binarizar una imagen es cambiar todos sus colores en sólo dos, dependiendo de un umbral dado. Por ejemplo si tenemos una imagen en escala de grises y queremos que sea blanco y negro, lo que hacemos es escoger un valor de gris que será el umbral. Dentro de la imagen todos los valores menores que el umbral serán negro y los mayores blanco.


Como se puede observar el algoritmo es bastante sencillo, el problema aquí sería escoger el valor del umbral, de tal manera que la imagen no sea totalmente blanco o totalmente negra, sino que se distingan las formas.
La mejor opción sería que este umbral se escogiera según los valores de la imagen, de tal manera que el valor elegido no dependa del usuario sino de la propia imagen. Esto es lo que os voy a explicar.


El algoritmo para la selección del umbral lo que hace es iterativamente calcular un nuevo umbral, de tal manera que el bucle acabe cuando el nuevo umbral sea igual al calculado en la iteración anterior.


El valor inicial escogido como umbral será la media de todos los valores de la imagen.

A partir de aquí calculamos los nuevos valores del umbral, calculando la media de los valores de la imagen que están por encima y por debajo del umbral anterior.

Bueno creo que así es un poquito difícil entenderlo así que dejo el código que es más sencillo. En este caso se trabaja con imágenes en escala de grises:


//se calcula el valor inicial del umbral
double umbral0 = 0;

for (int i = 0; i < filas; i++){

    for (int j = 0; j < columnas; j++){
        umbral0 += imagen[i][j];
    }
}

umbral0 = umbral0 / (filas*columnas);

//vamos a calcular el valor real

double umbral1 = 0;
double umbral_der = 0;
double umbral_izq = 0;
int cont_izq = 0;
int cont_der = 0;

while( abs(umbral0 - umbral1) > 0){
    umbral1 = umbral0;
    umbral_der = 0;
    umbral_izq = 0;
    cont_izq = 0;
    cont_der = 0;

    for (int i = 0; i < filas; i ++){

        for (int j = 0; j < columnas; j++){ 

            if (imagen[i][j] < umbral1){
                umbral_izq += imagen[i][j];
                cont_izq ++;
            }

            else{
                umbral_fer += imagen[i][j];
                cont_der ++;
            }
        
    }

    umbral0 = (umbral_izq/cont_izq + umbral_der/cont_der)/2;
}


A continuación os muestro unos ejemplillos del resultado :D



viernes, 15 de octubre de 2010

Paseo por la nieve

El fin de semana habíamos planeado subir en el día del Pilar a la sierra, ya que era fiesta y no había ni trabajo ni clases ni nada de nada :D.

El plan en principio era subir al Veleta y al Mulhacen, y luego volver a casa por la noche. Pero la cosa se complicó porque este fin de semana nevó en la sierra, y hacer la paliza de los dos picos con la nieve no parecía muy sensato, así que lo acortamos a intentar subir al Veleta y jugar con la nieve :P.

El grupo de aventureros estaba formado por Carlos, mi hermano Juanga, René, Ali y yo :). Llegamos tempranito arriba, sobre las 10 y algo, y la verdad es que la principio nos cundió bastante, o eso me pareció a mi.


Visitamos el observatorio antiguo, para que lo viera mi hermano, y de allí a la Virgen de las Nieves. Por esa zona todavía no había nieve. Pero fue subir el primer repecho y encontrarnos manchas grandes de nieve.






Seguimos campo a través durante un rato, hasta que empezó a haber nieve abundante. Y nos separamos mi hermano que quería subir hasta arriba, fue solo acortando por los repechillos. El resto seguimos por la carretera, que la pendiente era mucho menor y se podía ir mucho más a gusto, sin ahogarnos ni nada (porque allí arriba hay menos concentración de oxígeno :P).





La verdad es que nos cundió porque llegamos hasta la zona donde sólo había nieve y no se veía ni la carretera ni nada.

Por el camino hicimos el tonto, y me refiero a jugar con la nieve, pararnos n veces para ver cosas. Jugar con los chuzos, ver las plantas heladas, hacer ángeles en la nieve y cosas así xD.








El caso es que para lo que nos paramos y to eso, llegamos bastante lejos, al menos Carlos y yo, y más que ninguno mi hermano que coronó el pico :P.

La cosa fue así, subimos con René y Ali hasta que ya no podíamos más, es decir, hasta que ya no pude casi levantar la pierna para andar, porque me lesioné en un entrenamiento de karate, y hasta que Ali dijo que tenía ya mucho frío. Como quedamos con mi hermano en que íbamos a encontrarnos arriba, fuimos Carlos y yo a buscarlo, pero yo me quedé en mitad ... Carlos empezó a subir lo que quedaba, mientras que mi hermano bajaba ... así que a grito pelao conseguimos que Carlos nos oyera y bajó. Lo malo del asunto que empezaron a atravesarnos nubes, y no se veía nada de nada .... De hecho, al principio pensaba que mi hermano era un poste xD.






Nos reunimos todos y empezamos a bajar. Esta vez campo a través y pasando de la carretera, que hacía muchísimo frío y todos queríamos llegar al coche. Paramos sobre las 3 a comer, pero para las 4 o así ya estábamos en el coche.

La verdad la aventura estubo chula, pero fue una pena no poder llegar arriba, aunque la verdad tampoco habríamos visto nada por culpa de las nubes ... Parecía que éramos la comunidad del anillo e íbamos por las montañas esas que salían en la película xD.

En el coche, se durmieron todos, menos yo que era la que conducía y a las 5 llegamos a Granada para poder descansar de la paliza ^^.

Esta excursión fue muy diferente a la del año pasado, que casualmente hicimos en las mismas fechas. La diferencia principal fue la nieve, que hizo que todo fuera diferente ...