martes, 24 de noviembre de 2009

Black Red Roses

The most powerful theme of Ivory Cities, at the moment, may be this one, Black Red Roses. It sounds to me like some of the strongest German rithms:



Found in YouTube at:
Black Red Roses

Abeyance (preview)

From Abeyance (Ivory Cities) we can only ear this small piece:


We are waiting for more.

In the meanwhile you can visit YouTube:
Abeyance (preview)

The Shape of the Thinks to Come

A first preview of the theme The Shape of the Thinks to Come, from the Ivory Cities EP of Masque of Death:



At YouTube:
The Shape of the Thinks to Come

sábado, 14 de noviembre de 2009

Black Red Roses

Ya esta disponible en: MySpace el tema Black Red Roses del grupo Masque of Death.

Para escuchar el tema también puedes utilizar el track del sitio de Masque of Death

Y esta es la letra de la canción:


BLACK RED ROSES

Lyrics by Sofia Ruiz

Music by Carlos de Arquer & Sofia Ruiz
All arrangements by Masque Of Death
© 2008 C.Arquer & S.Ruiz



I'm standing here looking in your dreadful vacuous eyes
they look as lightless as they did a decade ago
Nothing seems to have changed in your wicked mind
are you aware of the wounds that you made in mine?
Must you never try to bruise me again


Red roses fading into the
darkest shade of blackest black
But it's too late to hesitate
I swear I will defeat you tonight


Here I am once again holding crimson roses
but this time I forbid you to say damn rotten words
Eyeless fears won't betray me, I'm masterful at
sending cowards like you to the place where they belong


Cried tears of blood that scratched my face

and left me the blackest wounds
but now I dwell where orchids grow,

a precious place where you will never go
Cursed by your lies your gaze will always be,
never defy the metal shade of me
Must you never try to harm me again


Red roses fading into the
darkest shade of blackest black
But it's too late to hesitate
I swear I will defeat you tonight


Here I am once again holding crimson roses
but this time I forbid you to say damn rotten words
Eyeless fears won't betray me, I’m masterful at
sending cowards like you to the place where they belong


(Carlos' Solo)


Here I am once again holding crimson roses
but this time I forbid you to say damn rotten words
Eyeless fears won't betray me, I’m masterful at
sending cowards like you to the place where they belong


Roses for those who grieve, crimson roses
Roses for those who bleed, black red roses


Ivory cities - Masque of Death

miércoles, 11 de noviembre de 2009

Richard P. Feynman

Bill Gates ha colgado de la web de su empresa unas lecciones de física de Richard P. Feynman (1918-1988), uno de los físicos más notables del siglo pasado, impartidas en la Universidad de Cornell en 1964 como primera publicación del denominado Proyecto TUVA.
Proyecto TUVA con Richard P Feynman
Esta iniciativa merece por sí misma que instalemos en nuestro PC el cliente SilverLight y le dediquemos unas horas de nuestra vida.
Las lecciones son asequibles, en general, a cualquier persona con unos conocimientos básicos de física (y medios de inglés) y muy recomendables para cualquier alumno de ciencias del mundo.
De Richard Feynman quiero recordar (porque la suscribo) una frase sobre sus alumnos, decía que hay dos tipos de alumnos, los que no necesitan profesor (son capaces de aprender por sí mismos) y los que es inútil que lo tengan (no progresan de ninguna manera).

martes, 10 de noviembre de 2009

La historia de Internet

Cuando en los años 90 (del siglo pasado) comenzaba Internet aparecieron proyectos como Way Back Machine (hay otros proyectos de archivo pero no los citaré todos).

El objetivo era mantener un registro de la historia de la red.

La razón principal que mueve estos proyectos es documentar las publicaciones hechas por empresas y particulares en este nuevo medio de comunicación para construir la Historia de la humanidad.

Los buscadores más importantes colaboran de alguna manera en preservar las publicaciones manteniendo en sus sistemas copias de los sitios visitados durante un periodo más o menos corto. (Ver el caché de Google como ejemplo)

A medida que el coste del almacenamiento se reduce, la velocidad de las transmisiones aumenta y el acceso a las redes se va haciendo universal los que de una u otra forma colaboramos en esta obra descomunal que es Internet tenemos una responsabilidad que afecta a nuestra presencia en la red.

Es cierto que hay quien se queja de que este almacenamiento puede representar un compromiso para la privacidad de las personas, pero también es cierto que la conservación de las publicaciones en la Web constituirá parte de nuestro legado al futuro.

Por eso creo que cientos de miles de blogs y páginas personales que se dejan en la red durante años son contribuciones positivas. Y por eso creo que una de las responsabilidades de quien se arrima a un teclado para poner contenidos (buenos o malos) es hacer lo que esté en su mano para que estos contenidos merezcan la pena y perduren.

Control de seguridad en sesiones Web

Como continuación de la entradilla sobre autentificación de usuarios vamos a introducir en el servicio Web unas pocas líneas adicionales.

Para que el usuario que está autentificado no registre las páginas privadas en la caché del navegador podemos tener la tentación de poner etiquetas META con valores del tipo NO-CACHE o EXPIRES=-1.

Sin embargo creo que es una práctica mucho más ortodoxa hacer caso al fabricante del servidor IIS y leer el artículo How to prevent caching in Internet Explorer.

Para los que tengan bastante con una sola lectura les diré que la recomendación es agregar a cada una de las páginas ASP que no deseamos dejar en la caché el siguiente código:


<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>


Estas líneas es bueno agregarlas en las páginas que tienen información más sensible pero tal vez no en todas las páginas de nuestro servidor; a fin de cuentas las cachés de los navegadores sirven para no sobrecargar nuestros servidores.

Autentificación de usuarios en ASP

En un servidor IIS podemos autentificar usuarios de muchas formas.
Una de las más sencillas es utilizar un formulario en el que los usuarios introducen su nombre y su contraseña y luego verificamos este inicio de sesión contra una base de datos de usuarios.
En internet podemos encontrar mucha información sobre autentificación con ASP pero los ejemplos más sencillos se dejan atrás algunas consideraciones de seguridad.

Autentificación elemental


La forma más simple es utilizar una consulta SELECT con los datos del formulario (usuario y contraseña).

ssql = "select * from usuarios_autentificacion where nombre_usuario='" & request.form("usuario") & "' and clave_usuario='" & request.form("contrasena") & "'"

Pero es necesario verificar antes que no se han introducido en el formulario caracteres que puedan generar errores en el scritp ASP que puedan exponer nuestro sistema.

Un usuario malicioso podría utilizar el script para inyectar código en nuestro script de validación y obtener información valiosa sobre nuestro sitio o incluso hacerse con el control.

Autentificación un poco mejorada


Otra forma más elegante (y que no recarga demasiado al servidor) es verificar cada uno de los registros de la base contra los datos introducidos por el usuario:

'lectura secuencial de toda la base de datos de usuarios
Do While not rsGrupo.EOF
'hasta que coincidan las credenciales

If rsGrupo("usuario") = Request.Form("usuario") AND rsGrupo("contraseña") = Request.Form("contraseña") Then
Session("Authenticated") = 1
'en ese momento se redirige a una pagina de acceso a la sección protegida
Response.Redirect ("accedemos.asp")
Else
'si no coinciden mantenemos vacia la variable de autentificación
Session("Authenticated") = 0
Response.Redirect ("login.asp")
End If
rsGrupo.MoveNext
Loop

Este código nos permite hacer un formulario ligero, sin scripts, muy simple, en la seguridad (siempre relativa) de que será más complicado romper nuestro código inyectando caracteres no deseados en el formulario.