miércoles, febrero 29, 2012

(Reseña de cómic) JLA: Another Nail

Hace unos meses hablé de la miniserie conocida como JLA: The Nail, una historia de Alan Davis situada en uno de los Elseworlds de DC Comics. Su éxito le mereció una secuela, JLA: Another Nail ("LJA: Otro clavo"), llevada a cabo por el mismo autor y publicada en 2004 (seis años después de la original).
Al comienzo de la historia se nos muestra cómo, durante la confrontación final de la anterior saga, fuera de la Tierra estaba llevándose a cabo una terrible guerra entre los Linternas Verdes Corps. y los dioses de Apokolips, que finalizó con la muerte de Darkseid. Tiempo más tarde, cuando la Batería Central de OA empieza a fallar, los Linternas Verdes intentan descubrir su fallo sospechando que Apokolips aún tenga que ver con ello, mientras en la Tierra dos importantes miembros de la Liga de la Justicia se adaptan a nuevos tipos de vida.
La calidad de esta historia es muy inferior a la anterior. No sólo es mucho más liosa e intenta concentrar demasiada información en muy poco tiempo, sino que hay tramas que están cogidas con alfileres e incluso alguna trama que sobra por completo (la trama de Batman no tiene nada que ver con todo el resto, aunque intenten darle una medio justificación al final). Además pierde toda la gracia de los Elseworlds que por lo general muestran situaciones curiosas en mundos donde algo ha sido distinto, pero en este caso, la historia podría haber sido muy parecida en el universo DC normal. La verdad es que me ha decepcionado, me esperaba mucho más.
Las ilustraciones también son un poco peores que en la primera parte. No han perdido tanta calidad como el guión, pero definitivamente se notan bastante más descuidadas, llegando a dar unas expresiones un tanto bizarras en algunos personajes de vez en cuando.
En general, una decepción. Tras una primera obra muy entretenida, curiosa y brillante se encuentra una historia vaga, liosa y en cierto modo previsible, alejándose por completo de la magia habitual de los Elseworlds. Una auténtica lástima.

martes, febrero 28, 2012

Tutorial de desarrollo web, Parte XXI: Pseudo-clases y pseudo-elementos (2). Identificadores y clases (3)

Previously, on The CubeBlog...
Parte XVII: La etiqueta iFrame
Parte XVIII: Metadatos. Comentarios
Parte XIX: Modelo de Caja CSS
Parte XX: Bordes exteriores. Pseudo-clases y pseudo-elementos (1) Identificadores y clases (2)

Bienvenidos a la vigésimo primera entrada dedicada al desarrollo web, ya empezando a cerrar las últimas cosas que quedan de HTML y CSS para poder, en máximo dos meses, empezar con JavaScript. Así que, ya saben, a ponerse las pilas. Y, antes de empezar con nuestro tutorial de hoy, la resolución del ejercicio de la semana pasada como ya es uso y costumbre. Disculparme ya que me he dado cuenta de que no todo lo que les pedí hacer es compatible en todos los navegadores. De hecho, algunas de las cosas son compatibles en Google Chrome y otras son compatibles en Firefox, pero no en ambas. Si quieren probrarlo, les recomiendo el navegador Opera.
La semana pasada habíamos aprendido a usar los "pseudo-elementos" y habíamos dejado pendiente para esta entrega aprender a usar las "pseudo-clases". Y, como lo prometido es deuda, aquí va. Como ya mencioné la semana pasada, no he encontrado ninguna definición "teórica" que me convenza sobre los pseudo-elementos y las pseudo-clases, así que intentaré explicarlo de una manera práctica.
La semana pasada veíamos que, cuando dábamos instrucciones CSS a un pseudo-elemento, estas instrucciones sólo se aplicaban a una parte del elemento (la que se hubiera especificado como pseudo-elemento). Las pseudo-clases, por contra, no son "partes" de nuestro elemento, de hecho, las instrucciones que le demos a nuestras pseudo-clases se aplicarán a todo el elemento en su totalidad. Sin embargo, las pseudo-clases afectarán a un "estado" del elemento. Esto será más fácil de entender si analizamos cada una de las siete pseudo-clases que existen:
  • Las cuatro primeras se aplican generalmente a los enlaces, aunque se puede aplicar a otra etiqueta (siempre y cuándo esta contenga un enlace). Son las pseudo-clases :link, :visited, :active y :hover, y, tal como habíamos hablado, cada una de las cuatro clases representa un distinto estado del enlace.
    • En primer lugar, la pseudo-clase :link es la manera de indicar al navegador que nos referimos a un enlace en el momento en el que su contenido aún no ha sido visitado por el usuario. Todos nos habremos dado cuenta de que normalmente, aquellos enlaces que hacemos y en los que nunca hemos pulsado tienen el color azul, sin embargo, cuando picamos en ellos, se vuelven púrpura (creo que es púrpura... lo siento, soy daltónico... es púrpura, ¿verdad?). Pues con la pseudo-clase :link podremos modificar ese estado inicial, con la siguiente estructura:

    • a:link
    • {
    • color: red;
    • }

    • Con este código hemos logrado que los enlaces, antes de ser pulsados, tengan color de fuente rojo. Sin embargo, al ser pulsados, pasarán a ser púrpura, una ventaja frente a los enlaces que podíamos hacer con CSS hasta la fecha, en la que, al definirle un color, daba igual lo que hiciéramos con el enlace, siempre iban a tener ese color. Anoto que no pongo ejemplos ya que mostrar cambios de estado en imágenes estáticas es un poco absurdo.
    • El segundo, :visited no será, por tanto, difícil de adivinar. La pseudo-clase :visited indicará el estilo que debe tomar un enlace que ya ha sido visitado (el color púrpura del que hablábamos antes). No tiene mucha ciencia.
    • El tercer caso, :active, me parece a mí hasta más interesante que los anteriores. Nos habremos dado cuenta al pulsar en un enlace que, en el momento en que lo estamos picando, cambia a otro color, ni azul ni púrpura (ahí ya paso de intentar adivinar cual es, ustedes mírenlo). Ese color (y otros atributos) se pueden cambiar mediante la pseudo-clase :active.
    • Finalmente, la cuarta pseudo-clase, la más abstracta ya que por defecto no tiene ningún valor, es la pseudo-clase :hover. Esta pseudo-clase se activa en el momento en el que pasamos con el puntero del ratón por encima del enlace pero no llegamos a pulsar. Lo habréis visto en botones de muchas páginas webs.
  • Algo curioso es que jugando con los bordes y el color de fondo de estas pseudo-clases, podemos convertir nuestro enlace en una especie de "botón". Pero de eso hablaremos en los ejercicios.
  • En segundo lugar, vamos a ver el pseudo-elemento :focus. Este elemento funcionará de la misma manera que los últimos, sólo es que en este caso para las etiquetas de tipo "input" (o cualquier tipo de etiqueta a través de la que el usuario pueda introducir texto, como un "textarea", o hacer una selección, como un "select"). El elemento entrará en este estado en el momento en el que el usuario haya hecho click encima suya y dicho elemento se encuentre "seleccionado" (o sea, que esté listo para que se escriba sobre él o se haga una selección con sólo mover las teclas direccionales). Desde el momento en el que el usuario haga click en cualquier otro lugar de la página (o pulse la tecla tabulador), el elemento volverá a su estado inicial (en lo que a estilo se refiere).
  • Las siguientes dos pseudo-clases, en mi opinión, deberían pertenecer a una categoría distinta, ni "pseudo-clase" ni "pseudo-elemento", ya que no se comportan como ninguno de los otros, pero ya que se las considera "pseudo-clases", no voy yo a pelearme con la W3C.
    • La primera de estas dos es la pseudo-clase :lang. Para ello también debemos saber que todos los elementos de HTML pueden tener el atributo "lang", con el cual se define el lenguaje del contenido de esa etiqueta. Por ejemplo:

    • <p lang="es">Esta etiqueta está en español</p>

    • De esta manera, usando la pseudo-clase lang, podemos dar un estilo particular sólo a las etiquetas que tengan un determinado idioma, de la siguiente manera:

    • p:lang(es)
    • {
    • color: red;
    • }

    • Con ese código dentro de la página que contuviera el párrafo antes escrito, dicho párrafo aparecería en color rojo.
    • Y la última pseudo-clase que tenemos es la pseudo-clase :first-child, también un tanto extraña, pero creo que fácil de entender. Para entender esta pseudo-clase tenemos que recordar la estructura jerárquica del HTML: todas las etiquetas se contienen unas a otras de una forma completamente jerarquizada, siendo la etiqueta "html" la que contiene a todas las demás. De esta manera, las etiquetas que contengan a otras etiquetas son llamadas "padres", mientras que las etiquetas contenidas en otra etiqueta se las llama "hijas". Y ahí es donde entra el consejo de la pseudo-clase :first-child ("primera-hija").
    • No habrá que hacer un genio para comprender que una etiqueta "primera-hija" funcionará de una manera parecida a como funcionaba el pseudo-elemento :first-line, con la diferencia de que, en este caso, afecta a toda la etiqueta en cuestión. Es un poco más complejo de explicar, pero lo veremos mejor con ejemplos. Construyamos una página con nuestra estructura básica de siempre e introduzcamos esto (sólo esto) en el "body":

    • <p>Aquí habrá un <a href="#">enlace</a>. Y aquí <a href="#">otro</a> Y además, algo de <i>cursiva</i>.</p>
    • <p>Aquí <a href="#">otro más</a>. Y <a href="#">éste</a> será el último.</p>
    • <h3>Pero aquí también voy a poner <a href="#">un enlace</a></h3>

    • Al no haber aún incluido ninguna pseudo-clase, nuestra página debería verse así:
    • Bien, ahora vamos a empezar a hacer magia. Con la etiqueta :first-child vamos a indicarle que el primer enlace de cada párrafo sea rojo. ¿Cómo? Pues así:

    • a:first-child
    • {
    • color: red;
    • }
    • Podemos entonces comprobar como todos los enlaces que son "primeros hijos" de alguna etiqueta (o sea, que son la primera etiqueta que contiene el párrafo o el encabezado), han cambiado su color, mientras que los otros, no. ¿Y si cambiáramos el a:first-child por i:first-child?

    • i:first-child
    • {
    • color: red;
    • }
    • Podemos comprobar de esta manera que volvemos a la pantalla original. ¿Por qué no ha funcionado esta vez? Porque la cursiva no es "primera hija" de ninguna etiqueta. De hecho, es la "tercera hija", ya que el párrafo en que está situada tiene dos enlaces antes. Como ya hemos señalado, la pseudo-clase :first-child SÓLO servirá para primeros hijos.
    • Sin embargo, aquí no se acaba lo que podemos hacer con esta pseudo-clase. Imaginaos que sólo queráis que sean los "primeros hijos" de "p" los que tengan de color de fuente el rojo, pero no los primeros hijos de h3. Para ello usaremos la siguiente sintaxis:

    • p > :first-child
    • {
    • color: red;
    • }
    • Podemos comprobar cómo, en esta ocasión, sólo el primer enlace de los párrafos se ha puesto en rojo, pero no el del encabezado. Esto hubiera servido para cualquier "primer hijo" que "p" hubiera tenido, da igual que fuera un enlace, una cursiva o lo que sea. Si hubiéramos querido especificar que queríamos que SÓLO afectara a aquellos enlaces que fueran primeros hijos de un párrafo, deberíamos haber usado el siguiente código:

    • p > a:first-child
    • {
    • color: red;
    • }

    • El resultado en pantalla sería el mismo del anterior en este caso, pero en caso de haber un párrafo cuyo primer hijo no hubiera sido un enlace, con este segundo código en ese párrafo nada habría pasado a ser rojo (ya que, aunque hubiera un enlace, no hubiera sido un "primer hijo").
Y, para terminar la entrega de esta semana, volvemos a hablar de los identificadores y clases y su relación con las jerarquías, las pseudo-clases y los pseudo-elementos. Realmente, lo único que voy a dar esta semana son unos cuantos ejemplos extras, como los que dí al final del artículo de la semana pasada, para dejar claro cómo funcionan en estos casos. Ahí van:

#primero td p:first-line - La primera línea de los párrafos que se encuentren dentro de una celda que se encuentre dentro de un elemento con identificador "primero".

table #tercera-fila .titulo p a:visited - Un enlace que ya ha sido visitado que esté dentro de un párrafo, dentro de un elemento de clase "titulo", a su vez dentro de un elemento con identificador "tercera-fila" que esté dentro de una tabla.

#rojo > p:first-child a i - El código en cursiva que se encuentre dentro de un enlace que se encuentre dentro de un párrafo que sea el primer hijo de un elemento con identificador "rojo".

Como veis, sobre todo quería destacar cómo se pueden combinar los pseudo-elementos y pseudo-clases con los métodos que habíamos visto la semana pasada. Animo al lector a probar sus propias combinaciones, a ver cuales funcionan y cuales no.

EJERCICIO


Para el ejercicio de esta semana, les voy a dejar un código CSS que no deberéis tocar, es el siguiente:



a
{
border: outset 5px;
width: 100px;
display: block;
text-align: center;
background-color: black;
border-radius: 15px;
text-decoration: none;
color: red;
}


Para resolver este ejercicio, introducid este código en una página en la que debéis crear un enlace y luego, mediante las pseudo-clases estudiadas, debéis conseguir que se comporte como un botón, haciendo lo siguiente:

  • Que cambie de color ligeramente cuando pasas el cursor por encima.
  • Que al pulsarlo no sólo cambie de color sino que también parezca que se introduce para dentro (pista: instrucción border).
No es muy difícil. Y con mis pistas creo que lo he puesto chupado.

La verdad, respecto a las demás pseudo-clases, no se me ocurre qué ejercicio ponerles. Simplemente, practiquen, como ya les he dicho antes, probando distintas combinaciones de rutas para declarar algún estilo.

lunes, febrero 27, 2012

Desentrañando... Aquaman

El primer Aquaman, existente en la más tarde conocida como Tierra-2 era el hijo de un famoso explorador marino que encontró lo que creía ser la ciudad perdida de Atlantis. Gracias a lo que allí encontraron, ambos aprendieron a respirar y vivir bajo el agua, ganando de esta manera unas habilidades sobrehumanas en respecto a fuerza y velocidad (en este último caso, velocidad subacuática) además de aprender a comunicarse con las criaturas marinas. Aquaman solía abandonar la ciudad submarina que habitaba para enfrentarse a diversos enemigos, muchos de ellos que amenazaban a su entorno, aunque también ayudaba a la gente de la superficie, ayudando a enfrentarse a los nazis durante la II Guerra Mundial acompañado del All-Star Squadron.
Sin embargo, la historia del Aquaman de Tierra-1 era bastante distinta. Allí, Aquaman respondía al nombre de Arthur Curry, habiendo nacido gracias a la unión del farero humano Tom Curry y la atlante Atlanna, gracias a lo cual, Arthur ganó las habilidades de ambas especies, pudiendo vivir tanto fuera como dentro del agua, aunque necesitaba entrar en contacto con agua al menos una vez cada hora. El peor enemigo de Aquaman era su medio hermano completamente humano Orm Curry, también conocido como el Amo del Océano, quien había perdido completamente la memoria y no recordaba a Arthur.
Aparte de Orm, Aquaman se enfrentó a otros enemigos como Black Manta o el Pescador, pero no estaba solo en esta lucha: el joven atlante Garth se convirtió en el compañero del héroe tomando la identidad de Aqualad. Además, tras la muerte del soberano de Atlantis sin dejar ningún herdero, los atlantes votaron a Arthur para convertirse en su nuevo soberano, puesto que Arthur compartió con su compañera Mera, con quien se casó y tuvo un hijo, Arthur Jr.
Como monarca de Atlantis, Arthur intentó dar a conocer su civilización submarina al hombre de la superficie, actuando como embajador de Atlantis al tiempo que como superhéroe, formando parte e incluso llegando a ser temporalmente líder de la Liga de la Justicia de América, aunque al final vería que tenía demasiadas responsabilidades, por lo que relegaría la soberanía del país submarino a su fiel consejero el Dr. Vulko.
Cuando la situación conocida como "Crisis en Tierras Infinitas" se resolvió, sólo quedó una Tierra única, por lo que todas las versiones de Aquaman se unieron en una, formando una nueva historia para la nueva versión. Este nuevo Aquaman era el hijo de la reina Atlanna de Poseidonis y un mago llamado Atlan, y fue nombrado Orin, pero fue abandonado al se rubio, lo que significaba que tenía la "Marca de Kordax", que se suponía traería desgracia al supersticioso pueblo atlante. Sin embargo, Orin fue encontrado por un farero de nombre Arthur Curry que puso al niño su propio nombre y lo crió, hasta el día en que misteriosamente el farero desapareció, por lo que el joven partió a buscarse la vida hasta que encontró Poseidonis, ahora convertido en una dictadura, y, siendo hecho prisionero, conoció a Vulko, aprendiendo todo sobre su ascendencia atlante.
Orin logró escapar de Poseidonis y empezó a actuar como un superhéroe durante un tiempo antes de volver a Poseidonis y ser proclamado rey por Vulko, quien había conseguido librar a Poseidonis de la tiranía. También en esta versión, Aquaman conoció a Mera y se casaron, gobernando Atlantis como rey y reina, y teniendo a su hijo, Arthur Curry, Jr. Sin embargo, el pequeño murió y Mera enloqueció, con lo que tuvo que ser encerrada en un manicomio de Poseidonis.
En una de sus aventuras, Orin perdió una mano devorada por pirañas, cuando perdió temporalmente la habilidad de comunicarse con las criaturas marinas. Desde entonces ha llevado en su lugar distintas prótesis, siendo la más destacable la que simula un arpón.
Durante la guerra de la JLA contra Imperiex, la ciudad de Poseidonis fue enviada al pasado y Orin fue encerrado en una piscina en forma de "agua viviente". No fue hasta unos años más tarde que la Liga de la Justicia les ayudaron a volver a la normalidad, pero todas estas situaciones no fueron bien vistas por los atlantes, que decidieron condenar a su monarca a muerte. Orin logró escapar y acabó habitando en "Sub Diego", una porción de San Diego que fue sumergida bajo el agua tras un gran terremoto y cuyos habitantes, sorprendentemente, habían aprendido a vivir bajo el agua, y uno de estos habitantes, Lorena, se convirtió en su nueva ayudante, Aquagirl, además de rescatar a Mera, quien había recuperado la cordura, de Poseidonis, poco antes de que esta, con todo el resto de Atlantis, fuera destruida por el Espectro.
De alguna manera misteriosa, Aquaman desapareció tras los eventos de la Crisis Infinita, pero un nuevo joven, también llamado Arthur Curry (exactamente Arthur Joseph Curry), es contactado por el "Habitante de las Profundidades", otorgándole los poderes de Aquaman y guiándole para ayudar a su gente. El "Habitante de las Profundidades", sin embargo, era el propio Aquaman mutado por los dioses del mar, aunque ni él mismo recordaba eso. Arthur Joseph Curry acabó por abandonar su identidad de Aquaman debido a la presión, mientras que Orin, en su identidad de "Habitante de las Profundidades" fue asesinado, aunque regresó gracias a los Linternas Blancos durante la Blackest  Night, incluso recuperando su mano perdida.
Tras los eventos de Flashpoint, en donde Atlantis era una de las potencias más poderosas del mundo y estaba en guerra con Themiscyra, la situación ha vuelto a la normalidad y Aquaman vuelve a vivir con Mera, lejos de Atlantis, ahora en este nuevo universo volviendo a ser medio humano y medio atlante como era el Aquaman de Tierra-1.

domingo, febrero 26, 2012

The CubesPaper, Número XIX (26/02/2012)

Viendo que la semana pasada parece que funcionó el nuevo sistema para tener una buena cantidad de noticias, esta semana intentaré repetir la experiencia. A ver cómo sale.

JM Ken Niimura, medalla de oro del manga
El autor de Soy una Matagigantes obtiene un prestigioso premio desde la tierra del Sol Naciente.
Más información: ActualidadComic

Detalles de la nueva película de X-Men
Según Simon Kinberg, la secuela de X-Men: First Class se centrará en Magneto.
Más información: ComicBook Resources

"Epic Kill", lo nuevo de Image
Raffaele Ienco nos trae la historia de una asesina adolescente.
Más información: ActualidadComic

Nuevo juego de la "Young Justice"
Los jóvenes superhéroes de Cartoon Networks tendrían juego propio en 2013: Young Justice: Legacy.
Más información: ComicsAlliance ComicBook Resources ComicVine

Glénat España cambia de nombre
La rama española de la editorial francesa pasa a llamarse "Editores de Tebeos S.L.".
Más información: ZonaNegativa ActualidadComic

Película de acción real de "Bleach"
La productora Warner Bros. ha comprado los derechos del popular manga mientras parece tener problemas con la adaptación de Akira.
Más información: ComicBook Resources ComicsAlliance

Nueva serie animada de Plastic Man
El héroe elástico protagonizará una serie de cortos humorísticos para el bloque DC Nation de Cartoon Network.
Más información: ComicsAlliance

Cómic promocional de la serie "Ultimate Spider-Man"
La nueva serie de televisión que verá la luz en abril vendrá acompañada de un cómic del mismo nombre.
Más información: ComicBook Resources Newsarama

Llega Apache 2.4
La nueva versión estable del servidor más popular llega por fin tras 6 años.
Más información: ALT1040

Rino en el juego de "The Amazing Spider-Man"
Se confirma que será uno de los enemigos del juego adaptación de la película.
Más información: Newsarama

Confirmado actor para interpretar al Gobernador en The Walking Dead
Parece que en la tercera temporada se adaptará la trama de Woodbury y David Morrisey interpretará al Gobernador.
Más información: ActualidadComic

Se confirman secuelas de los juegos Pokémon Blanco y Negro
Como novedad en la saga, en vez de una tercera versión de los mismos juegos, Game Freak lanzará los juegos Pokémon Blanco y Negro 2.
Más información: Pokémon-Project

sábado, febrero 25, 2012

Trailer de "Abraham Lincoln: Vampire Hunter"

Cuando uno pasea por internet, a veces encuentra determinadas cosas que preferiría no haber encontrado. No es exactamente el caso, ya que este descubrimiento fue algo que realmente me emocionó... aunque creo que no de la manera en que sus creadores hubieran querido...
Para poneros en situación, por lo visto, el escritor Seth Grahame-Smith afirma que ha recibido unos "diarios secretos" del decimosexto presidente de los Estados Unidos, Abraham Lincoln, en los que se cuenta cómo el popular presidente tuvo enfrentamientos con vampiros antes y durante su presidencia. Y, para colmo, el director Timur Bekmambetov, con Tim Burton de productor, llevará este junio esta historia a la gran pantalla, pudiendo ver ya su primer trailer aquí:
Pues... ¿Qué quieren que les diga? ¡Estoy DESEANDO ver esto! Tiene tan poco sentido que sólo puede ser genial. O sea... ¿Abraham Lincoln luchando con vampiros? Sobran las palabras...

viernes, febrero 24, 2012

(Reseña de película) Batman: Under the Red Hood

La octava de las DC Universe Animated Original Movies fue publicada en junio de 2010 y tiene como protagonista más a Batman, adaptando la trama Under The Hood ("Bajo la Capucha") de la serie del personaje (incluso, de hecho, sólo añadiendo la palabra "Red" al título, probablemente sólo para dejar clara cual iba a ser la trama de la película).
La película comienza mostrándonos el momento en que, cinco años atrás, el segundo Robin, Jason Todd, perdió la vida a manos del Joker. El tiempo ha pasado y un misterioso antihéroe que ha tomado la identidad de Capucha Roja (como tantos antes que él, entre ellos, el Joker) pone contra las cuerdas a Máscara Negra mientras Batman y Nightwing intentan atraparlo, topándose con una terrible verdad bajo la capucha del vigilante.
No he leído la historia original, pero el hecho de que el guionista haya sido el mismo en ambas versiones, además de por lo que sé de esta trama, la historia tiene la pinta de ser bastante fiel. Dejando eso de lado, la historia está muy bien llevada y es entretenida, con unas escenas de acción dignas de un largometraje de Hollywood. Además, da los suficientes datos para que, con saber poco del personaje, se pueda entender bien la historia.
Los dibujos son bastante mejores que todos los que he visto hasta ahora de esta productora, e incluso los diseños de los personajes están mucho más trabajados, aunque, como nota personal, no me gusta que hayan modificado tanto al Joker, evidentemente para parecerse más al de la versión cinematográfica de Christopher Nolan. La animación, por otro lado, no es mala, aunque tampoco destaca, tal vez menos que en películas anteriores, aunque hay que reconocer que los movimientos de los personajes son muy fluídos, pero no es nada nuevo en esta productora.
Concluyendo, como la mayoría de las películas de esta productora, esta también recibe una nota bastante buena, además de explorar uno de los traumas del hombre-murciélago menos populares para los no aficionados a los cómics, lo cual lo hace aún más interesante..

jueves, febrero 23, 2012

(Reseña de cómic) Gigantic

Rick Remender es un escritor y dibujante de cómics conocido sobre todo por la serie Strange Girl que creó para la editorial Image Comics, aunque no es el único trabajo por el que deba ser recordado, ya que, además de otros trabajos propios como el mencionado, también ha participado en Marvel llevando personajes tan populares como el Castigador o Lobezno, o incluso siendo parte del equipo que creó películas de animación tan famosas como El Gigante de Hierro o Anatasia. Una de sus obras, formada por cinco números publicados entre 2008 y 2010, es Gigantic, publicada bajo el sello Dark Horse Comics y con un estilo de lo más peculiar.
En Gigantic se nos cuenta cómo la Tierra y la humanidad fueron creadas sólo como una especie de reality show para complacer a los espectadores de una cadena de televisión intergaláctica, y hoy, cinco mil temporadas más tarde, un enorme robot que responde al nombre de "Gigantic" ha llegado a la Tierra con la intención de salvarla de su season finale...
Como podéis ver sólo por esta breve sinopsis, la historia es completamente absurda, pero de una forma increiblemente divertida. Los conceptos usados por el autor sacarán sonrisas a más de uno, y están acompañados por una serie de escenas de acción frenéticas y descerebradas como pocas. No profundizamos en la mayoría de los personajes, no nos preocupamos de las consecuencias de determinadas acciones, para disfrutar de Gigantic hay que desconectar el cerebro y dejar que su adrenalina nos lleve de un lado a otro sin plantearnos mucho nada. Y se hace muy divertido.
Además, el dibujante Eric Nguyen ayuda a mantener este ritmo frenético con sus dibujos, detallados y dinámicos al mismo tiempo, con unos diseños de personajes espectaculares (aunque en algún momento un tanto confuso) que recuerdan a mangas de mechas clásicos como el popular Mazinger-Z.
Sé que probablemente Gigantic no pase a la historia como uno de los grandes cómics de la historia, pero sí que me parece un cómic muy divertido con un concepto curioso y que se hace muy ameno de leer, y que recomiendo a todo el que tenga ganas de pasar un buen rato sin complicarse demasiado en tramas demasiado complejas.

miércoles, febrero 22, 2012

(Reseña de juego) Jurassic Park: The Game


Hace unos meses que hablé de cómo Telltale Games, desarrolladora famosa por juegos como Tales of Monkey Island, Back To The Future: The Game o varios juegos basados en la serie CSI, había anunciado el lanzamiento de un juego basado en la popular franquicia Jurassic Park. El juego, salido el noviembre pasado y formado por cuatro episodios, es una suerte de película interactiva con toques de aventura gráfica.

El juego nos sitúa en la Isla Nublar durante el transcurso de la primera película. Tras la muerte de Dennis Nedry, el informático que intentaba vender los secretos de InGen a su empresa rival, Biosyn, el plan B, consistente en una mercenaria costarriquense llamada Nima, entra en juego, sin que la chica aún sepa nada de lo que InGen ha construido en la isla. Mientras tanto, Gerry Harding, el veterinario del parque, se lleva a su hija, Jess, de vuelta a la civilización tras haberle enseñado de qué iba su trabajo, cuando se da cuenta de que la electricidad del parque se ha cortado. Sin saber muy bien cómo, los tres personajes se unen y comienzan una frenética carrera por escapar del parque con vida aún después de que John Hammond y sus invitados estrellas hayan sido evacuados.
Al igual que ocurría con Back To The Future: The Game, el juego tiene una trama muy buena, de hecho en mi opinión es lo mejor que se ha hecho de la saga si no contamos las dos novelas y sus respectivas películas (e incluso podría decir que el juego es mejor que la segunda película...). Todos los personajes tienen unas personalidades muy bien definidas y ninguno nos deja indiferentes, además de tratar con las situaciones de tensión de una manera que nunca antes había visto en esta saga. Las escenas de acción son todas muy buenas y hay momentos que te hacen meterte completamente en la acción, sintiendo miedo, rabia o dolor depende de lo que vaya ocurriendo en el momento (cito en particular la última aparición de los raptores, durante el tercer episodio... esa escena me marcó).
El problema es que, tal como estaba mencionando hace un momento, me pareció como estar viendo una película. El sistema de juego es tan vago que realmente no tienes que hacer gran cosa, más que ir pulsando las teclas que aparecen en pantalla en determinados momentos para ayudar al personaje a moverse con la velocidad o la habilidad necesaria. Y encima no hay ningún criterio a la hora de decidir la importancia de un movimiento: hay movimientos que si los fallas, no ocurre nada; otros que, si fallas varios seguidos, pierdes; y otros que, con sólo fallar ese movimiento, pierdes. Pero no hay ningún modo de saber con cuál de los tres tipos de movimiento te encuentras, sólo ocurre, y punto.
Mentiría si dijera que el juego es así de principio a fin. Hay pequeños tramos en que el juego toma el aspecto de una aventura gráfica, tomando nosotros las riendas de un personaje (uno cualquiera, no hay ningún personaje al que manejemos siempre y raro es al que no manejemos en ninguna ocasión) e investigando en una sala. Pero lo cierto es que la mayoría de los "puzzles" consisten simplemente en interactuar con todo lo que haya en el escenario, sin casi tener que pensar. De hecho, habrán unos tres o cuatro puzzles reales (ahora sólo recuerdo tres: el de atraer al T-Rex del Centro de Visitantes, el de montar la montaña rusa y el de abrir el ascensor del acuario) a lo largo de todo el juego. Y ninguno con una mínima dificultad.
Algo gracioso sobre este asunto de no tener ningún personaje fijo es el hecho de que, también como una aventura gráfica, en algunos momentos podemos elegir qué preguntar a algún personaje para obtener información. Sin embargo, en un momento del juego, se hace tan absurdo que, mientras dos personajes discuten, básicamente eres el encargado de elegir los diálogos de ambos personajes, preguntándome yo qué sentido tiene esto, sobre todo considerando que esto no tiene ninguna repercusión de cómo avanza la trama. De hecho, en un juego así uno podría esperarse que hubiera múltiples posibilidades de historia, pero, otra vez recordando mi crítica de Back To The Future: The Game, el hecho de que el juego se divida en episodios no permite que haya ningún cambio entre distintas partidas que se puedan jugar... ¡Esta vez ni siquiera existe el inventario! De este modo, sólo hay un momento en el último tramo del último episodio en el que puedes hacer una elección real para poder alternar entre dos posibles finales, aunque el momento de tomar la decisión es tan frenético que muchos ni se percatarán, sobre todo si, por casualidad, escogen el final "bueno", porque tampoco se indica en ningún momento sobre la posibilidad de múltiples finales. Yo, simplemente, viendo que cogí el final "malo", sospeché que ese momento debía ser crítico, y luego hice una búsqueda por internet para descubrir si había alguna otra posibilidad, pero, tal como me había parecido a mí, no la había.
Visualmente, el juego está bastante bien. Los dinosaurios están muy bien logrados, los humanos bastante menos, pero no es una imagen desagradable. Pero, y por tercera vez diciendo algo que dije también con Back To The Future: The Game, está muy mal programado. Los gráficos no son tienen tanta calidad como para, bajando la calidad al mínimo, sobrecalentar mi gráfica en poco más de una hora, que aguanta sin problemas horas de juego en Skyrim en calidad máxima.
Resumiendo, en la misma línea que el anterior juego que he probado de esta desarrolladora. Una historia muy buena pero acompañada de un sistema de juego mediocre y una mala optimización gráfica, lo cual hace que el juego sólo sea recomendable para aquellos a los que le guste esta saga. Eso sí, a los que le guste la saga, les encantará el juego, porque, a pesar de todos los fallos que he dicho, tardé sólo tres días en pasármelo (y porque tenía que dejar descansar la gráfica cada rato).

martes, febrero 21, 2012

Tutorial de desarrollo web, Parte XX: Bordes exteriores. Pseudo-clases y pseudo-elementos (1) Identificadores y clases (2)

Previously, on The CubeBlog...
Parte XVII: La etiqueta iFrame
Parte XVIII: Metadatos. Comentarios
Parte XIX: Modelo de Caja CSS

¡Ya vamos por la vigésima entrega del tutorial de desarrollo web! ¿Quién lo hubiera dicho? Bueno, seguimos otra semana centrada en el CSS, empezando, por supuesto, con las resoluciones de los ejercicios de la semana pasada. Como ya dije la semana pasada, existen varias posibles soluciones y, si respetan los estándares y tienen el mismo aspecto, están bien, pero esa es mi versión (de hecho, con la que hice las páginas a las que hice las capturas la semana pasada).
Antes de empezar con un nuevo tema, vamos a mencionar una última parte del modelo de caja de la semana pasada (que, lo siento, se me olvidó mencionar). Aparte de las distintas capas que forman el modelo de caja (como hablamos la semana pasada: contenido, relleno, borde y margen), existe el "borde exterior" (outline), una etiqueta que funciona exactamente igual que la etiqueta border (teniendo sus respectivos outline-width, outline-style y outline-color) pero que, como su nombre indica, se situará en el exterior del borde, o sea, en la zona del margen.
Sin embargo, y a diferencia de las partes que forman el modelo de caja, el "borde exterior" no ocupa ningún espacio, sino que es simplemente decorativo. Con esto quiero decir que, una vez hayáis definido toda la caja de un elemento como vimos la semana pasada, añadirle un outline no estropeará lo que hayáis hecho desplazándolo de alguna manera, sólo incluirá una decoración más. Tomemos como ejemplo como dejamos el archivo "box-model.html" la semana pasada, ¿lo recordáis?


Bueno, partiendo de este punto, ahora vamos a añadirle la siguiente instrucción:

outline: 3px solid green;



Podemos apreciar que, a pesar de haberle añadido el outline, la dimensión de nuestras "cajas" ha quedado intacta, manteniendo el mismo margen con la otra "caja". Simplemente ha sido algo decorativo.
Bien, ahora que hemos visto el outline, algo bastante simple, creo yo, vamos a algo un poco más complejo. Las "pseudo-clases" y los "pseudo-elementos" CSS.
Hasta ahora, para crear nuestras instrucciones CSS hemos ido utilizando instrucciones genéricas para un elemento HTML en particular, instrucciones un poco más específicas para aquellos elementos a los que le hayamos asignado una clase, e instrucciones aún más específicas para aquellas a las que le hayamos asignado una id, funcionando más o menos de esta manera:

p
{
color: blue;
}


p.centrado
{
text-align: center;
}


p#titulo
{
font-size: 30px;
}

De esta manera, le decíamos que todos los elementos "p" dentro de nuestro documento debían tener la fuente de color azul. Además, aquellos "p" a los que le asignáramos la clase "centrado" tendrían el texto alineado al centro. Finalmente, el "p" de cada documento al que le asignáramos la id "titulo" (debería sólo haber uno como máximo por documento) tendrá como tamaño de fuente 30 píxeles. ¿Vamos a cambiar eso? No, pero vamos a añadir unas cuantas cosas útiles para hacer que nuestra página sea más vistosa.
En primer lugar, decir que, después de haber buscado y rebuscado una definición correcta para estos dos conceptos, sobre todo uno que deje claro cual es la diferencia, me he encontrado con demasiada teoría que al final no sólo no dejaba nada claro, sino que luego en la práctica uno se da cuenta de que no tienen sentido. De esta manera, he decidido hacer unas definiciones "prácticas" a partir de mis conocimientos, y dejaré a los teóricos que teoricen.
Aunque en muchos cursos veréis que tratan primero las pseudo-clases que los pseudo-elementos, yo lo voy a hacer al revés. ¿Por qué? Porque los pseudo-elementos me parecen más simples y ayudan a prepararse para las pseudo-clases.
Cuando en CSS damos instrucciones para un "pseudo-elemento", estas reglas se aplicarán, como su nombre indica, sólo a una parte del elemento en cuestión, no afectando al elemento completo. De este modo, hay cuatro tipo de pseudo-elementos, y a medida que los vayamos viendo, iremos aprendiendo su utilización:

  • Nuestro primer pseudo-elemento será el pseudo-elemento first-line. Como su nombre indica, este pseudo-elemento representa la primera línea de un elemento, por ejemplo, un elemento "p". Imaginemos que queremos que la primera línea de los párrafos de nuestro documento sean azules y el resto, negros. Podríamos incluir el siguiente código:

  • p:first-line
  • {
  • color: blue;
  • }

  • Considerando que, por defecto, nuestro documento tiene la fuente del color negro, con esta instrucción habríamos logrado nuestro objetivo. Cogiendo como ejemplo nuestros primeros ejercicios, en concreto, el del Quijote, y modificándolo un poco, nuestro resultado debería ser:
  • Para dejar claro lo que hemos hecho en el código, podemos verlo por partes:
    • En primer lugar, hemos indicado de qué etiqueta queríamos tomar el "pseudo-elemento", en este caso, de la etiqueta "p".
    • A continuación, y usando los dos puntos (:) para indicar "pseudo-elemento", hemos introducido el nombre del "pseudo-elemento", en este caso, el ya mencionado first-line. De este modo, todas las instrucciones que introduzcamos se aplicarán sola y únicamente a la primera línea de cada "p" que tengamos en nuestro documento.
    • Finalmente, hemos introducido las instrucciones como siempre solemos hacerlo.
  • El lector puede comprobar que si agranda o encoge la pantalla, moviendo el salto de línea de sus párrafos, el color de la fuente se irá modificando del texto para siempre adecuarse a la primera línea del texto.
  • Nuestro segundo pseudo-elemento es de unas características muy similares al anterior, en este caso first-letter. Funciona exactamente igual pero, en vez de con la primera línea, con la primera letra. Simple.
  • En tercer lugar, vamos a enseñar el pseudo-elemento before. Este pseudo-elemento sólo servirá para introducir algo justo al comienzo de un elemento, como una imagen, o un texto. Es bastante extraño, pero con ejemplos lo veremos enseguida:

  • p:before
  • {
  • content:url('http://img84.exs.cx/img84/8653/emealcubo4uh.jpg');
  • }

  • Como podemos ver, le hemos indicado que, "antes" de cada párrafo, introduzca una imagen. De este modo, si este código lo introduzco en la página de antes, lo que veríamos sería:
  • Vemos que ahora, antes de comenzar cada línea, debido a la instrucción que le hemos dado al "pseudo-elemento" before, siempre aparece la imagen que he introducido. Sobre la instrucción content que hemos usado aquí hablaremos en otra ocasión, ya que tiene bastante de lo que hablar. Aparte de eso, podemos introducir otras instrucciones CSS. Por ejemplo, vamos a modificar este pseudo-elemento y ahora vamos a escribirlo así:

  • p:before
  • {
  • content:"Párrafo: ";
  • color: red;
  • font-size: 15px;
  • }

  • El resultado sería el siguiente:
  • Como anotación, hacer ver el hecho de que tras escribir "Párrafo:" introduje un espacio antes de cerrar las comillas dobles. Para los familiarizados con la programación es una práctica común pero, ya que esto lo estoy escribiendo para gente completamente nueva en este mundillo, está bien mencionarlo. El hecho es que, si no introducimos ese espacio, la palabra "Párrafo:" quedaría pegada con la primera palabra del párrafo (en nuestro caso no porque en su día introdujimos una serie de espacios en modo de "indentado" al comienzo del párrafo, pero no será lo habitual y, como dije en su día, no es lo que se debe hacer, ya que con CSS se puede indentar directamente). De este modo, introduciendo un espacio al final del contenido del content evitamos que el texto se pegue.
  • Finalmente, el último de los cuatro "pseudo-elementos" no podía ser otro que el pseudo-elemento after, que funciona exactamente igual que el before sólo que, como su nombre indica, al final de la etiqueta.
Para terminar con la entrega de esta semana, vamos a hablar un poco de nuevo de los identificadores y clases, ya que en la novena entrega hablamos de ellos pero dejamos algunos puntos sueltos, y es la hora de hablar sobre ellos (al menos todo aquello que tenga que ver con HTML y CSS). Ya repasamos anteriormente cómo en CSS podemos hacer referencias a elementos, clases e identificadores HTML usando los símbolos "." y "#" (o no usando ninguno). También  hablamos en su día de cómo el HTML es un lenguaje jerarquizado. Bien, usando esas dos ideas, podemos hacer cosas como la siguiente:

#id1 .class1 p
{
color: blue;
}

¿Qué locura acabo de hacer ahí? Bueno, creemos un documento HTML básico, apliquémosle ese estilo y en su "body" introduzcámosle esto:

<div id="id1">
<div class="class1">
<p>Esto está dentro de "class1" que está dentro de "id1"</p>
</div>
<p>Esto está dentro de "id1" pero fuera de "class1"</p>
</div>
<p>Esto está fuera tanto de "class1" como de "id1"</p>

Su resultado sería:
Analicemos la primera línea de CSS:
  • En primer lugar, le hemos dado la instrucción para los elementos que tengan el identificador "id1". Pero ahí no se queda la cosa.
  • En segundo lugar, hemos dicho que es para los elementos que tengan la clase "class1". Y ahí no se acaba.
  • Finalmente le hemos dicho que es para los elementos "p".
¿Lioso? Yo creo que es bastante simple. Con CSS podemos aprovechar la jerarquía de HTML para dar instrucciones más concretas. En este caso, las instrucciones ahí dadas sólo se aplicarán a aquellos párrafos que se encuentren dentro de un elemento de clase "class1", los cuales a su vez se encuentren dentro del (único) elemento "id1". Realmente podemos recombinar ese código como queramos y podemos darle tantas vueltas como nos parezca, sólo necesitamos que se respete la jerarquía HTML. Ejemplos:

p a - Se aplica a todos los enlaces dentro de un párrafo.

table .azul - Se aplica a aquellos elementos dentro de una tabla que tengan la clase "azul".

.rojo #nombre - Se aplica a aquel elemento con identificador "nombre" que se encuentre en algún elemento de clase "rojo". Si se encuentra fuera, no se le aplica.

table tr.tercerafila th p#nombrepropio a - Un enlace que se encontraría dentro de un párrafo identificado como "nombrepropio" dentro de un th situado en una fila de clase "tercera fila" dentro de una tabla.

Como podéis ver, hay infinitas combinaciones, todo depende de cual compleja sea vuestra estructura y la necesidad que tengáis de hacerlo tan complejo. Por ejemplo, en el último, no habría hecho falta decir que se trataba de un elemento "table" ya que un "tr" nunca estará fuera de un "table". Aunque también podéis incluirlo para que os quede más clara la estructura, eso ya está a gusto del desarrollador.
Finalmente, y para unir ambos temas, vamos a explicar cómo podemos añadir pseudo-elementos con identificadores y clases. Realmente no podría ser más simple:

p#primerparrafo:first-line

p.parrafosimpares:first-line

Y con esas líneas podéis conseguir que el párrafo con identificador "primerparrafo" (en el primer caso) o los párrafos con clase "parrafosimpares" (en el segundo caso) tengan la primera línea modificada de la manera que queráis. Y, por supuesto, eso se aplica a cualquiera de los otros pseudo-elementos.
Creo que no ha sido muy difícil, ¿no?

EJERCICIO

Esta semana, como ya se imaginarán, tratará de pseudoclases. Para ello, cogeremos el siguiente texto, separándolo en tres párrafos. En el primero, la primera línea debe de tener el texto subrayado. Todas las primeras letras de cada párrafo deben de ser mucho más grandes que el resto. Aparte de eso, al final de cada párrafo debe de haber alguna imagen que queramos incluirle, como un punto o algo así.
La Revolución industrial fue un periodo histórico comprendido entre la segunda mitad del siglo XVIII y principios del XIX, en el que Gran Bretaña en primer lugar, y el resto de Europa continental después, sufren el mayor conjunto de transformaciones socioeconómicas, tecnológicas y culturales de la historia de la humanidad, desde el neolítico.
La economía basada en el trabajo manual fue reemplazada por otra dominada por la industria y la manufactura. La Revolución comenzó con la mecanización de las industrias textiles y el desarrollo de los procesos del hierro. La expansión del comercio fue favorecida por la mejora de las rutas de transportes y posteriormente por el nacimiento del ferrocarril. Las innovaciones tecnológicas más importantes fueron la máquina de vapor y la denominada Spinning Jenny, una potente máquina relacionada con la industria textil. Estas nuevas máquinas favorecieron enormes incrementos en la capacidad de producción. La producción y desarrollo de nuevos modelos de maquinaria en las dos primeras décadas del siglo XIX facilitó la manufactura en otras industrias e incrementó también su producción.
Así es que en la Revolución industrial se aumenta la cantidad de productos y se disminuye el tiempo en el que estos se realizan, dando paso a la producción en serie, ya que se simplifican tareas complejas en varias operaciones simples que pueda realizar cualquier obrero sin necesidad de que sea mano de obra cualificada, y de este modo bajar costos en producción y elevar la cantidad de unidades producidas bajo el mismo costo fijo. 
(Texto extraído de Wikipedia)
 Y, de momento, eso es todo. La semana que viene continuaremos, viendo las pseudo-clases

lunes, febrero 20, 2012

Desentrañando... Cuatro Fantásticos

Todo comenzó con la idea del ingeniero aeronáutico Reed Richards y su idea de crear un cohete experimental que permitiría llegar hasta otros sistemas estelares. Desgraciadamente, sus benefactores estaban a punto de retirarle los fondos debido a la falta de resultados, por lo que Reed decidió hacer una prueba no autorizada, consiguiendo a su propia tripulación, formada por su viejo amigo el piloto Benjamin Green, su novia Susan Storm y el hermano pequeño de la misma, Johnny. Aún con las protestas de Ben, el experimento se realizó, aunque una avalancha de rayos cósmicos les obligó a hacer un aterrizaje de emergencia, comprobando los cuatro que habían recibido sorprendentes poderes.
De esta manera, Reed comprobaría como su cuerpo era completamente flexible, Sue podía volverse invisible, Johnny podía envolver su cuerpo en llamas y Ben se convirtió en una poderosa criatura rocosa. Los cuatro acordaron entonces usar sus poderes para enfrentarse a aquellos que amenazaran a la humanidad, tomando los sobrenombres de Mister Fantástico, Chica Invisible, Antorcha Humana y la Cosa, respectivamente. Y, juntos, formaban los Cuatro Fantásticos.
Aunque para Reed, Sue y Johnny podían hacer una vida regularmente normal, ya que, mientras no activaran sus poderes, parecían personas completamente normales, no todo iba tan bien para Ben, cuyo aspecto rocoso no podía revertirse, y que se veía condenado a vivir eternamente como un monstruo. Afortunadamente para el piloto, Reed, que se culpa a sí mismo por el estado de su amigo, ha intentado por todos los medios intentar devolverlo a su forma normal, e incluso alguna vez Ben ha podido volver a ver de nuevo su rostro humano en el espejo, aunque normalmente ha sido por breves periodos de tiempo.
Los cuatro, quienes nunca ocultaron sus identidades reales, se trasladaron pronto al Edificio Baxter, el que, durante la mayoría de sus aventuras ha sido su principal base de operaciones. Además, gracias a un invento de Reed, unos tejidos de moléculas inestables, Sue fue capaz de confeccionar unos trajes que se adaptaban a las transformaciones de cada uno de ellos, en pos de ser más efectivos en sus aventuras y que algunos como Johnny no quedaran desnudos tras cada lucha.
A lo largo de todas sus andanzas, los cuatro han tenido que enfrentar todo tipo de amenazas: luchar contra los conquistadores extraterrestres conocidos como los Skrulls, detener al devorador de mundos Galactus, acabar con los sueños de conquista del Hombre-Topo... A lo largo de esas aventuras, los Cuatro Fantásticos han conocido a muchos personajes que les han ido definiendo: Namor, el hombre submarino, quien defiende su reino de Atlantis de los humanos a toda costa al tiempo que intenta seducir a la Chica Invisible; Estela Plateada, heraldo de Galactus que se reveló contra su señor cuando descubrió lo bella que era la vida en la Tierra; Alicia Masters, la ciega hija del Amo de las Marionetas que acabó teniendo una relación con Ben... Y, por supuesto, no olvidarnos de Victor Von Doom, también conocido como el "Doctor Muerte", dictador de Latveria y antiguo compañero de Reed, a quien odia por su convicción de que saboteó uno de sus experimentos.
Otros de los a veces aliados a veces enemigos de los Cuatro Fantásticos son la raza conocida como los Inhumanos, unos seres similares a la raza humana en apariencia pero dotados de habilidades espectaculares, que esperan el momento correcto para volver a mostrarse ante el mundo. Entre sus miembros podemos destacar a su líder, Rayo Negro, su esposa Medusa y la hermana de esta, Cristal, quien ha tenido una conflictiva relación con la Antorcha.
A lo largo de su historia, los Cuatro Fantásticos rara vez han sufrido cambios en su formación, y las pocas veces que ha ocurrido ha sido durante breves periodos de tiempo, volviendo siempre a la formación original desde que ha habido oportunidad. El caso de cambio de formación más drástico ocurrió cuando un Skrull engañó y capturó a los Cuatro Fantásticos originales, provocando la formación de un nuevo equipo formado por Spiderman, Lobezno, Mr. Fixit (una de las encarnaciones de Hulk) y el Motorista Fantasma. De todos modos, este equipo se disolvió desde que los cuatro miembros originales regresaron.
Por supuesto, no pasó mucho tiempo hasta que Sue (quien cambió su sobrenombre por "Mujer Invisible") y Reed se casaron y tuvieron un hijo, Franklin Richards, quien, debido a la combinación de los genes combinados con rayos cósmicos de sus padres posee unos poderes más allá de la imaginación, lo cual ayudaría a todos los héroes que en su día se enfrentaron al monstruo Onslaught a sobrevivir, ya que Franklin los teletransportó a todos durante un tiempo a un universo de bolsillo de su creación evitando que todos murieran al tiempo que acababan con el villano.
En recientes eventos, Johnny fue asesinado por por el villano de la Zona Negativa Annihilus, tras lo cual Richards decidió desbandar el equipo y fundar lo que llamó la "Fundación del Futuro", uniendo a las mentes más privilegiadas y con menos prejuicios que pudiera encontrar para intentar luchar por un mejor futuro, donde muchas jóvenes (y no tan jóvenes) promesas superhumanas se fueron uniendo, aunque el equipo principal fue formada por los miembros restantes de los Cuatro Fantásticos y el superhéroe Spiderman, desde siempre un aliado habitual del equipo. Incluso el propio Doctor Muerte ha pasado a formar parte de la Fundación del Futuro.
En los últimos números, Johnny ha regresado durante la invasión Kree, con lo cual no se sabe cómo continuará la situación tras estos incidentes, aunque parece que los Cuatro Fantásticos podrían regresar.

Lecturas recomendadas:
Fantastic Four Vol.1 #1, #579
Fantastic Four Vol.3 #1
FF Vol.1

domingo, febrero 19, 2012

The CubesPaper, Número XVIII (19/02/2012)

A partir de esta semana voy a intentar un nuevo método de recopilación de noticias, con lo cual creo que la cantidad de noticias que ponga aumentará bastante, sobre todo después del fiasco de la semana pasada. Empecemos el experimento:

"Batman: Earth One" anunciado para julio
La nueva serie de Geoff Johns y Gary Frank que contará el nuevo origen de Batman saldrá en verano.
Más información: ComicBook Resources

Saint Seiya al cine
La película se rodaría en CGI con intenciones de estrenarse antes de 2013.
Más información: ZonaNegativa

Se estrena cómic de Garfield
La editorial Boom Studios será la que presentará la nueva serie regular del gato más vago del mundo.
Más información: ComicVine ComicsAlliance

Marvel presenta nuevo mini-evento crossover "Exiled"
El evento unirá la acción de las colecciones Journey Into Mystery y New Mutants.
Más información: ComicVine Newsarama ComicBook Resources

Michael Bay dirigirá "Transformers 4"
El director de las 3 primeras películas confirma que seguirá en la cuarta parte.
Más información: ComicVine

Serie de Superman ambientada en el futuro
Como parte del universo de Batman Beyond, J.T. Krull y Howard Porter traen en abril Superman Beyond.
Más información: Newsarama ComicVine

Telltale Games anuncia juego de "The Walking Dead"
La empresa famosa por sus aventuras gráficas lanzará en abril una adaptación del popular cómic.
Más información: ComicBook Resources

Nueva saga de Hulk "Stay Angry"
Jason Aaron y Steve Dillon escribirán esta nueva saga del gigante verde.
Más información: Newsarama ComicBook Resources ComicVine ZonaNegativa

Sam Humphries co-escribirá "Ultimate Comics: Ultimates"
Ayudando a Jonathan Hickman estará el autor de Our love is real.
Más información: ComicVine ComicBook Resources ComicsAlliance

Los Teen Titans de Cartoon Networks regresan
Unos cortos protagonizados por los jóvenes héroes de DC se emitirán a partir de primavera.
Más información: ComicsAlliance ComicBook Resources

Nueva serie de Simon Bisley
El autor conocido por sus trabajos en Lobo, Judge Dredd o Hellblazer nos trae The Four Horsemen en la revista Heavy Metal.
Más información: ZonaNegativa

Miniserie sobre la "Viuda Negra" cinemática
Como una de las precuelas para la próxima película de los Vengadores, de manos de Fred Van Lente llega Marvel's The Avengers: Black Widow Strikes.
Más información: Marvel.com

Nueva línea "Marvel Universe" de cómics Marvel
Marvel presenta una nueva línea editorial en la que publicará cómics basados en sus series animadas.
Más información: ComicVine

sábado, febrero 18, 2012

(Reseña de cómic) Batman: Hollywood Knight

Entre los Elseworlds de DC, la línea editorial que mostraba realidades alternativas del Universo DC en la época en la que había una Tierra única, se encuentran tanto historias que no se alejan mucho de lo que ya conocemos como otras cuyos universos son radicalmente distintos al que llevamos siguiendo durante todos estos años, y este es el caso de Batman: Hollywood Knight ("Batman: Caballero de Hollywood"), una historia de tres números creada por Bob Layton y Dick Giordano en 2001.
En la realidad de Batman: Hollywood Knight, los superhéroes no existen, pero sí que existe toda una gama de merchandising relacionado con el personaje de Batman, sobre todo destacando una serie de películas protagonizada por el autor Byron Wyatt. Sin embargo, el productor Jack Napier, apodado el "Joker", quiere obtener los derechos del personaje a toda costa, y para ello llevará a cabo unas medidas un tanto drásticas. Claro que no siempre las cosas salen como se planean...
La historia es... curiosa. Realmente no hay mucho sobre lo que hablar en este aspecto, la historia tiene momentos divertidos y momentos bastante absurdos, además de algún que otro guiño a los cómics clásicos (la aparición del Detective Comics #27 es bastante graciosa), y es bastante amena para leer, aunque en algunos momentos se concentran demasiados datos, pero perder algunos detalles no dificulta la comprensión de la hisotria. Aún así, no es una serie que vaya a pasar a la historia.
Respecto al dibujo de Giordano, no es especialmente malo pero tampoco es especialmente destacable. Se defiende bien y los personajes son bastante bien identificables, pero incluso en algún momento la disposición de las viñetas dificulta un poco la lectura, con lo que pierde puntos.
En general, una miniserie mediocre tirando para mala que, como curiosidad, no está mal, pero estoy seguro de que siempre tendréis a mano cosas mejores que leer.

viernes, febrero 17, 2012

(Reseña de película) El Gato con Botas

En 2001, los estudios Dreamworks nos mostraron por primera vez las aventuras del ogro Shrek, una divertida película que tomaba distintos cuentos y los entremezclaba con elementos de cultura popular en un tono bastante cómico e incluso de algún modo irreverente (aunque siempre guardando la compostura para poder ser vista por niños). Su popularidad ha provocado que se hayan estrenado tres secuelas además de una serie de cortos basados en el personaje, e incluso uno de sus personajes, aparecido por primera vez en la segunda entrega, se ha ganado una película propia: el Gato con Botas.
La película nos sitúa en una época anterior a que el Gato se cruzara con Shrek por primera vez, viviendo como un forajido, cuando descubre la localización de las judías mágicas, las cuales desde muy joven intentó encontrar ayudado por su antiguo amigo Humpty Dumpty. Al reencontrarse con Humpty y conocer a la gatita Kitty Garras Suaves, el Gato decide dejar el rencor que tiene al huevo y unirse a ellos para conseguir las alubias y, de este modo, encontrar al ganso de los huevos de oro.
La pelicula, la verdad, es, de las que he visto, la más floja de la franquicia (aunque reconozco que no he visto la cuarta entrega de Shrek). Tiene sus puntos divertidos, pero el hecho de que la mayoría del humor recaiga sobre el personaje protagonista hace que acabe aburriendo e incluso se haga predecible, echándose de menos los personajes menores de la saga (Pinocho, el Muñeco de Gengibre, el Lobo Feroz, etc.).
Respecto a la animación, Dreamworks siempre ha hecho un muy buen trabajo y cada vez lo hace mejor. Sin duda, cada vez el pelaje del Gato parece más realista en cada película que sacan, y lamentablemente no he visto la película en 3D para apreciarlo en su totalidad, pero hay que reconocer que al menos han sabido llevar un equilibrio con los planos de modo que en 3D deberán ser bastante buenos (supongo por lo que he visto) pero no se notan ridículos en la versión 2D.
En conclusión, una película para pasar el rato, sobre todo si te gustan las demás películas de la saga. Pero no le llega ni a la suela de los zapatos a las divertidísimas películas del ogro, sobre todo las dos primeras partes (la tercera me pareció también bastante floja... aunque sigue estando mejor que ésta).

jueves, febrero 16, 2012

Nuevos trailers de las producciones marvelitas

Estas últimas semanas nos han dejado un par de trailers de películas basadas en héroes Marvel de los que todavía no he hablado, así que he decidido aprovechar el momento para hablar de ambas. Ya en su día mostré los primeros trailers de ambas películas, pero The Avengers y The Amazing Spider-Man tienen nuevo trailer y, para los que aún no los hayan visto, aquí se los dejo:

The Avengers


The Amazing Spider-Man


Bueno, ninguna de las pelis sigue sin convencerme. Vamos por partes.
En primer lugar, The Avengers. Sí, las escenitas en que vamos viendo a los miembros tiene pinta muy chula muy guay y todo lo que queráis, pero los diálogos siguen pareciéndome muy chorras. Y la conversación entre Loki y Tony Stark... "Tengo un ejército." "Nosotros tenemos un Hulk." ¿En serio? Sigo creyendo que esta película no hará que mejore mi opinión sobre Joss Whedon.
Respecto a The Amazing Spider-Man, el trailer es algo mejor que el anterior y nos da ya realmente algo que ver... y he decidido bautizarla como "lo que pasa cuando un director no hace las cosas bien, provoca un reinicio de la saga y el que viene detrás tiene que esforzarse por diferenciar su película de la anterior". Es un nombre largo, pero es así. Me da la impresión de que los argumentos van a estar muy forzados, sobre todo porque quieren que no se parezca a la película de Sam Raimi.
Pero bueno, habrá que esperar a sus respectivos estrenos, en mayo la primera y julio la segunda, para opinar fundadamente.

miércoles, febrero 15, 2012

Big Culo Day 2012

Una de las páginas indispensables para cualquier comiquero español es, sin duda, El Blog de Jotace, sobre todo si hablamos de fans de cómics americanos... Y si de DC hablamos, ya ni os cuento. Bueno, para quien no lo conozca, dicho blog se caracteriza por coger viñetas de cómics y... descontextualizarlas... aunque en muchos casos no necesitan demasiada descontextualización realmente (sobre todo si es de Batman de quien estamos hablando...).
¿Y a qué viene todo esto? Bueno, resulta que desde el año 2008, Jotace está aprovechando este día 15 de febrero para celebrar lo que llama el "Big Culo Day", que consiste en que todos los blogs que se quieran unir a la iniciativa deben colgar aunque sea un culo comiquero en su blog ese día, y, ya que esta nueva versión del blog sí se puede considerar un blog comiquero, he decidido apuntarme este año al Gran Día del Culo (¿o será el Día del Gran Culo?) aportando mi pequeño grano de arena a esta idea (aunque ya en su primera edición, en 2008, lo hice).
Así que este año les deleitaré con el culo más sexy que he podido encontrar en un cómic, el culo de...
¡Raphael, la Tortuga Ninja!
Sí, lo sé, lo he vuelto a hacer, soy un enfermo y siempre lo seré...

martes, febrero 14, 2012

Tutorial de desarrollo web, Parte XIX: Modelo de Caja CSS

Bien, llevamos unas cuantas semanas viendo HTML sin casi acordarnos del CSS así que esta semana y la próxima nos ocuparemos casi por completo de hablar de CSS. Es más, probablemente de HTML puro quede sólo uno o dos posts a lo sumo, porque casi todo lo importante de ese lenguaje lo hemos visto ya (luego quedará conocer etiquetas sueltas de las que hablaré en la futura guía de referencia que haré tanto para HTML como para CSS... ya hablaré de ellas más adelante). Pero, como normalmente, antes de comenzar este post, la resolución del último ejercicio.
Bueno, esta semana trataremos un tema un tanto extraño pero al mismo tiempo bastante simple (y útil) una vez lo comprendamos. Hablamos del modelo de caja de CSS. Según el CSS todas las etiquetas del "body" de nuestra página están encerradas en una caja que se divide en cuatro capas, ordenadas desde la más interna hacia la externa:
  • Contenido: La capa interior, toda la información que introduzcamos en la etiqueta aparecerá en esta capa. Su tamaño se define por las instrucciones de CSS height y width y el fondo de esta capa se definirá con las etiquetas de tipo background de la propia etiqueta.
  • Relleno: Mejor conocido como padding, es la distancia que habrá entre el contenido de la etiqueta y el borde. Su fondo será el mismo del contenido y su tamaño se define por las instrucciones padding (padding, padding-top, padding-bottom, padding-left y padding-right).
  • Borde: Vista ya en una entrada anterior, esta capa define un contorno alrededor del contenido (y del relleno) que puede hacerse visible, y cuyo fondo y tamaño se puede definir por las etiquetas border ya dichas.
  • Margen: La capa más exterior, define el espacio que cada etiqueta mantendrá con respecto al resto de etiquetas. Su fondo es transparente (por lo que heredará el fondo de la etiqueta que contenga a esta etiqueta) y su tamaño se define con las instrucciones margin (margin, margin-top, margin-bottom, margin-left y margin-right).
A continuación una imagen un poco cutre hecha por mí en 5 minutos para entender la estructura del modelo de caja:
Vale, lo reconozco, no es un poco cutre, es MUY cutre, pero se entiende, ¿no? Pues hala.
Bueno, realmente poco más hay que saber sobre el modelo de caja, pero como supongo que esto suena muy abstracto y extraño explicado de esta manera, tal vez lo mejor es que trabajemos sobre ello.
Vamos en primer lugar a crear un nuevo documento "box-model.html" en nuestra carpeta "Mis páginas webs" y escribiremos la estructura básica de cualquier documento HTML (espero que a estas alturas ya os la sepáis) y luego incluiremos en el interior dos etiquetas "div" una junto a la otra, cada una con un texto distinto, por ejemplo:

<div class="primero">primero">Primero</div>
<div class="primero">segundo">Segundo</div>

De momento, nuestra página quedaría de esta manera:

De momento no vemos nuestra "caja" por ningún lado, a pesar de que está ahí. Pero analicémoslo poco a poco. Como explicamos antes, todo lo que escribamos entre ambas etiquetas irá a la capa "contenido", de modo que tanto las palabras "Primero" como "Segundo" estarán ambas en el interior de dicha capa (cada una en su "div" particular). Ahora empezaremos a meter algo de CSS, en primer lugar, para poder diferenciar nuestros cambios, diferenciaremos un borde en nuestras etiquetas, de la siguiente manera:

<style type="text/css">
div

{
border-style: solid;
}
</style>

Recordáis el uso de la instrucción border-style, ¿no? Bueno, ahora guardamos, actualizamos y nos encontramos con...
Si hemos seguido el curso, esto no será una sorpresa, pero gracias a ello vamos a aprender a usar el resto de las características del modelo de caja.
Bien, como ya he dicho antes, entre el contenido de nuestras etiquetas (en este caso las palabras "Primero" y "Segundo") y el borde de cada una de ellas, existe una capa conocida como "relleno", a la cual podemos dar tamaños gracias a la instrucción padding, así que en nuestro siguiente paso añadiremos una línea al anterior código, así:


<style type="text/css">
div

{
border-style: solid;
padding: 10px;
}
</style>

Antes de continuar, anunciar, a partir de ahora sólo diré las líneas que vamos a introducirles, ya que todas irán dentro del espacio para "div", y en caso de que no sea así, avisaré de ello.
Bueno, con esta nueva instrucción, volvemos a guardar y actualizar y nuestro resultado debería ser el siguiente:
Supongo que no hace falta que explique lo que ha ocurrido aquí, pero por si las moscas: como les decía, el "relleno" (padding) está entre el contenido y el borde, así que al decirle que queremos un padding de 10 píxeles se ha generado un espacio en blanco alrededor del texto antes de llegar al borde. Tal vez os preguntéis por qué el padding derecho es tan grande, pero en verdad es la capa de "contenido" la que es así de grande, todo debido a la instrucción que ya vimos hace unas semanas, el display. La etiqueta "div" tiene por defecto el "display" a "block" lo cual hace que el contenido ocupe todo el ancho de la página. Si, por el contrario, lo pusiéramos a "inline" ocurriría lo siguiente:

display: inline;

Aquí podemos ver bastante claro como el padding sólo ocupa 10 píxeles alrededor del contenido. Sin embargo, debido a que las etiquetas con display: inline; no se les puede modificar el ancho y la altura (al menos, yo no lo he logrado), borraremos esta última línea para volver a la anterior imagen.
Al igual que ocurría con la instrucción border-width, la etiqueta padding puede recibir valores genéricos para los 4 costados del "relleno" o para cada uno de ellos, tanto mediante las cuatro instrucciones específicas (padding-top, padding-bottom, padding-left y padding-right) como en una sola declaración, dándole desde uno hasta cuatro valores. Como eso ya lo explicamos con dicha anterior etiqueta, no voy a extenderme más sobre el asunto, sólo avisar de que exactamente lo mismo ocurre también con la instrucción margin, precisamente la que veremos ahora.
Viendo cómo ha funcionado hasta el momento la etiqueta padding y sabiendo cómo funcionaba la etiqueta border-width, no nos será muy difícil imaginar el funcionamiento de esta última etiqueta, pero para hacerlo, incluiremos esta nueva línea:

margin: 10px;

Podemos ver que ambos "div" se han separado entre ellos y que incluso han dejado un espacio con los bordes de la página. Evidentemente, es por haber introducido esta última instrucción, con lo que le hemos reservado un espacio extra alrededor del borde, el "margen".
Ya que antes hablamos sobre los fondos, veamos cómo funcionan dándole un valor al fondo, introduciendo en nuestro "div", por ejemplo:

background-color: yellow;

Comprobamos que tanto el "contenido" como el "relleno" ahora tienen un fondo amarillo, sin embargo, los márgenes no, tal como habíamos explicado que ocurriría más arriba.
Hasta ahora sólo hemos visto cómo cambiar el tamaño de las capas exteriores, sin embargo, no hemos cambiado el tamaño del contenido. Esto se conseguirá con las etiquetas width (anchura) y height (altura).

width: 100px;
height: 50px;

Vemos que el tamaño de ambos "div" ha cambiado para adecuarse a los valores que les hemos dado. Sigue forzando un salto de línea debido al valor display: block; por defecto en los "div", pero al menos no toma el ancho completo de la página. Y esto nos será útil para una razón en particular, que ahora voy a detallar.
Muchas veces nos ocurrirá que queramos colocar una tabla, un "div" o algún otro elemento con display: block; en el centro de nuestra página. Sin embargo, la instrucción text-align: center; que hemos usado hasta ahora lo único que hace es centrar el contenido de dicha etiqueta, no la etiqueta en sí, que, incluso aunque le bajemos el valor width, seguirá siempre alineándose a la izquierda. Esto es porque estas etiquetas se centran según el margen izquierdo, pero existe un valor para la instrucción margin que nos solucionará este problema: auto.
Probemos lo que courriría si sustituímos el margin que ya le habíamos dado con el siguiente:

margin: auto;

Vemos que nuestros "div" han sido centrados. Además, podemos hacer que vuelvan a separarse entre ellos del siguiente modo:

margin: 10px auto;

Como vemos, el valor "auto" de la instrucción "margin" nos será muy útil para centrar horizontalmente nuestros "div" y otras etiquetas con display: block;. Pero, para ello, siempre habrá que definirle un ancho (width), ya que si no, la etiqueta ocuparía el ancho completo de la página y este "margen automático" pasaría completamente desapercibido.
Y, ahora sí, espero que haya quedado bastante claro cómo podemos usar el modelo de caja. Es un sistema que en un primer momento parece enrevesado, pero usándolo y probando podremos sacarle mucho juego. Y, para terminar, nuestro acostumbrado ejercicio:

EJERCICIO

Esta semana voy a pedir que repliquéis una serie de capturas que os voy a dejar aquí, usando las distintas instrucciones que conocemos hasta ahora (tanto del modelo de caja como otras), combinando nuestros conocimientos de HTML y CSS. Probablemente existan varias soluciones para cada uno, sólo pido que intentáis que se parezcan lo más posible a estas:



Aviso: hay que jugar mucho con el modelo de caja y aplicar algunas "trampas" para lograrlos, así que no os rindáis, con lo que hemos estudiado hasta ahora se puede hacer (de hecho, sólo lo he hecho con instrucciones y etiquetas que he explicado) así que, ¡ánimo y al toro!