lunes, 28 de julio de 2008

Lee el relato de los Merodeadores

No hay comentarios.:
Por fin conocemos algo más de la breve historia del relato: Sirius y James se meten en un lío con dos policías muggles, después de ser pillados con una moto a toda velocidad. Después huyen usando sus escobas y un poco de magia. Los hechos suceden tres años antes del nacimiento de Harry.


Rowling ha declarado: "Me lo pasé muy bien escribiendo la tarjeta y estoy absolutamente encantada de que haya recaudado 25.000 libras para dos causas tan dignas".

La espera ya ha terminado y Waterstone's ha publicado el relato de los Merodeadores para gusto de todos. La historia, que se sitúa tres años antes del nacimiento de Harry.




La motocicleta de carreras tomó tan rápido la curva afilada en la oscuridad que ambos policías del coche de la persecución gritaron: "¡Guau!". El Sargento Fisher apretó su largo pie en el freno, creyendo que el chico que montaba en el asiento de atrás de la moto volaría bajo sus ruedas. Sin embargo, la moto siguió sin arrojar a ninguno de sus ocupantes, y con un pestañeo de su luz roja trasera, desapareció en la estrecha calle de al lado.
-¡Ya les tenemos! -exclamó con excitación el capitán de policía Anderson-. ¡Esto es un callejón sin salida!
Tomando el volante con determinación y haciendo crujir la maquinaria, Fisher rayó la mitad de la pintura de la chapa del coche en el intento de perseguirlos por el callejón.
Los dos pasajeros estaban atrapados entre una pared de ladrillo y el coche de la policía, que ahora se acercaba hacia ellos como un depredador gruñón de ojos luminosos.
Había tan poco espacio entre las puertas del coche y los muros del callejón que Fisher y Anderson habían salido con dificultad del vehículo. Dañó su dignidad tener que medir pulgada a pulgada, como si se tratasen de cangrejos. Fisher arrastró su generosa panza por el muro, arrancando botones de su camisa por el camino, y finalmente descolocando el retrovisor con su parte trasera.
-¡Bajad de la moto! -bramó a los jóvenes que sonreían con insolencia, que se habían sentados con la luz azul parpadeante como si disfrutasen con ello.
Lo hicieron como se lo habían mandado. Después de librarse del espejo retrovisor roto, Fisher les miró con ferocidad. Parecían tener unos dieciocho años. El que había estado conduciendo tenía una melena larga y negra. Su buen aspecto insolente desagradablemente le recordó a Fisher al novio guitarrista y holgazán de su hija. El segundo chico también tenía cabello negro, aunque era corto e iba en todas las direcciones. Llevaba gafas y una ancha sonrisa. Los dos vestían camisetas con un gran pájaro dorado estampado; un emblema, no había lugar a dudas, de alguna banda de rock sin ritmo y ensordecedora.
- ¡No lleváis cascos! -gritó Fisher, señalando la cabeza desprotegida de uno de ellos-. Excediendo el límite de velocidad con una considerable cifra -(de hecho, la velocidad registrada había sido mayor que la que Fisher estaba preparado para aceptar de una moto que pudiese viajar)-. ¡Ignorar la detención de la policía!
-¡Nos encantaría detenernos para conversar! -dijo el chico con gafas-. Solo intentábamos...
-No te hagas el listillo. ¡Los dos estáis metidos en un buen lio! -gruñó Anderson-. ¡Nombres!
-¿Nombres? -repitió el conductor de cabello largo-. Er... bueno... déjame ver. Está Wilberforce... Bathsheba... Elvendork...
-Y lo que es bonito sobre ese es que puedes usarlo tanto para chico como para chica -dijo el chico con gafas.
-Oh, ¿te refieres a nuestros nombres? -preguntó el primero-. Deberías habérmelo dicho. Éste de aquí es James Potter, y yo soy Sirius Black.
-Las cosas se van a poner verdaderamente negras para ti en un minuto, pequeño descarado...
-Pero ni James ni Sirius estaban prestando atención. De repente estuvieron tan alerta como perros de caza, mirando más allá de Fisher y Anderson, sobre el techo del coche de policía, en la boca oscura del callejón. Entonces, con movimientos idénticos y fluidos, se llevaron la mano a sus bolsillos traseros.
En el espacio de un latido los dos policías imaginaron pistolas saliendo de ellos, pero un segundo después descubrieron que los motoristas no habían sacado otra cosa que...
- ¿Baquetas? -preguntó Anderson-. Sois un par de bromistas, ¿verdad? Está bien, quedáis arrestados bajo los cargos de...
Pero Anderson nunca llegó a decir los cargos. James y Sirius habían gritado algo incomprensible, y los haces de luz del coche se habían movido.
Los policías dieron una vuelta a su alrededor, después miraron a sus espaldas. Tres hombres estaban volando -realmente volaban- en el callejón sobre escobas. Y al mismo tiempo, el coche de policía estaba encabritado sobre sus ruedas traseras.
Las rodillas de Fisher cedieron; cayó sentado. Anderson tropezó con las piernas de Fisher y cayó encima de él, mientras oían flump-bang-cruch escucharon a los hombres de las escobas chocar contra el coche y caer, aparentemente inconscientes, en el suelo, mientras trozos de escoba caían a su alrededor.
La moto había vuelto a rugir de vida de nuevo. Con la boca abierta, Fisher miró atrás para ver a los dos adolescentes.
-¡Muchas gracias! -le dijo Sirius sobre el ruido de la maquinaria-. ¡Os debemos una!
-Sí, ha sido un placer conoceros -dijo James-. Y no lo olvidéis: ¡Elvendork! ¡Es unisex!
Hubo un crujido que sacudió la tierra, y Fisher y Anderson se abrazaron el uno al otro de miedo; su carro acababa de caer de nuevo al suelo. Ahora era el turno de la moto de rugir. Antes de que los policías diesen crédito a lo que veían sus ojos, surgió en los aires: James y Sirius desaparecieron en el cielo nocturno, con la luz trasera parpadeando detrás de ellos como un rubí que desaparecía.
Ver

jueves, 3 de julio de 2008

Operaciones de Acceso a datos Asincronico 2

No hay comentarios.:
Las operaciones asincrónicas no solo nos permiten realizar más un una consulta a la vez, también tenemos la posibilidad de hacer otros comandos y sacarle más provecho a nuestro servidor haciendo varias operaciones al mismo tiempo, en el siguiente ejemplo se puede ver que tiene 3 updates al mismo tiempo.


Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Threading
' Add the remaining code to the form's class:


Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim connection1 As New SqlConnection(GetConnectionString())
Dim connection2 As New SqlConnection(GetConnectionString())
Dim connection3 As New SqlConnection(GetConnectionString())


Dim commandText1 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " &_
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:01';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " _
"WHERE ReorderPoint Is Not Null"

Dim commandText2 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " & _
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:05';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " &_
"WHERE ReorderPoint Is Not Null"

Dim commandText3 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " & _
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:10';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " & _
"WHERE ReorderPoint Is Not Null"


Dim waitHandles(2) As WaitHandle
Try
connection1.Open()
Dim command1 As New SqlCommand(commandText1, connection1)
Dim result1 As IAsyncResult = command1.BeginExecuteNonQuery()
waitHandles(0) = result1.AsyncWaitHandle

connection2.Open()
Dim command2 As New SqlCommand(commandText2, connection2)
Dim result2 As IAsyncResult = command2.BeginExecuteNonQuery()
waitHandles(1) = result2.AsyncWaitHandle

connection3.Open()
Dim command3 As New SqlCommand(commandText3, connection3)
Dim result3 As IAsyncResult = command3.BeginExecuteNonQuery()
waitHandles(2) = result3.AsyncWaitHandle
Dim result As Boolean = WaitHandle.WaitAll(waitHandles, 60000, False)
If result Then
    Dim rowCount1 As Long = command1.EndExecuteNonQuery(result1)
    TextBox1.Text = "Completed " & _
   System.DateTime.Now.ToLongTimeString()
   Dim rowCount2 As Long = command2.EndExecuteNonQuery(result2)
   TextBox2.Text = "Completed " & _
   System.DateTime.Now.ToLongTimeString()
   Dim rowCount3 As Long = command3.EndExecuteNonQuery(result3)
   TextBox3.Text = "Completed " & _
   System.DateTime.Now.ToLongTimeString()
Else
     Throw New Exception("Timeout")
End If
Catch ex As Exception
       TextBox4.Text = ex.ToString
End Try

connection1.Close()
connection2.Close()
connection3.Close()
End Sub
Ver