grupo-sepultura
grupo-sepultura

Pues si, como lo ven, “dicen” que Sepultura viene a Cuba a dar un par de conciertos, bueno, mejor les hago un poco de historia.

Hace unos días, un amigo me dijo, – nos vemos en el concierto de Sepultura…! – Yo, claro que ni caso le hice y ni siquiera le dije que no me jodiera, que el horno no esta pa galleticas y ayer me encuentro con otro y me dice lo mismo, — que donde estaba yo –, que eso lo dijeron el la TV, en la radio, en el periódico y por todos los lugares solo se habla de eso. Entonces me di a la tarea de confirmarlo por mi mismo.

La noticia no se de que dia es, pero si, el Periódico Granma, Órgano Oficial del Comité Central del Partido Comunista de Cuba publicó la noticia y según la fuente, los brasileños ofrecerán un concierto el día 18 de este mes en la Tribuna Antimperialista, en el vedado capitalino y otro el día 20, en la ciudad de Santa Clara, centro del país, pero es aquí, donde sigo yo haciendo algo de historia.

Recuerdo cuando tenia como 15 años, se corrió la bola de que los Iron Maiden venían a Cuba, incluso recuerdo que un amigo de aquella época tenia un poster promocional de la gira, donde aparecían las banderas de los países a los que asistiría la banda en su tour por Latino América y la última era la nuestra. ¿Qué pasó que no tocaron? Pues imagínense, música americana, en ese tiempo en Cuba era completamente censurada y mas con esa onda de pelos largos. Otra fue hace menos, alrededor de 10 años, tal vez 12, que hasta dieron la fecha de la venta de las entradas en el Teatro Karl Marx, para un concierto que sería protagonizado por Bon Jovi, y si no me creen, le pueden preguntar a Juanito Camacho, locutor del escuchadísimo espacio Disco Ciudad, de la emisora Radio Ciudad de la Habana, que yo me enteré por el, que le dio una propaganda mas que a la Coca Cola ¿Qué pasó que no tocaron? Pues imagínense, música americana, en ese tiempo en Cuba era completamente censurada y mas con esa onda de pelos largos.

Por estos lares han aparecido míticos personajes, como el DIOS Robert Plan, Brian May y otros tantos, pero siempre en calidad de turistas. De lo único que tengo constancia es del concierto ofrecido por Audio Slave, en la misma Tribuna Antimperialista, de eso hace ya un par de años.

¿Será que ya no se preocupan por los pelos largos? ¿Será que están pensando en nosotros los frikis? ¿Será que se avecinan cambios en nuestro país y nos quieren tener en cuenta? ¿O será que traen a Sepultura por su onda amazonica y su lucha por esas tribus, que al final, es luchar contra todo lo que huela a capitalismo? ¿Reabrirán el Patio de María algún día? Ver para creer…

PERO COÑO…! VIENE SEPULTURA…!

Les juro que alucino, yo aun no lo puedo creer, y saben, lo creeré cuando los vea delante de mi, pues este tipo de cosas aquí en Cuba, siempre traen bolas adversas, pues otro amigo me dijo que eso no es seguro aun, que hace falta un patrocinador (un yuma que ponga el dinero) y que no hay nada confirmado aun.

De todas formas no quiero ser pesimista, YO QUIERO VER A SEPULTURA EN VIVO, tenerlos delante de mi, luchar mi autógrafo, vivir la euforia que provocan estos DIOSES del Trash Metal latino y mundial con su música, que la adrenalina se desborde, que retumbe la Habana y se derrumbe también en caso que sea necesario, que se enteren en el mundo entero, que en Cuba no solo es a golpe de salsa y reaggeton, que esto está lleno de frikis metaleros y que vamos a bajar esa noche a tomar lo que por derecho propio nos toca y merecemos, un concierto de una banda que es puntera en la escena mundial y en toda la galaxia.

Ya iré siguiendo la noticia y contándoles a medida que la cosa avance. Si esto llegara a ser realidad, ni el 18 ni el 20 ni días adyacentes cuenten conmigo, pues no estaré disponible.

Ahora me salta una duda ¿Vendrá SLAYER algún día a Cuba?

\m/

Hola nuevamente, aquí estoy con otra de las mías… Esta vez vamos a hacer un test, como esos que sueles intentar pasar mientras pierdes el tiempo en Internet, en lugar de ponerte a estudiar ¬¬.

Bueno, en realidad estaba aburrido y como no tenia nada que hacer, pensé en ponerme a ver de que manera podía crear uno de estos, con el objetivo principal de aprender yo y para brindárselo a ustedes aquí, entonces al grano y basta ya de muela.

Introducción

Nuestro script constara de un formulario con varias preguntas (3 para este ejemplo) y tres posibles respuestas (puedes agregar las que quieras), de ellas solo una será la correcta y la nota o evaluación será en base a 5 puntos.

Algo que debo explicar entes de presentar el código, es que para dar la nota al examinado, lo haremos por la bien conocida cuenta para calcular promedio, la suma del valor de las respuestas divididas por la cantidad de preguntas. Les comento esto, pues me paso, que yo le ponía a las respuestas incorrectas el valor 0 (value=”0″), pues de lo contrario me daría una evaluación falsa, pero esto me dio el palo a la hora de validar el formulario para obligar el examinado a responder todas las preguntas, pues evaluaba el valor cero como vacío, entonces me lo resolví dándole valor 1 (value=”1″) y sustituyéndolo por cero con str_replace.

El código

<?php
// como siempre
// comprobamos si ha sido enviado el formulario
if(isset($_POST['evaluar']) && $_POST['evaluar'] == ‘Evaluar’) {

// y que no llegue vacío
if(!empty($_POST['respuesta_1']) && !empty($_POST['respuesta_2']) && !empty($_POST['respuesta_3'])){

// asignamos los valores a la variables que usaremos
// y sustituimos los 1 por 0, en caso de respuestas incorrectas
$respuesta_1 = str_replace(1, 0, $_POST['respuesta_1']);
$respuesta_2 = str_replace(1, 0, $_POST['respuesta_2']);
$respuesta_3 = str_replace(1, 0, $_POST['respuesta_3']);

// calculamos el promedio
// y redondeamos el resultado (round()) para evitar números decimales
$promedio = round(($respuesta_1 + $respuesta_2 + $respuesta_3) / 3);

// usamos la sentencia switch
// para darle la evaluación al examinado
switch ($promedio){
case 5:
$nota = “Usted tiene $promedio puntos, Excelente…!”;
break;
case 4:
$nota = “Usted tiene $promedio puntos, Bien…!”;
break;
case 3:
$nota = “Usted tiene $promedio puntos, Por los pelos…!”;
break;
case 2:
$nota = “Usted tiene $promedio puntos, Suspenso, lo esperamos el próximo curso…!”;
break;
case 1:
case 0:
$nota = “Definitivamente, este curso no es para usted…!”;
break;
}

echo $nota;

}else{
// mensaje de error en caso que no se respondan todas las preguntas
echo “Debe responder todas las preguntas”;
}
}
?>
<!– el formulario –>
<form name=”examen” action=”<?php $_SERVER['PHP_SELF']; ?>” method=”post”>
<p>Pregunta 1</p>
<input type=”radio” value=”1″ name=”respuesta_1″ /> mal<br />
<input type=”radio” value=”5″ name=”respuesta_1″ /> bien<br />
<input type=”radio” value=”1″ name=”respuesta_1″ /> mal<br />
<p>Pregunta 2</p>
<input type=”radio” value=”1″ name=”respuesta_2″ /> mal<br />
<input type=”radio” value=”5″ name=”respuesta_2″ /> bien<br />
<input type=”radio” value=”1″ name=”respuesta_2″ /> mal<br />
<p>Pregunta 3</p>
<input type=”radio” value=”1″ name=”respuesta_3″ /> mal<br />
<input type=”radio” value=”5″ name=”respuesta_3″ /> bien<br />
<input type=”radio” value=”1″ name=”respuesta_3″ /> mal<br />
<p><input type=”submit” name=”evaluar” value=”Evaluar” /></p>
</form>

NOTA: Como mejor se ve el funcionamiento de este script, es poniendo 5 o mas preguntas en el formulario o dando respuestas regulares que tengan valor 3 (value=”3″), pues como se muestra aquí, la función round() nunca devolverá el promedio con valor 4.

Conclusiones

Para terminar, pues lo de siempre, la esperanza de que algún aburrido pase por aquí y esto le sirva de algo y en lugar de ponerse a llenar un test, que haga el suyo propio y lo cuelgue en su web para hacer que los demás pierdan el tiempo xDDD.

Y decirles, que la dudilla de que el cero se enviara como un valor vacío, la resolví como siempre en Foros del Web, en este post: Que el cero no sea un valor vacío.

Saludos y suerte

Hay preguntas que no se hacen y respuestas que no se dan…

Úsese cuando se le haga una pregunta que conlleve una respuesta embarazosa, generalmente frente a un colectivo. Póngase de pie, hable alto, con firmeza, pero no grite. La atención de los demás se desviará hacia lo contundente de la frase y la expresión de se rostro, mirada firme a los ojos de quien le ha formulado dicha pregunta, quedando casi en el olvido la misma y quien la recuerde, ya no querrá saber cual seria su contestación, por miedo a recibir otra de estas.

Yo les aseguro que funciona, siempre y cuando se use inteligentemente y con mucho tacto.

Espero les sirva este consejito… :P

Desde que me registre en twitter hace ya algunos meces, publicaba manualmente allí las entradas de mi Blog, hasta que un día, siguiendo la EURO 2008, me di cuenta que lo que suponía lógico y no había encontrado, realmente existe, pues siempre me dije que debía haber alguna forma de conectar mis entradas automáticamente a twitter.

twitterfeedtwitterfeed.com nos brinda una herramienta que permite registrar las entradas de tu Blog a tu cuenta en twitter. Lo único que requieres para ello es tener una cuanta OpenID, puedes usar tu usuario de Yahoo!, Blogger, Technorati, AOL, Flickr, entre otros y si no lo tienes, puedes crearte uno en Vidoop, que para mi fue la parte mas divertida. Además, que puedes crearte varios twitterfeed en tu cuenta.

En fin, creo que es una buena opción y una buena manera de usar twitter.

Esta siempre fue una de mis dudas en mis inicios, hasta que un día encontré este interesante tutorial en MySQL Hispano, pero les juro que no entendí mucho hasta que un amigo me explico como hacerlo usando phpMyAdmin, y les aseguro que es realmente sencillo, por eso quiero transmitirles mi experiencia y mostrarles como se hace, pero de manera gráfica, para que sea de fácil entendimiento para todos. De todas formas recomiendo fuertemente el tutorial de que les hablo antes.

Una pequeña introducción:

Para este ejemplo usaremos la clásica Base de Datos Padres a Hijos, para así lograr al final una relación de uno (Padre) a varios (Hijos) y no complicarnos con un sistema complejo.

La Base de Datos:

Asumo al lector familiarizado con phpMyAdmin, así que tratare de ir los más directamente al asunto.

Nuestra Base de Datos, como ya vimos, la llamaremos padres_hijos y tendrá la siguiente estructura:

-- Base de datos: `padres_hijos`
– Estructura de tabla para la tabla `padres`
CREATE TABLE `padres` (
`padre_ID` int(11) NOT NULL auto_increment,
`padreNombre` varchar(25) NOT NULL,
PRIMARY KEY (`padre_ID`)
) ENGINE=InnoDB ;
– Estructura de tabla para la tabla `hijos`
CREATE TABLE `hijos` (
`hijo_ID` int(11) NOT NULL auto_increment,
`hijoNombre` varchar(25) NOT NULL,
`hijoPadre_ID` int(11) NOT NULL,
PRIMARY KEY (`hijo_ID`)
) ENGINE=InnoDB ;

Como ven, lo que hemos hecho es simplemente crear un par de tablas. La tabla padres tiene un par de campos, padre_ID y padreNombre. Por su parte, la tabla hijos, tiene tres campos, hijo_ID, hijoNombre e hijoPadre_ID, este último será quien nos sirva para hacer nuestra relación

NOTA: Fíjense que el campo hijoPadre_ID es tipo INT, de lo contrario, nos enviará un error al intentar crear llaves foráneas utilizando este campo.

Creando un campo INDICE:

Una vez logrado lo anterior, ya podemos crear la relación entre ambas tablas. Para ello vamos a la estructura de la tabla hijos y creamos un INDICE de una columna:

indice-paso-1

En el siguiente paso, escogemos el tipo de índice, que será INDEX y el campo que utilizaremos: hijoPadre_ID:

indice-paso-2
Damos clic sobre el botón Grabar:

indice-paso-3

Y ya tenemos nuestra tabla lista para pasar a la siguiente fase (perdón esto de la fase, pero son los aires de la EURO 2008 :P)

Logrando la Integridad Referencial:

Para lograr la Integridad Referencial, que es nuestro objetivo principal, debemos ir primeramente a la vista de relaciones, por su puesto, en la tabla hijos:

vista-de-relaciones-paso-1

Una vez aquí, escogemos el campo que vamos a relacionar y que previamente convertimos en un INDICE y recuerden que tiene que ser de tipo INT:

vista-de-relaciones-paso-2

Elegimos las opciones ON DELETE: CASCADE y ON UPDATE: CASCADE, esto asegurará que si borramos o actualizamos algún registro de la tabla padre, todos los registros de la tabla hijos que estén relacionados con este, también se borren o actualicen, según la acción. Una vez mas, hacemos clic en Grabar y todo estará listo:

vista-de-relaciones-paso-3

Conclusiones:

La estructura final de la Base de Datos será la siguiente:

-- Base de datos: `padres_hijos`

– Estructura de tabla para la tabla `padres`
CREATE TABLE `padres` (
`padre_ID` int(11) NOT NULL auto_increment,
`padreNombre` varchar(25) NOT NULL,
PRIMARY KEY (`padre_ID`)
) ENGINE=InnoDB ;
– Estructura de tabla para la tabla `hijos`
CREATE TABLE `hijos` (
`hijo_ID` int(11) NOT NULL auto_increment,
`hijoNombre` varchar(25) NOT NULL,
`hijoPadre_ID` int(11) NOT NULL,
PRIMARY KEY (`hijo_ID`),
KEY `hijoPadre_ID` (`hijoPadre_ID`)
) ENGINE=InnoDB ;
– Filtros para la tabla `hijos`

ALTER TABLE `hijos`
ADD CONSTRAINT `hijos_ibfk_1`
FOREIGN KEY (`hijoPadre_ID`)
REFERENCES `padres` (`padre_ID`)
ON DELETE CASCADE ON UPDATE CASCADE;

Como se puede ver, la tabla hijos a cambiado su estructura, ahora, además de la llave primaria (PRIMARY KEY) hijo_ID, tenemos una llave externa o foránea (KEY) hijoPadre_ID.

Ahora, lo más interesante de todo es la última consulta ALTER TABLE, que intentare explicar, desde mis modestos conocimientos:

ALTER TABLE `hijos`: Hacemos un cambio a la tabla hijos.
ADD CONSTRAINT `hijos_ibfk_1`: Añadimos una restricción, aquí con solo poner hijos es suficiente, pero al exportar la estructura con phpMyAdmin, automáticamente pone hijos_ibfk_1 :/
FOREIGN KEY (`hijoPadre_ID`): La llave externa será el campo hijoPadre_ID.
REFERENCES `padres` (`padre_ID`): Que hace referencia al campo padre_ID de la tabla padres.
ON DELETE CASCADE ON UPDATE CASCADE: Cuando se borre o actualice algún registro de la tabla padre, se afectaran los registros relacionados de la tabla hijos

Una vez más espero haber sido útil y recuerden que los comentarios siempre serán bien recibidos.

Para profundizar en el tema, les recomiendo las siguientes lecturas:

Saludos y Suerte.