Archivo para 2011

¿Quién usa tu software?

Si piensas que tus usuarios son idiotas, sólo los idiotas lo usarán [tu software].

Linus Torvalds (1969 —), ingeniero de software finlandés, conocido por iniciar y mantener el desarrollo del kernel Linux basándose en el sistema operativo libre Minix creado por Andrew S. Tanenbaum y en algunas herramientas, varias utilidades y los compiladores desarrollados por el proyecto GNU.

La llegada de la imprenta

La llegada de Internet es similar, a mayor escala, a la llegada de la imprenta. La civilización árabe era entonces la más avanzada y sofisticada, pero decidieron prohibir la imprenta… ya sabemos lo que ocurrió a continuación.

EvilPreacher, en un comentario sobre el rechazo a SOPA por los fundadores de Google, Twitter y Yahoo!.

Repo Men

Carátula de 'Repo Men'

Repo Men es una película de 2010 dirigida por Miguel Sapochnick y protagonizada por Jude Law y Forest Whitaker.

Está ambientada en un futuro cercano donde existe tecnología suficiente para crear órganos artificiales. El negocio está en implantarlos en quien pueda pagarlos. Y si no puedes pagar, ahí estarán nuestros protagonistas para “recuperar” dichos órganos sin importar las consecuencias.

Y ahora un pequeño spoiler: ¿qué les pasa a los protagonistas de las películas cuyas acciones no son éticas? Pues que toman de su propia medicina; y en este caso no va a ser diferente, de ahí que el planteamiento inicial de la película sea más que previsible.

¿Y cuál es la característica que la hace “un poco” diferente? El final. El final es sorprendente. No se puede decir brillante porque queda un poco abierto y con cierta incertidumbre, pero sorprendente al fin y al cabo.

Así que, teniendo esto en cuenta, en la escala MPSO le doy un 6,2. Aprobado pero sin excesos.

Opinión pública

La opinión pública no es la opinión pública; no es el resultado del pensamiento reflexivo de la gente; y eso pasa por dos razones:

Una, porque no estamos, en general, educados para pensar. La gente no razona, no piensa. Ahora mismo, frente a unas elecciones, la gente no hace un estudio racional. Se vota por razones viscerales, por las características del que habla, por la voz que tiene, por las mentiras que cuenta… y se acepta.

La otra es porque el poder existente, que hoy es el poder económico, domina los medios de información e inculca a la gente las ideas a través de los medios de información. La gente, hoy, juzga sobre todo por lo que ve en televisión o por lo que lee en los periódicos y vota según lo que ve y lo que le dicen en televisión. Y no piensa para nada en lo que le ocultan.

De modo que, en parte, no se está formado para ser verdaderos ciudadanos conscientes y, en parte porque no se nos educa para tener pensamiento propio sino que se nos condiciona a lo largo de la vida, resulta que el poder crea y manipula una opinión. Lo que llaman una opinión pública es una opinión mediática. Una opinión creada por la educación y por los medios, ambas cosas creadas por lo que interesa al poder.

Pero hay que seguir. Las batallas hay que darlas, se ganen o se pierdan; hay que darlas por el hecho mismo de darlas.

José Luis Sampedro (1917 – ), escritor, humanista y economista español que aboga por una economía «más humana, más solidaria, capaz de contribuir a desarrollar la dignidad de los pueblos», en una entrevista.

¿Quiénes son los que realmente crean empleo?

Los que crean puestos de trabajo son los clientes de las compañias. Los clientes crean la demanda de productos de las compañias que, a su vez, crean la necesidad de empleados para producir, vender y servir esos productos. Si los clientes van a la ruina, la demanda de los productos de la compañia se colapsará y los puestos de trabajo desaparecerán, independientemente de lo que el empresario haga.

Desde luego los empresarios son una parte importante en el proceso de creacion de las empresas. Y también lo son los inversores, quienes arriesgan su capital con la esperanza de obtener beneficios. Pero al final, el que una empresa nueva continúe creciendo y creando empleos permanentes está en función de la demanda de sus productos, no del empresario o de los inversores de capital. Por tanto, el sugerir que los empresarios ricos crean empleos es como sugerir que las ardillas crean la evolución.

Resumen del artículo Finally, A Rich American Destroys The Fiction That Rich People Create The Jobs (visto en Menéame).

11 características que Twitter debería tener

Mucha gente usa Twitter, esa red social tan “rara” que sólo permite 140 caracteres en cada mensaje. Y quizás sea por eso su gran éxito a pesar de que sus características técnicas no han cambiado desde… bueno, casi desde que se creó. Por eso creo que, desde el punto de vista de un usuario (no de un desarrollador), Twitter necesita, al menos, que se implementen estas 11 características:

  1. Edición de tuits: Sería bueno poder editar los tuits, al menos durante un tiempo después de la publicación, para corregir, por ejemplo, faltas de ortografía. No sería bueno poder editarlos siempre ya que con la sucesivas ediciones podrías hacer totalmente incoherente la conversión con el resto de usuarios.
  2. Bloqueo de usuarios sin necesidad de dejar de seguirlos: ¿Sabéis eso de “te sigo por compromiso”? Pues eso. Además, he visto algunos tuits donde ya se demanda esta característica.
  3. Omisión de tuits en el timeline que contengan un determinado hashtag: No estaría demás que se pudiera, en el TL principal, omitir de forma automática los tuits que contengan algún hashtag determinado, por eso de ser, en ocasiones, bastante cansinos.
  4. Poder recuperar todos tus tuits: En caso de tener un cliente de Twitter que no sea el de Web (y creo que con el de Web también), sólo podrás recuperar tus 3000 últimos tuits. Aunque el resto siguen en la base de datos, su API no soporta recuperar más de esta cantidad.
  5. Posibilidad de copia de seguridad de tus tuits: No hay ninguna forma de recuperar todos tus tuits si no es con aplicaciones externas. Y a esto hay que aplicarle el límite del punto anterior. Twitter debería implementar una forma de hacer copia de seguridad de tus tuits.
  6. Respuesta pública: Posibilidad de responder a un tuit de forma pública (que lo vean todos los usuarios que te siguen en lugar de los usuarios que te siguen y los que siguen al que respondes) para así no tener que poner un carácter antes del nombre de quien estás respondiendo y tener que desaprovecharlo.
  7. Implementación de un sistema para “leer más tarde”: Yo, al menos, uso los favoritos como marcadores para leer luego. No tengo ningún tuit favorito, simplemente en mi cliente del móvil los marco (los que tienen imágenes, alguna URL…) para leer cuando esté en un ordenador o tablet. Recordemos las limitaciones de las pantallas pequeñas y, sobre todo, las limitaciones de las conexiones 3G.
  8. Formato del texto: Esta quizás sería la más rompedora con la filosofía de Twitter, pero ayudaría mucho a expresar justamente lo que queremos decir —“emociones” incluidas— con, al menos, negrita, cursiva y tachado.
  9. Enlaces contextualizados: Los enlaces deberían ir como en HTML, enlazando un texto en lugar de que vaya la URL directamente. El contexto es muy importante en la Web y Twitter está haciendo un esfuerzo enorme —entiendo que inconscientemente— para eliminarlo. Lo mismo que los acortadores URL, donde se pierde toda la semántica de las URLs amigables. Pero ese es otro tema.
  10. Estadísticas: Sería buena idea que se proporcionaran estadísticas —principalmente informativas— de uso de Twitter, tanto de los usuarios (tuits por día, horarios de tuiteo, retuits…) como generales (tuis diarios, tuits diarios por países, usuarios activos en tiempo real…).
  11. Avance automático en el cliente Web: En el cliente Web, cuando sale el aviso de que hay nuevos tuits, al hacer clic, la página debería avanzar automáticamente hasta el último que has leído. Además, en la nueva interfaz, se debería marcar de alguna forma el último tuit que has leído (en la antigua se hacía).

Y una característica extra, la duodécima: más caracteres. Aquí hay muchísima controversia. Quizás, como he dicho antes, el éxito de Twitter sea precisamente el de tener un número de caracteres limitados. Pero, al menos a mi, muchas más veces de las que me gustaría se me quedan muy cortos para escribir lo que quiero decir. Y a veces no soy capaz de hacerle caso al famoso mensaje “Tu Tweet contiene mas de 140 caracteres. Tendrás que ser más ingenioso.”.

No estoy diciendo que se ponga un número ilimitado (o muy grande) de caracteres como ocurre con Google+ o Facebook, pero sí alguno más, por ejemplo —por aventurarme con un número— 200; o, mejor, 256 (28, por eso de ser friki :tongue: ). Por ejemplo, las notas de Menéame tienen 1000 caracteres y creo que la mayoría de ellas no pasan ni de los 500, pero cuando hay algo más largo que decir, se puede hacer sin ningún problema.

Pero bueno, esta es sólo mi opinión. Y vosotros ¿qué opináis de estas 11 características que Twitter debería tener? ¿Alguna más? ¿Alguna menos?

Fuga de cerebros

Carátula de 'Fuga de cerebros'

Fuga de cerebros es una película española de 2009 dirigida por Fernando González Molina y protagonizada por Mario Casas y Amaia Salamanca, entre otros.

La historia, así resumida, va de unos chicos que terminan el instituto y toca ir a la universidad. Pero ¿qué hacer cuándo la mujer de tu vida sí que va a la universidad y tú no? Pues, con ayuda de tus amigos, hacer todo lo posible, no sólo para ir también con ella, sino para conquistarla.

En general y, sobre todo, para ser española (tienen mala fama, por algo será), me reí mucho con ella, con todas las situaciones surrealistas que pasó el protagonista para conquistar a su chica y esa pequeña tensión continuada de “¿lo conseguirá?”.

Así que, después de esta breve sinopsis, en la escala MPSO le doy un 7,8, sobre todo por las risas aunque no le doy más nota por algunas situaciones realmente inverosímiles. Sí, ya se, es un película y hay que enrevesar la trama, pero a veces creo que se pasan…

En general, si os gusta el humor, sobre todo el patrio, os recomiendo que la veáis y paséis un buen rato de risas. Y veremos qué tal está la segunda parte.

Peticiones

Cuando un partido te pide que seas un patriota en vez de pedirte que seas un ciudadano, es mejor arrimar el culo a la pared.

JPatache, en un comentario en escolar.net.

¿Pagarías por usar tu distribución de Linux favorita?

Me ha llamado mucho la atención esta encuesta del blog Usemos Linux: “¿Pagarías por usar tu distribución favorita de Linux?”.

Mi respuesta corta: No.

Mi respuesta larga: No porque todas las distribuciones usan el mismo software. Todas. Todas usan X Window System (de momento Wayland está en desarrollo). Todas usan Gnome o KDE con alguna disidente que usa Xfce, LXDE o similares. Todas tienen las mismas librerías. Todas tienen la misma arquitectura multimedia. Y, como no, todas usan, en esencia, el mismo Kernel.

¿Por qué pagar por algo que haga una empresa cuando cualquier otra empresa o particular lo puede hacer sin ningún coste? Incluso, si eres un poco aficionado al tema, te puedes hacer tu propia distribución sin más coste que tu tiempo. Y, ojo, que no estamos hablando del servicio técnico.

Yo, personalmente, pagaría por tener algo diferente (y mejor, se entiende). Algo que haya hecho una empresa para mejorar lo que hay en lugar de ser una mera agrupación de distintos elementos de software, todo con el mismo Kernel, y ponerle un nombre rimbombante.

Si Windows no es de mi agrado a nivel técnico (y lo uso como usuario), Linux tampoco lo es (y también lo uso como usuario). Ya sabéis que yo soy más de BeOS/Haiku :P .

Cambiar el mundo

Los poetas hablan sobre cambiar el mundo, los científicos lo cambian.

@laquintacolumna

Debe ser aburrido

La raza humana necesita un desafío intelectual. Debe ser aburrido ser Dios y no tener nada que descubrir.

Stephen Hawking (1942 – ), físico, cosmólogo y divulgador científico del Reino Unido.

C#

Por necesidades del servicio voy a empezar a programar en C#, así que me he leído un par de manuales y he practicado un poco con ello. Y, la verdad, no me ha convencido demasiado. Así que, por petición popular (si por una persona se le puede llamar “popular”), estas son algunas de las conclusiones que he sacado, aunque si eres muy fan de C# quizás no deberías seguir leyendo :P :

Declaración de tipos

Extrañamemente se usan formas diferentes para declarar lo mismo. Porque declarar una variable o un nuevo tipo de dato debería ser consistente. Por ejemplo, para declarar una variable se usa <tipo de dato> <identificador>;. En cambio, para declarar un alias de un tipo de dato (no hay nuevos tipos) se usa using <identificador> = <tipo de dato>;. Y, ya para rematar, para declarar un delegate se usa delegate <valor devuelto> <identificador> (<parámetros>);.

¿No sería más sencillo y consistente tener una sintaxis común? Por ejemplo: <tipo de dato> <descripción> <identificador>;, con lo que la declaración quedaría:

// Variable:
int i;

// Tipo de dato:
typedef int MyInt;

// Usando 'using' (sin introducir ninguna palabra reservada adicional):
using int as MyInt;

// Delegate:
delegate void(int) MyDelegate;

Con esto la sintaxis siempre es consistente. Tenemos a la izquierda los tipos y a la derecha, siempre, el nombre tanto de la variable como del tipo nuevo como del delegate (que no deja de ser un tipo nuevo).

Nuevos tipos de datos

En C#, al igual que en C++, no se pueden declarar nuevos tipos de datos. Sí, en serio. Lo que estáis pensando ahora mismo es que con typedef sí se puede… pues no. En realidad es un alias del tipo básico. En C++, este código:

typedef int myint_t;
void overloaded_function(int value);
void overloaded_function(myint_t value);  // Error de compilación.

Daría error de compilación porque las dos funciones son iguales. myint_t no es un tipo de datos nuevo, sino un alias de int. En C# ocurre lo mismo, sólo que en lugar de declarar los nuevos tipos con typedef (que no tiene esa palabra reservada) se usa using:

using myint_t = int;

class Main {
  void overloaded_funcion(int value) {...}
  void overloaded_funcion(myint_t value) {...}  // Error de compilación.
}

También se puede hacer alguna triquiñuela, como hacer una clase MyInt que herede de System.Int32. Pero ya habría que implementar ciertas cosas para que funcionase.

Los métodos y su tipo de acceso

Es bastante enrevesado el uso de virtual, override y new para controlar el polimorfismo de las clases. Por ejemplo, en el código:

class A {
	public virtual void Who() { Console.WriteLine("A"); }
}

class B : A {
	public override void Who() { Console.WriteLine("B"); }
}

class C : B {
	public new virtual void Who() { Console.WriteLine("C"); }
}

class D : C {
	public override void Who() { Console.WriteLine("D"); }
}

C c = new D();
c.Who();	// Escribe "D"; lógico ¿no?

A a = new D();
a.Who();	// ¡Escribe "B"! ¿Dónde está la lógica de funciones virtuales aquí?

Es obligatorio que en todos los métodos que se podrán sobreescribir en clases derivadas se ponga virtual; que en todos los métodos que sobreescriben se ponga override; y que si un método oculta a otro se ponga new.

¿No sería más sencillo que todos los métodos fuesen virtuales por defecto (porque cuando haces clases, lo más probable es que las vayas a heredar)? ¿No sería más lógico que cuando declaras un método con el mismo nombre en la clase base, automáticamente se sobreescriba el de la base y, en caso de querer llamar al método de la base, uses super, base o similar?

Por cierto, decidme un caso real donde se use esta funcionalidad.

El problema de la clase base frágil

En este manual se menciona el problema de la clase base frágil, que habla de que en Java podría suceder esto, teniendo en principio estas clases:

class BaseClass {
	public void CleanUp() {
		System.out.println("BaseClass.CleanUp()");
	}
}

class DerivedClass extends BaseClass {
	public void Delete() {
		System.out.println("DerivedClass.Delete()");
	}
	public void CleanUp() {
		Delete();
	}
}

public class Test {
	public static void main(String[] args) {
		BaseClass k = new DerivedClass();
		k.CleanUp();
	}
}

La salida de este programa sería:

$ javac Test.java && java Test
DerivedClass.Delete();
$

Si luego implementamos el método Delete() en la clase base de esta forma:

class BaseClass {
	public void CleanUp() {
		System.out.println("BaseClass.CleanUp()");
	}
	public void Delete() {
		System.out.println("Delete all the world!");
	}
}

Según el manual, ¡podríamos borrar el mundo!

Esto sería un verdadero problema… si existiese. Pero es muy fácil comprobar que no se produce. La salida con la clase modificada es la misma que sin ella. Sólo usando super.Delete() se podría borrar el mundo.

Ámbito global o local

En C#, si una clase oculta un espacio de nombres, para acceder a dicho espacio introduce una nueva palabra que no está reservada, pero que hay que recordar: global. Por ejemplo:

class Main {

  public class System {}

  static void Main(string[] args) {
    System.Console.WriteLine("¡Hola mundo!");  // Error: la clase 'System' oculta
                                               // el espacio de nombres 'System'.
    global::System.Console.WriteLine("Esto sí funciona.");
  }
}

¿No sería más sencillo, en lugar de introducir otro identificador nuevo, usar sólo el operador ::, como hace C++ o, incluso, usar el operador .?

Comportamientos extraños de las variables

Resulta que si declaras una variable de tipo delegate, esta se comporta como una lista de delegates que se llaman todos seguidos:


class Test {
	void Notify1(string text) {
		System.Console.WriteLine("Hello " + text);
	}
	void Notfiy2(string text) {
		System.Console.WriteLine("Goodbye " + text);
	}
}

Test test = new Test();

delegate void Notifier(string text);

Notifier notifier;
notifier = new Notifier(test.Notify1);
notifier += new Notifier(test.Notify2);

notifier("Manolito");

// La salida será:
// Hello Manolito
// Goodbye Manolito

¿Nos aclaramos? ¿Notifier es una variable o es una lista de variables? Y si todos los delegates asignados devuelven algún valor, sólo se devuelve el último ejecutado. ¿Y el resto?

Recorriendo listas

C# añade el foreach, que no es más que lo que se conoce como syntactic sugar para el bucle for de toda la vida evitando que el programador use variables índice:


string[] stringArray = new string[] { /* Inicialización */ };

foreach(var s in stringArray) {
  System.Console.WriteLn(s);
}

Pero no estoy criticando ese syntactic sugar, todo lo contrario, eso me parece muy bien. Cuanto menos código se escriba y haga más cosas, mejor.

Lo que ya no me parece tan bien es que en ese bucle foreach sólo se tenga acceso a los valores de la lista a recorrer y no se tenga acceso al índice de dicha lista. Sí, simplemente a la famosa i que se omite para que el programador escriba menos código.

Y por culpa de esto, en caso de necesitarla, pues tienes que declararla fuera e incrementarla manualmente. Vamos, con en un bucle for.

Anidamiento

No se permiten métodos anidados, es decir, declaración e implementación de métodos dentro de otros métodos. Sí, venga, vale, se puede “solucionar” mediante el uso de delegates, pero eso no es permitir métodos anidados, eso es una chapuza.

Y además, ya para rematar, tampoco se permite declarar estructuras ni clases dentro de métodos. Como está orientado a objetos, pues toda declaración adicional tiene que ir dentro de la clase.

Actualización 2011-12-05: C y C++ tampoco permiten métodos anidados como me indican en un comentario. Esto lo puse porque yo los he usado para resolver algún problema, sólo que no recuerdo ni el lenguaje ni el proyecto en el que lo hice. ¿Pascal quizás?

Atributos

Los atributos del lenguaje también son otra cosa que está muy bien dentro de un lenguaje. Permiten extender la funcionalidad del compilador, por ejemplo, para hacer compilación condicional, controlar entre diferentes versiones o arquitecturas, marcar elementos como obsoletos… pero, me pregunto, ¿por qué la sintaxis no es coherente con el resto del lenguaje y hay que añadir triquiñuelas del estilo [Conditional("Debug")] al código?

Conclusión

Después de despotricar un poco toca una pequeña conclusión:

Si Microsoft tuvo la oportunidad de crear un nuevo lenguaje de programación desde cero, para ellos solos, sin que nadie se pueda meter, sin que nadie le diera lecciones, con la posibilidad de innovar, de mejorar lo que había hasta el momento ¿por qué lo ha hecho tan retorcido e incoherente? Porque sí, en serio, es retorcido. Hasta C++ —que mira que a Bjarne Stroustrup se le fue la olla cuando lo diseñó— es más consistente y coherente que C#. C# parece un batiburrilo de Java, C++ y alguna funcionalidad adicional como los delegates que más que ser un lenguaje nuevo es lo mismo de siempre con otro nombre. Y propietario, claro.

Y, bueno, de la compilación a código intermedio en lugar de a código máquina directamente ya no hablamos. Eso es una decisión que han tomado pero que tampoco es que importe demasiado. Recordemos que esta generación de código es una de las fases de compilación que se puede cambiar sin afectar a la sintaxis.

Concluyendo, a mi, personalmente, no me convence en absoluto. Pero claro, si quieres hacer un proyecto decente para sistemas Windows, no queda otra que hacerlo en C# o pelearte con los punteros en C++.

O usar Pascal ;) .

P.D.: Yo, en realidad, soy más del lenguaje de programación D.

Tron: Legacy

Carátula de 'Tron: Legacy'

Tron: Legacy es una película de ciencia ficción de 2010 dirigida por Joseph Kosinski y protagonizada por Jeff Bridges, Garrett Hedlund y Olivia Wilde, como continuación de la película Tron de 1982.

Si no has visto Tron, la primera, deberías hacerlo antes de ver esta para saber el porqué de las cosas, pero, la verdad, es que esta película se podría ver sin más que haber leído la sinopsis de la primera.

De hecho, Tron es bastante serie B, aunque es un clásico porque fue de las primeras películas en las que se usaron efectos digitales y también de las primeras en las que la temática era de ordenadores y programas (aunque fuesen tratados como si fueran personas).

Tron: Legacy es la continuación de esta película en cuanto a historia y a efectos especiales (obviamente son 28 años de diferencia tecnológica). Y tengo que decir que la historia entretiene, es una historia totalmente lógica como continuación de la película anterior y los efectos especiales son bastante buenos al crear un mundo digital nuevo y completo para la película. Sus dos horas de metraje no llegan a cansar porque la historia engancha, aunque quizás, la única pega que le pongo, es que el final es un poquito flojo para mi gusto. Aunque quizás lo hayan dejado listo para Tron 3.

Así que, después de todo eso, en la escala MPSO, le doy un 7, recomendando a todos los fans de la ciencia ficción en general y de la saga en particular que la vean.

La rebelión de las máquinas

Carátula de La rebelión de las máquinas

La rebelión de las máquinas (Maximum overdrive) es una película de 1986 escrita y dirigida por Stephen King donde se narran extraños comportamientos de máquinas al paso de un cometa cerca de la tierra.

Esta película hay que verla porque está entre esa lista no escrita de películas distópicas que hay que ver, pero yo la calificaría con tres palabras dos palabras y una letra: bodrio serie Z.

De hecho, os recomendaría encarecidamente que no perdierais una hora y media de vuestra vida, porque esta película no aporta nada a los cinéfilos y a los que nos gusta la ciencia ficción y películas distópicas.

Por eso, en la escala MPSO le doy un 3. Y creo que le doy demasiado. Quizás sea por el hecho de que sea distópica; al menos hay otra visión del mundo —y quizás también porque está Emilio Estévez, casi el único actor conocido—. Pero no se gana ninguna calificación en cuanto a méritos de historia —por muy Stephen King que sea— ni técnicos.

Lo dicho, no os perdéis nada si no la veis.

Wikipedia seguimos siendo todos

Logotipo de la Wikipedia

Aunque el año pasado no doné —el anterior sí—, este sí que he vuelto a donar a la Wikipedia, el mejor proyecto, con diferencia, de Internet.

Vuelvo a repetir lo mismo: la Wikipedia somos todos, seguimos siendo todos los que colaboramos y hacemos que esta enciclopedia on-line siga creciendo y sea, cada día, referencia de millones de personas. Recordemos que la Wikipedia en español es la tercera más visitada y, en cuanto a crecimiento, en enero de este año tenía 700 000 artículos y ahora tiene más de 845 000.

Y, como siempre digo, esto es un proyecto con ánimo de lucro y no hay publicidad; es apoyo. ¿Y tú, has donado ya?

La princesa Mononoke

Carátula de La princesa Mononoke

La princesa Mononoke es una película de animación de 1997 dirigida por Hayao Miyazaki, el mismo director que El viaje de Chihiro.

La historia es sencilla: ambientada en el Japón medieval, muestra la lucha entre el bien y el mal, entre el bosque y los que lo quieren destruir, entre los dioses de la naturaleza y los que quieren expoliarla. Y, todo ello, aderezado con la poderosa imaginación de Hayao Miyazaki, ya comentada en cuando vi “El Viaje de Chihiro”.

De todas formas, este película no es ni de lejos tan surrealista como “El Viaje de Chihiro”; es más “normal”, por decirlo de alguna forma; es más para niños, con una historia sencilla, de fácil comprensión, aunque no deja de tener su mensaje de fondo para hoy en día.

Tengo que decir que no me gustó demasiado, quizás por su sencillez, quizás porque espera otra cosa viendo el precedente, así que en la escala MPSO le doy un 5,9, salvándose principalmente por la animación que, eso sí, es de excelente calidad.

Ahora tocará bajar Mi vecino Totoro y creo que de este director, por eso de tener cultura cinematográfica, ya va a ser suficiente ;) .