Elecciones 2011

domingo, abril 10, 2011
Mi opinión de los resultados hasta ahora:

Dosbox, un emulador para juegos antiguos (DOS)

sábado, marzo 19, 2011
Recientemente probé Dosbox, un emulador del sistema operativo DOS, con el ocioso fin de probar o volver a jugar videojuegos antiguos (algunos de los cuales creo que no llegan a videojuegos y se quedan en, bueno, "juegos"). Pues bien, este emulador parece funcionar bastante bien, lo probé en windows xp y en ubuntu, la instalación es rápida y pude usar la consola clásica de DOS para ejecutar los mencionados juegos. Es gratis, además de ser software libre, y se puede descargar haciendo click AQUI, o si usan un linux pueden usar un gestor de paquetes para descargarlo e instalarlo. Está disponible para varios sistemas, por lo que leí también para psp y wii.

Una vez instalado y ejecutado, hay que montar el directorio donde están los archivos (juegos) que queramos ejecutar. Si estamos en xp, creamos una carpeta "games" dentro de la carpeta donde están los archivos de Dosbox. Luego, en la consola del emulador escribimos:
  1. mount c games
  2. c:
  3. cd juego1
  4. juego1.bat
Si se está trabajando en Ubuntu, se puede crear una carpeta en una ubicación como esta "/home/Diego/games" y sólo cambiar el primer comando por:
  1. mount c /home/Diego/games
Un buen lugar donde se puede encontrar juegos para DOS es Abandonia. Pueden visitar la página en este link. Hay que fijarse que en la parte de compatibilidad esté el icono de Dosbox; hay también juegos que pueden ser ejecutados en xp sin necesidad del emulador. Diviértanse con los juegos antiguos.

Métodos PERT-CPM

sábado, febrero 19, 2011

La canción del pirata

miércoles, febrero 09, 2011
Este es un poema escrito por el Español José Ignacio Javier Oriol Encarnación de Espronceda y Delgado (sí, es un sólo nombre), un escritor del romanticismo Español, publicado en 1840. Si has escuchado a Sabina cantar la del pirata cojo probablemente hayas escuchado los versos: "Y va el capitán pirata cantando alegre en la popa, Asia a un lado, al otro Europa, y allá a su frente Estambul", pues bueno esta es una parte del mencionado poema (que dicho sea de paso encontré buscando por qué sabina y serrat decían eso). El punto es que encontré en youtube un grupo español que hizo una canción con este poema, el grupo se llama Tierra Santa, y aunque no suelo escuchar su tipo de música en este caso sí me gusta el producto y se me ha quedado pegado el estribillo del mismo por unos cuantos días ya. Aquí hay unos vídeos que encontré con imágenes de piratas del caribe; la canción está en 2 partes, recomiendo totalmente escuchar la 2da parte, la primera es un poco más bulliciosa aunque igual merece ser escuchada. Como no creo que lean el texto mejor pongo la segunda parte primero.



Este es el poema completo:

Con diez cañones por banda,
viento en popa, a toda vela,
no corta el mar, sino vuela
un velero bergantín.
Bajel pirata que llaman,
por su bravura, El Temido,
en todo mar conocido
del uno al otro confín.

La luna en el mar riela
en la lona gime el viento,
y alza en blando movimiento
olas de plata y azul;
y va el capitán pirata,
cantando alegre en la popa:
Asia a un lado, al otro Europa,
y allá a su frente Estambul:

Navega, velero mío
sin temor,
que ni enemigo navío
ni tormenta, ni bonanza
tu rumbo a torcer alcanza,
ni a sujetar tu valor.

Veinte presas
hemos hecho
a despecho
del inglés
y han rendido
sus pendones
cien naciones
a mis pies.

Que es mi barco mi tesoro,
que es mi dios la libertad,
mi ley, la fuerza y el viento,
mi única patria, la mar.

Allá muevan feroz guerra
ciegos reyes
por un palmo más de tierra;
que yo aquí tengo por mío
cuanto abarca el mar bravío,
a quien nadie impuso leyes.

Y no hay playa,
sea cualquiera,
ni bandera
de esplendor,
que no sienta
mi derecho
y dé pechos mi valor.

Que es mi barco mi tesoro,
que es mi dios la libertad,
mi ley, la fuerza y el viento,
mi única patria, la mar.

A la voz de "¡barco viene!"
es de ver
cómo vira y se previene
a todo trapo a escapar;
que yo soy el rey del mar,
y mi furia es de temer.

En las presas
yo divido
lo cogido
por igual;
sólo quiero
por riqueza
la belleza
sin rival.

Que es mi barco mi tesoro,
que es mi dios la libertad,
mi ley, la fuerza y el viento,
mi única patria, la mar.

¡Sentenciado estoy a muerte!
Yo me río
no me abandone la suerte,
y al mismo que me condena,
colgaré de alguna antena,
quizá en su propio navío

Y si caigo,
¿qué es la vida?
Por perdida
ya la di,
cuando el yugo
del esclavo,
como un bravo,
sacudí.

Que es mi barco mi tesoro,
que es mi dios la libertad,
mi ley, la fuerza y el viento,
mi única patria, la mar.

Son mi música mejor
aquilones,
el estrépito y temblor
de los cables sacudidos,
del negro mar los bramidos
y el rugir de mis cañones.

Y del trueno
al son violento,
y del viento
al rebramar,
yo me duermo
sosegado,
arrullado
por el mar.

Que es mi barco mi tesoro,
que es mi dios la libertad,
mi ley, la fuerza y el viento,
mi única patria, la mar.

Spiderman Shattered-Dimensions

domingo, febrero 06, 2011
El jueves pasado terminé un juego de PC llamado Spiderman Shattered-Dimensions, el cual trata de las aventuras de 4 versiones de spiderman. Marvel, la empresa de comics creadora del hombre araña, maneja diversos universos para sus superheroes (no sólo los que estamos acostumbrados a ver, algunos de ellos bastante extraños por cierto). Resumiendo la trama podemos decir que nuestro friendly neighborhood comete el error de patear una tabla llamada "Tabla de la orden y el caos" (hay que tener cuidado al patear cosas con nombres tan dramáticos), lo que causa problemas en diferentes realidades por lo que spidy necesitará el apoyo de sus otros yo de dichas realidades, por lo que aparte de usar al héroe normal (the amazing spiderman humildemente) se debe usar a un spiderman de los años 1930s (Noir), un spiderman con el simbiot (Ultimate) y un futurístico trepamuros (Spiderman 2099).

El juego al inicio no me pareció muy bueno porque pensé que iba a estar muy repetitivo pero luego de pasar el primer nivel me di cuenta de mi error. Este juego cuenta con unas gráficas muy buenas, que dan la sensación de estar jugando dentro de un cómic, además cada una de las dimensiones tiene un toque diferente: la del spiderman normal es más orientado a un cómic, la de los años 30 es más oscuro, incluso muchas partes son en blanco y negro, la del spiderman simbiot es bastante brillante (parece el pelo de goku en dragon ball GT) y la futurística es muy colorida y psicodélica.

Cada nivel (13 en total) cuenta con un enemigo diferente, básicamente los clásicos de spiderman pero adaptados a su respectiva realidad, y en cada una de las realidades hay que sacar provecho de las habilidades únicas que tiene cada versión como usar poderosos ataques con tela de araña, regenerarse, usar furia alienígena o desacelerar el tiempo. Para vencer a los jefes casi siempre hay que hacer uso de elementos de la escenografía, ya que a puño limpio difícilmente se les vence, algo que se suele ver en las peleas de la araña.

Aparte de la buena jugabilidad (me parece genial el realismo al momento de balancearse para avanzar) se puede disfrutar de los constantes comentarios del súper héroe más cómico, quien no se puede guardar un chiste ni al enfrentar el último nivel; y también está la narración del propio Stan Lee, creador de nuestro arácnido amigo.

Totalmente recomendable el juego, en especial si ya has jugado y te gustó algún otro juego anterior del sorprendente hombre araña (en mi caso jugué hace mucho spiderman 1 y 2 para playstation one, de lo mejor). No es muy largo, se puede pasar tranquilamente en unas 15 horas de juego, menos si se juega en modo fácil o normal, aunque si se quiere terminar con las misiones secundarias de cada nivel va a tomar más tiempo. Aquí dejo un Gameplay que además trae la canción clásica pero cantada por Aerosmith.


Por cierto, olvidaron poner algunas versiones como spiderham.

Valor Ganado - Gestión de Proyectos

martes, febrero 01, 2011
Unas diapositivas sobre valor ganado, valor planeado, valor real, varianzas, índices y pronósticos.

Tutorial de Ping Pong con AS3 - Parte 1

domingo, enero 30, 2011
En este tutorial vamos a crear un juego sencillo de ping pong, con una mecánica similar al clásico juego que se puede ver en la imagen, pero un poco más llamativo y menos prehistórico.

Lo primero que debemos hacer es abrir el Adobe Flash, en mi caso tengo el CS4, y crear nuevo Archivo de Flash (AS 3.0). En el panel de propiedades cambiar el tamaño del lienzo a 450 x 300 px, que es el tamaño con el que vamos a trabajar el juego.


Luego vamos a agregar una imagen para que sea el fondo del juego, asegurense que cubra todo el lienzo, no importa si se pasa.


Ahora hay que dibujar un rectángulo que va a ser la barra que moverá el jugador para evitar que la pelota pase su lado (basta con dibujar uno ya que la otra barra será igual). Podemos crear otra capa en la parte inferior haciendo click en el pequeño ícono de hoja doblada; hay que poner la capa encima de la que contiene la imagen de fondo para evitar dibujar detrás de la imagen. Luego de dibujar la digura presionamos F8 para "convertir en símbolo", le ponemos por nombre "Player", tipo "Clip de película" y presionamos Aceptar; con eso ya tenemos la primera barra lista.

Para crear la segunda barra hay ir a la "Biblioteca" y arrastrar el símbolo "Player" al escenario, ubicándolo a la derecha.
Lo siguiente es crear la Document Class, que es la clase en actionscript principal. Para esto ir a "Archivo", "Nuevo Documento", "Archivo ActionScript". En el nuevo archivo escribimos el siguiente código, con lo que estamos creando una clase a la que llamaremos "Engine".
package
{
import flash.display.MovieClip;

public class Engine extends MovieClip {
public function Engine() : void
{

}
}
}
Para agregarla como clase principal hay que escribir "Engine" en la parte "Clase" del panel "Propiedades".

Ahora vamos a crear una clase a la que llamaremos "Player". Repetimos el proceso anterior pero esta vez ingresamos el siguiente código.
package
{
import flash.display.MovieClip;

public class Player extends MovieClip {
//con esta variable indicamos cuántos
//pixeles debe moverse la barra
//a mayor número mayor velocidad
var velocidad:Number=2;

public function Player() : void
{
}

public function sube():void{
//reducir el valor de "y" para subir
//validación para no subir más que
//el inicio de la pantalla
if(y-velocidad<0){
y=0;
}else{
y=y-velocidad;
}
}

public function baja():void{
//aumentar el valor de "y" para bajar
//validación para no bajar más que
//el final de la pantalla
if(y+velocidad>300-height){
y=300-height;
}else{
y=y+velocidad;
}
}
}
}
Hecho esto hay que asignar esta clase al símbolo Player. En la "Biblioteca" hacemos click derecho en Player, propiedades y donde dice "Clase" escribimos Player. De esta manera el símbolo y la clase en actionscript está relacionados.

Vamos a agregar un método llamado onLoop a la clase Engine y haremos que se ejecute en cada evento Enter_Frame, es decir, en cada fotograma de la película flash. El número de fotogramas por segundo se puede modificar en el panel "Propiedades".
package
{
import flash.display.MovieClip;
import flash.events.Event;

public class Engine extends MovieClip
{
public function Engine() : void
{
addEventListener(Event.ENTER_FRAME,onLoop);
}
function onLoop(e:Event){
trace("Hola");
}
}
}
Hay que asignar un nombre a la instancia de la clase Player que tenemos en el escenario (el que dibujamos al inicio). Elegimos el símbolo y en el panel de "Propiedades" escribimos en el campo de texto superior "player1", con minúsculas para identificar que es un objeto. Hacemos lo mismo para la otra barra, pero en este caso le ponemos "player2".


Ahora vamos a dar un poco de movimiento a la barra. Para identificar las pulsaciones de teclado es mejor usar una clase de utilidad llamada KeyObject de Senocular la cual es más exacta que usar el evento normal que trae AS3 (El código de esta clase está incluido en el .rar al final del post).

Modificaremos el método onLoop de Engine para que si el jugador presiona "w" la barra suba, invocando a su método sube, y si presiona "s" la barra baje llamando al método baja. Para la barra derecha usaremos las flechar direccionales.
Para probar el movimiento de la barra les recomiendo minimizar el CS4 y ejecutar el .swf que se ha generado porque al pulsar "w" o "s" el programa puede confundirlo con atajos de teclado.
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Keyboard;

public class Engine extends MovieClip
{
private var key:KeyObject;

public function Engine() : void
{
//Se crea el objeto KeyObject
key = new KeyObject(stage);
//Seteamos la velocidad de player1 y 2
player1.velocidad=8;
player2.velocidad=8;
//Se asigna el método onLoop al evento Enter_Frame
addEventListener(Event.ENTER_FRAME,onLoop);
}
function onLoop(e:Event){
//W=87
if(key.isDown(87)){
player1.sube();
}
//S=83
if(key.isDown(83)){
player1.baja();
}

if(key.isDown(Keyboard.UP)){
player2.sube();
}
if(key.isDown(Keyboard.DOWN)){
player2.baja();
}
}
}
}
El resultado sería algo así:



Esto es todo para la primera parte de este tutorial, espero les haya servido y haya sido claro. Puede descargar AQUI el código fuente.