Code Geass, primera temporada

Se acabó. 25 episodios. La primera temporada de Code Geass. La acabo de terminar. Y tengo las entrañas revueltas, náuseas, ganas de llorar. 25 episodios acompañando al idealista de Suzaku, a la misteriosa C.C., a la ingenua Kallen, a la encantadora Shirley y, sobre todo, a Lelouch.

Lelouch, terrorista, conquistador, parricida

Lelouch… terrorista, asesino, conquistador, megalómano, parricida. ¿Eres un Alejandro Magno o un Hitler? ¿Cómo alguien como tú es protagonista de una serie? Siguiendo la tradición, el protagonista debía haber sido Suzaku y tú su némesis, el terrorífico malo de la serie. En lugar de ello, te hacen protagonista y uno conoce tu genialidad, tus ideales, tu ansia de venganza oculta. Y ve también como obtienes poder, y al usarlo caes bajo su influjo y en cada encrucijada en que te encuentras escoges el camino de la oscuridad y te sumerges más y más en la locura.

He terminado la primera temporada y tengo ganas de vomitar. La serie me ha dado una paliza; es cruel, dolorosa. Es, básicamente, política aplicada. Las personas son sólo piezas en el tablero donde los poderosos juegan su terrible lucha de poder, sin más remordimiento por los hombres, mujeres y niños muertos o asesinados (no, no es lo mismo: no es lo mismo soldados que mueren en el campo de batalla que civiles masacrados sin posibilidad de defenderse) que el que yo pueda tener por un peón sacrificado para abrir una línea de ataque sobre el rey contrario. Hay purgas, asesinatos, masacres, dobles juegos, fintas… No disfrutaba tanto de un argumento de este tipo desde la genial Babylon 5. En cierto modo, Lelouch me recuerda a Molari por su caída en la oscuridad. No me habría sorprendido encontrarme en Code Geass a un tecnomago diciéndole a Lelouch:

La misteriosa C.C. Me he enamorado.

Veo una gran mano saliendo de las estrellas. Esa mano es su mano. Y oigo sonidos: las voces de millones de personas gritando su nombre: sus víctimas.

He terminado la primera temporada y, aparte de esperar a la segunda, sólo me queda recomendaros esta serie, una obra maestra de Sunrise con una trama magnífica, una mala leche absoluta, un diseño de personajes precioso, una muy buena animación y seiyuus de primer nivel.

He seguido la versión de AnimeUnderground, exquisita como siempre: una resolución de 1024×576, vídeo x264, audio AAC, todo ello en un contenedor mp4 de 170MB de peso por episodio sacada de la edición en DVD. Una de las razones que me hicieron jubilar mi ordenador y comprarme un monitor de 22’’ panorámico.

Cosas bonitas tiene mi niña…

Poquito a poco voy haciéndome a Vista y cada vez encuentro más cosas, de cara al uso cotidiano, que me gustan. O mejor, me encantan. Son cositas pequeñas, pero que te hacen la vida un poco más fácil.

Por ejemplo: al renombrar un archivo en Vista no se selecciona la extensión, sólo el nombre del archivo.

Otro ejemplo: al renombrar un archivo, si pulso el tabulador, me pasa al siguiente archivo (por supuesto, con el nombre seleccionado, pero no la extensión). Así es mucho más cómodo cambiar de nombre varios archivos, como por ejemplo, todos los episodios de la primera temporada de Code Geass.

Otra más: las opciones de ordenación (por ejemplo, Nombre, Fecha de modificación, Tipo, etc.) en las versiones anteriores de Windows sólo aparecen en la parte superior de la ventana del explorador cuando tenemos seleccionada la vista «Detalles». Que aparezcan ahí es muy cómodo porque podemos ordenar por orden ascendente o descendente simplemente pinchando en la etiqueta (o cabecera de la columna, como prefieras) que deseemos. Para ordenar los archivos en cualquier otra vista, tenemos que abrir el menú contextual con el botón derecho, ir a «Ordenar» y seleccionar la ordenación. Ahora, en Vista, las opciones de ordenación siempre aparecen.

Mostrar una imagen en graaaande

Se supone que la primera entrada de un blog debería ser una presentación, pero ni las presentaciones ni las despedidas se me dan bien, así que prefiero empezar con algo que me gusta: Visual Basic 2005 y con la solución a un pequeño problema que se me planteó:

Tengo un pequeño picturebox en un formulario donde se muestra la imagen asociada al registro en el que estemos (me da igual si hablamos de series, actores, muebles o coches). Hay algunas imágenes que son bastante grandes y muy bonitas y verlas en un picturebox de 100×63 es una pena,así que decidí añadir un formulario con un picturebox que me mostrara la imagen a tamañocompleto. Básicamente, cogí un formulario (frmMostrarImagen) y le quite el texto del título y los bordes (FormBorderStyle=None). Le añadí un picturebox que debía ocupar todo el formulario (Dock=Fill). Este picturebox (picImagen) debe ajustarse al tamaño de la imagen (AutoSize=True). De igual modo, el formulario debe ajustarse al tamaño del picturebox, asíque su AutoSize también está en True y AutoSizeMode debe estar en GrowAndShrink.

Con esto ya sólo quedó añadir elcódigo necesario para que, pasándole la imagen a mostrar, la ponga en el picturebox y muestre el formulario.>

Peeeeero… No queda bien. Si se le pasa una imagen con mayor resolución que la pantalla, sólo se ve una parte de la imagen. Mal íbamos. Por fortuna en My.Computer encontramos Screen y, dentro de Screen, WorkingArea. Sabiendo las dimensiones del área de trabajo de la pantalla estrivial comprobar si la imagen es más alta o ancha que el área de trabajo. En este caso pasaremos del AutoSize y ajustaremos el tamaño del picturebox al máximo que nos permita la resolución de pantalla, manteniendolas proporciones de la imagen.

En resumen, esto:

 
''' <summary>
''' Carga la imagen a mostrar y muestra el formulario de modo modal
''' </summary>
Public Sub MostrarImagen(ByRef queImagen As Image)
    'Comprobamos si el tamaño de la imagen (alto o ancho) es mayor
    'al área de trabajo de la pantalla. Si es así, ajustamos la imagen
    'al área de trabajo manteniendo las proporciones.
    If queImagen.Height > My.Computer.Screen.WorkingArea.Height _
    	OrElse queImagen.Width > My.Computer.Screen.WorkingArea.Width Then
        'Lo primero es poner el autosize del formulario a false
        'Si no lo hacemos y quitamos el autosize del picbox, no se muestra nada
        '(el formulario queda con tamaño 0)
        Me.AutoSize = False
        Me.picImagen.SizeMode = PictureBoxSizeMode.Zoom
        'Vemos que dimensión (ancho, alto) es mayor, pues será sobre la que ajustemos
        If queImagen.Size.Width > queImagen.Size.Height Then
        	Me.Width = My.Computer.Screen.WorkingArea.Width
            Me.Height = Me.Width * queImagen.Height / queImagen.Width
        Else
            Me.Height = My.Computer.Screen.WorkingArea.Height
            Me.Width = Me.Height * queImagen.Width / queImagen.Height
        End If
    End If
    Me.picImagen.Image = queImagen
    Me.ShowDialog()
 End Sub

Sólo queda hacer que el formulario se cierre (no hay barra de título, no hay como cerrarlo en principio). Cada cual tendrá sus formas, yo lo hice al hacer click sobre el picturebox y al pulsar cualquier tecla. Esto último en el evento KeyPress del formulario, previo hacer que el formulario capture las pulsaciones de las teclas antes que el picturebox (KeyPreview=True). De paso añadí un tooltip que mostrase un mensajito del tipo «Pulse la tecla any para cerrar esta ventana» y listo.

Fin de la primera entrada, nos vemos en el Forlon.

Actualización 08 de enero de 2008: he corregido la línea Me.Height = Me.Width * queImagen.Height / queImagen.Width y su equivalente con Width ya que no aparecía el símbolo de la división entera (la otra barra inclinada). Lo he sustituido por la barra de división normal, peeeeeero tiene que ser una división entera, o bien convertir el resultado en un entero.