viernes, 11 de diciembre de 2015

Bond, el legado

¿Por que voy a ver al cine las películas de Bond? fácil, pues porque crecí con ellas, como crecí con Indiana Jones o la guerra de las galaxias. Cuando yo nací, ya había un buen número de sus películas, pero fueron mis padres los que me mostraron al personaje cuando semana tras semana alquilábamos una tras otra las aventuras del agente más famoso de todos los tiempos.

Simplemente crecí con ellas, y cuando ya fui mayor, fui al cine a ver las dos únicas películas de Timothy Dalton -por supuesto con mis padres-.

Después del gran parón de varios años, volví al cine otra vez a ver el inicio de la etapa de Pierce Brosnan.

Y aunque no me entusiasmaron demasiado ni unas ni otras, seguí yendo como un feligrés a la iglesia cada vez que 007 aparecía de nuevo en el cine.

Unas veces con amigos, otras veces con mis padres...

Y en eso que llego la etapa de Craig, por el que no dábamos un duro nadie, pero una vez más, fui con mis padres al cine a descubrir que había de nuevo. Y nos encantó aquella maravilla de casino royal...

En fin, no solo veíamos las películas, sino que comprábamos la música con las bandas sonoras de los créditos. Grabábamos las pelis cuando las echaban en la tele e incluso algún libro/enciclopedia tenemos por casa del señor Bond.

El otro día, después de ir al cine a ver la última de sus aventuras, (por el momento), me dedique a leer alguna que otra crítica de la película y los comentarios de dicha critica.

Me gusta leer los comentarios de cualquier cosa porque siempre tengo mucha curiosidad por lo que pueda decir la gente acerca de algo. Y me llamo la atención cuando alguno que otro decía frases como "este no es Bond", para dos o tres comentarios más abajo leer que solo había visto las películas de Pierce Brosnan, que las "antiguas" las tenía pendiente.

Entonces me di cuenta.

Yo había visto todas las películas de Bond, repetidas veces cada una, las oficiales, las no oficiales (que las hay), me sabia todas las canciones de los créditos, las curiosidades, las maneras y las formas... todo, lo sé todo de Bond, porque he crecido con esas pelis.

Y de repente me vi pensando en quien mejor que yo para saber si ese era o no era el auténtico Bond.

Pero como un servidor nunca se conforma con nada y nunca suele pensar que lo sabe todo. Pues pensé en quien podría definir al Bond original y ese no es más que Ian Fleming.

Así que allá voy, iré a la fuente, porque la curiosidad es uno de los mejores dones que tiene el hombre y nunca se puede decir que uno lo sabe todo de algo.

P.D: No empezare por cualquier cosa... la elegida será "Al servicio de su majestad".

viernes, 4 de septiembre de 2015

Qué mundo nos dejamos?

Este mundo que nos dejamos... cada vez está más jodido, mas desierto y más contaminado.

El otro día leí que al ritmo que llevamos, la tierra estará sin árboles en 300 años.

¿Y a mi qué? piensan algunos -una gran mayoría- dentro de 300 años yo no estaré aquí para verlo, así pues, me da lo mismo. Incluso algunos que podrían ir más allá de su propio egoísmo y piensan en sus hijos, argumentan que como mucho, ellos vivirán unos 80/90 años más, así que ni ellos lo verán o lo sufrirán.

Con este pensamiento se centran en su disfrute actual. Vivir la vida tal y como esta y los que vengan, ya apechugaran con lo que haya.

Bien, valido...

...Pero cuidado. Creo sinceramente que nosotros somos conscientes de nosotros mismos aquí y ahora, y que con la muerte se acabara todo. Pero quien nos dice que no seremos también conscientes de nosotros mismos en cualquier otro tiempo futuro y en cualquier otro lugar, siendo otra persona.

¿Reencarnación?, no, no creo que se deba llamar asi. Pues eso implicaría una unión entre uno y otro ser. Simplemente sería algo como identificar a la consciencia del "yo", en otro cuerpo, otro lugar y otro tiempo futuro. Con lo que sufriríamos, amaríamos y viviríamos como si el "yo de ahora" fuese el "yo del futuro".

Una consciencia de ahora, no sufrirá lo que le estamos haciendo al planeta y a nuestra sociedad, pero una consciencia del futuro, que podrías ser tú, sí que lo sufrirá.

Deberíamos tener cuidado en pensamientos que no van más allá de mi vida actual y de mi consciencia actual.

Lo sé, un poco rallante, pero esta idea lleva dándome vueltas muchos años en la cabeza. Solo quería plasmarla aquí.

sábado, 20 de junio de 2015

Con una losa encima

Hoy me despierto con una losa encima. Me cuesta un triunfo levantarme, ducharme, vestirme… en fin, toda la rutina matinal.

En el curro, la cabeza me pesa más de lo normal. Los parpados caídos hasta el subsuelo y una nube gris plomizo rodea mi cráneo. Sensación de bostezo infinito en la boca y run run de bla bla bla flota en el ambiente.

Un minuto… dos minutos… ¿las horas no pasan aquí?.

He entrado en un cubo espacio temporal donde se ralentiza el tiempo. Toca ver como van creciendo mis canas hasta la puesta de sol, con mis movimientos a cámara lenta mientras todo se mueve rápido a mi alrededor.

Buff… 3 minutos… 4 minutos… nada, que no avanza.

Me refugio en mi yo interior y aguanto el chaparrón. “Ya llegara el sol” me digo con la mirada fija en la pantalla.

¿Soy yo el único zombi? O uno mas en el apocalipsis?...

viernes, 12 de junio de 2015

Otra Vuelta de Tuerca

Bueno, pues otro cambio mas que ha sufrido la pagina. Esta vez, obligado. Pues el hosting que tenia contratado me ha subido por arte de magia de 28 € al año a 72€, y bueno, 28 € era algo asumible para poder mantener viva la versión mas trabajada y personal del blog, pero ya 72 € me parece una pasada por un capricho.

Así que he migrado todas las entradas al blog gratuito de google. Bueno, todas no, he dejado alguna fuera que ya era mas perfil facebook que otra cosa. Porque ya el blog solo lo entiendo para escribir mis paranoias mentales. Y de hecho, se me ocurren muchas pero no siempre las plasmo aquí.

En fin, una vuelta de tuerca mas. Aunque voy a seguir conservando el dominio de www.dawolf.es, pues al fin y al cabo es mi marca ;D

Como podéis ver, he añadido la pagina de cabeceras, para no perder todas las cabeceras que aparecían diatónicamente en la versión de php. Pues a todas las tengo un gran cariño.

Así que haciendo resumen, la historia de la pagina queda de la siguiente forma:

Versión 1.0: HTML estático en servidor gratuito Iespana. (http:\\iespana.es\dawolf)
Versión 2.0: HTML dinámico con PHP y MYSQL con servidor Strato. (www.fuchicando.com/dawolf)
Versión 3.0: Blog en Wordpress manteniendo un enlace a la versión 2.0 con servidor 1&1. (www.dawolf.es)
Versión 4.0: Blog en Blogger manteniendo dominio (www.dawolf.es)

miércoles, 15 de octubre de 2014

Adiós Yorick, &, 355

Hace ya bastantes años, escribí algo parecido a esto, movido por la misma sensación que tengo ahora. En aquella ocasión fue un libro, en esta, un cómic, o mejor, su versión mas culta, una novela gráfica.
La sensación es la de haber perdido algo. A mis amigos. Personajes creados en la mente de un escritor, y en este caso ademas, en la mente de una dibujante.
Personajes con los que empece una aventura hace un tiempo, y a los que he acompañado durante toda su vida. Amigos con los que he sufrido, he reído, me he frustrado y he crecido con ellos.
Y es que a medida que avanzas en una historia, sientes un deseo irrefrenable de seguir adelante, de saber como acabara, a la vez que disfrutas del camino que recorres con ellos… pero cuando llegas al final, a la conclusión. Cuando obtienes las respuestas que estabas buscando durante todo ese tiempo que les acompañaste, siempre te invade una sensación de tristeza, de fin.
Una sensación de no volver a verlos nunca mas. De haber vivido algo maravilloso que no volverá a repetirse nunca. Un desamor.
No recuerdo bien, pero alguna vez leí a alguien que decía que si le preguntaban por un deseo, el suyo seria olvidar una película para poder volver a verla por primera vez.
No es un mal deseo.

martes, 3 de diciembre de 2013

Extraer imagen de un RTF cargado en un RichTextBox (Visual Basic .Net)

Hace poco me encontré con este problema y después de mirar diferentes ejemplos y documentación llegue a la siguiente solución.
En documentos RTF las imágenes incrustadas se identifican con un tag “{\pict\”. Solo hay que buscarlo y extraer de dicho tag la cadena hexadecimal que guarda la información de la imagen, transformarla a un array binario y cargarlo en un nuevo objeto imagen con las dimensiones que también hemos extraído del tag.
Espero que a alguien le sea útil. Al final del código os dejo el proyecto ejemplo para descargar.
Imports System.IO
Imports System.Text

Public Class Form1

#Region "Variables y Constantes"

    'twip (TWentIeth of a Point) es un punto, una unidad de medida de pantalla.
    'Segun documentacion microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=10725 
    'En un rtf el ancho y el largo de la imagen se guarda en twips 
    'Un twip equivale aprox. a 26.15 pixels
    Const TWIP As Decimal = 26.450704225352109

#End Region

#Region "Eventos"

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

        Me.RichTextBox1.LoadFile("c:\documento.rtf")

    End Sub

    Private Sub ButtonExtraer_Click(sender As System.Object, e As System.EventArgs) Handles ButtonExtraer.Click

        'Extraemos los datos
        '-------------------
        Dim imagenHex As String

        imagenHex = ExtraerImagenHexadecimal(RichTextBox1.Rtf)

        Dim elementos As String()

        elementos = ExtraerDatosImagen(RichTextBox1.Rtf)

        Dim ImgWidth As Integer = (CInt(elementos(3).Replace("picw", "")) / TWIP)
        Dim ImgHeight As Integer = (CInt(elementos(4).Replace("pich", "")) / TWIP)

        Dim imagenBuffer As Byte()

        imagenBuffer = PasarABinario(imagenHex)

        'Generamos y Exportamos la imagen
        '--------------------------------
        Dim image As Image

        Dim MemoryStream As Stream = New MemoryStream(imagenBuffer)

        image = System.Drawing.Image.FromStream(MemoryStream)

        Dim rect As New Rectangle(0, 0, ImgWidth, ImgHeight)

        Dim thumb As Bitmap = New Bitmap(ImgWidth, ImgHeight)

        Dim pint As Graphics = Graphics.FromImage(thumb)

        pint.DrawImage(image, rect)

        thumb.Save("c:\Imagen.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

        MemoryStream.Close()

    End Sub

#End Region

#Region "Procediminetos y Funciones"

    ''' 
    ''' Extrae la imagen en hexadecimal del texto del rtf
    ''' 
    ''' 
    ''' 
    ''' 
    Public Function ExtraerImagenHexadecimal(ByVal texto As String)

        Dim pictTagIdx As Integer = texto.IndexOf("{\pict\")
        Dim startIndex As Integer = texto.IndexOf(" ", pictTagIdx) + 1
        Dim endIndex As Integer = texto.IndexOf("}", startIndex)

        Return texto.Substring(startIndex, endIndex - startIndex)

    End Function

    ''' 
    ''' Extrae los Datos de la imagen
    ''' 
    ''' 
    ''' 
    ''' 
    Public Function ExtraerDatosImagen(ByVal texto As String) As String()

        Dim pictTagIdx As Integer = texto.IndexOf("{\pict\")
        Dim startIndex As Integer = texto.IndexOf(" ", pictTagIdx)
        Dim endIndex As Integer = texto.IndexOf("}", startIndex)

        Dim cadena As String

        cadena = texto.Substring(pictTagIdx, startIndex - pictTagIdx)

        Dim elementos As String() = cadena.Split("\")

        Return elementos

    End Function

    ''' 
    ''' Pasa la cadena Hexadecimal a un array binario
    ''' 
    ''' 
    ''' 
    ''' 
    Public Function PasarABinario(ByVal imageDataHex As String) As Byte()

        If imageDataHex Is Nothing Or imageDataHex.Trim = "" Then

            Throw New ArgumentNullException("imageDataHex")

        End If

        Dim hexDigits As Integer = imageDataHex.Length
        Dim dataSize As Integer = hexDigits / 2
        Dim imageDataBinary(dataSize) As Byte

        Dim hex As New StringBuilder(2)

        Dim dataPos As Integer = 0

        Dim c As Char

        For i As Integer = 0 To hexDigits - 1

            c = imageDataHex(i)

            If Char.IsWhiteSpace(c) Then

                Continue For

            End If

            hex.Append(imageDataHex(i))

            If hex.Length = 2 Then

                imageDataBinary(dataPos) = Byte.Parse(hex.ToString(), System.Globalization.NumberStyles.HexNumber)

                dataPos = dataPos + 1

                hex.Remove(0, 2)

            End If

        Next

        Return imageDataBinary

    End Function

#End Region

End Class

Proyecto de ejemplo para descargar: