jueves, 18 de junio de 2009

Some motivation required.

some_motivation_required_black

Si que hace falta... muchas gracias a la tropa de los locos por recordarme que hay que moverme del sofá con espátula y de paso felicitarme el cumpleaños con unos pocos meses de retraso :D

martes, 9 de junio de 2009

Mi primer curro!

Bueno, en realidad no es mi primer primer curro, pero si el primero como informático :D. Y si, claro, las condiciones dejan mucho que desear: 5 horas al día sin ver un duro... soy un esclavo!!! Pero bueno, de momento como son practicas obligatorias de Forman (ver enlace en post anterior) para poder obtener el título del curso de Experto en Desarrollo Java, me lo tomaré con filosofía e intentaré aprender todo lo que pueda sin necesidad de tomar ninguna responsabilidad ni deslomarme en demasía.

La empresa es ARI, y es el brazo tecnológico de grupo Vértice. Grupo que empezó con un par de academias de idiomas, los que sois de Málaga os sonará Keops-Kefren, y actualmente tiene un pequeño emporio de la formación y el e-learning. En un principio ARI se constituyó para dar soporte informático a las diversas empresas del grupo, pero en la actualidad tiene una mayor autonomía y se dedica además a desarrollar y mantener aplicaciones y páginas webs de clientes externos.

malaga

La empresa reside en Málaga y tiene su sede en el Parque Tecnológico de Andalucía (PTA), la verdad es que no me pilla muy lejos de casa, aunque el trayecto es a veces pesado cuando hay caravana. Después del primer día, la verdad, es que me he llevado una buena impresión, no parece haber malos rollos entre compañeros y tiene pinta de estar todo medio organizado, o al menos así me ha parecido. Aunque tiene algunas normas un poco arcaicas, como tener que ir con traje chaqueta y corbata  (aunque en verano me he librado y sólo tengo que ir con camisa y pantalón de vestir), no poder escuchar música mientras se trabaja, o no poder colocar objetos personales en tu lugar de trabajo.

Para empezar no lo veo mal y me han comentado que al terminar las 200 horas de practicas existe la posibilidad de realizar practicas universidad-empresa, 360€ por las mismas horas de trabajo, pasando de la esclavitud a la precariedad laboral xD. Pero bueno, como en todo hay opiniones de diverso tipo, aunque muchas coinciden en que no es un mal sitio para comenzar. A ver como discurre mi aventura, que, como mínimo, ya podré rellenar el hueco de Experiencia Profesional en el curriculum ^^.

jueves, 4 de junio de 2009

Sun Certified Java Programmer

En eso hemos dedicado nuestros esfuerzos mis compañeros y yo los últimos meses. La nota de prensa dice así:

Los orgullosos miembros de la organización Burto se complacen en anunciar que tras la el exitoso paso por el curso de Experto en Desarrollo Java J2EE impartido en Forman, han alcanzado un nuevo hito en sus carreras profesionales al superar con éxito el examen de Certificación Sun como Programadores de Java (SCJP)

scjp1

Esperemos que estos méritos alcanzados nos traigan consigo un prometedor futuro profesional y podamos convertirnos en unos informáticos de provecho.

Continuar leyendo...

Actualización: Ya me ha llegado el diploma y un carnet que constatan que soy un programador certificado en java. Dejo unas capturillas:

DSC00437

DSC00438

jueves, 23 de abril de 2009

PFC: Ms. Pac-Man

El primer juego sujeto a investigación se trata de Ms. Pac-Man, videojuego lanzado en 1981 como una secuela no autorizada de Pac-Man. El juego es casi idéntico al original. El jugador tiene que ir comiendo píldoras y esquivar fantasmas. Las píldoras de mayor tamaño permiten comerse a los fantasmas y hacen que éstos huyan en la dirección contraria. A medida que se van completando niveles, se va incrementando la dificultad.

Ms Pacman logo

La mayor diferencia con respecto al Pac-Man original, es que, al contrario que este, Ms. Pac-Man es un juego no determinista. Además, es bastante difícil para la mayoría de los jugadores. Esto hace que desarrollar una Inteligencia Artificial para este juego se convierta en un autentico reto. El récord mundial para un jugador humano (en la versión original de arcade) es actualmente de 921360 puntos. ¿Podría alguien desarrollar un agente software capaz de superar ese record?

Partiendo desde este interrogante, Simon M. Lucas, doctor en informática y miembro de la IEEE Computational Intelligence Society lleva organizando desde hace varios años una competición internacional cuyo objetivo es desarrollar una inteligencia capaz de controlar a la señora Pac-man y hacer que ésta alcance la mayor puntuación posible. Para ello, el señor Lucas ha creado un kit de desarrollo lo suficientemente completo para que los competidores puedan centrarse casi en exclusiva en la concepción de la inteligencia artificial.

El kit en cuestión está programado en Java y su modo de interacción es el siguiente: 15 veces por segundo el programa recibe información sobre el juego (posición de los fantasmas, del personaje, de las píldoras, etc), dicha información es procesada y la inteligencia artificial debe enviar una orden para decirle al personaje hacia que dirección tiene que moverse. Para ello, el agente realiza capturas de pantalla del emulador que usemos para, posteriormente, analizar su contenido. Es decir, el código del juego no se toca, y se carece de información de cómo están programadas las inteligencias de los fantasmas, se debe de realizar el programa usando éste sistema controlado por capturas de pantalla. El modo de funcionamiento puede entenderse mejor observando el siguiente video:


Así, mi primera meta será dotar a la señora Pac-man de una inteligencia básica creada por mí, implementándola con de una máquina de estados sencilla. Estoy ya con ello y cuando tenga otro hueco libre iré mostrando los avances.

miércoles, 18 de febrero de 2009

PFC: Presentación

Inteligencia Computacional para Jugadores No Hms pacmman2umanos de Videojuegos, este es el nombre de mi proyecto de fin de carrera. Quizás suene demasiado rimbombante, pero es que resulta  un poco complicado resumir en un simple título un hecho poco común, y es, que el ordenador juegue él sólo o contra si mismo y que lo haga de la mejor forma posible... al leer esto seguro que a más de uno  le han venido estas imágenes a la cabeza.

Puede que el termino "no humanos"  no sea el más correcto, ya que resulta bastante ambiguo, pero es el que me pareció más  aproximado a lo que quería expresar. En un principio iba a llamarse Inteligencia Computacional de NPCs, pero el significado de NPC suele referirse a personaje no jugador  y creo que resultaba erróneo, ya que, en este caso, si hay un personaje que juega, el ordenador.

La Inteligencia Computacional es una rama de la Inteligencia Artificial que combina elementos de aprendizaje, adaptación, evolución y lógica difusa para crear programas que son, en cierto sentido, inteligentes. Las investigaciones sobre inteligencia computacional no rechazan los métodos estadísticos, pero cuando los emplean, suelen ser vistos desde un ángulo diferente (como es el caso de la lógica difusa). Las principales ramas que componen la inteligencia computacional son:

  • Redes Neuronales.
  • Sistemas Difusos.
  • Computación evolutiva, incluyendo algoritmos genéticos y programación genética.
  • Inteligencia de Enjambre.

En el ámbito académico y científico existen multitud de grupos de investigación y se celebran cada año varios congresos enfocados (parcial o totalmente) a la aplicación de la Inteligencia Computacional en Juegos, como son el IEEE World Congress on Computational Intelligence, el IEEE Congress on Evolutionary Computation, o el IEEE Symposium on Computational Intelligence and Games. En el marco de estas investigaciones se encuentra una serie de competiciones que proporcionan una oportunidad ideal para poner a prueba arquitecturas y algoritmos y compararlos con los de otros investigadores de todo el mundo. Competiciones típicas en este tipo de congresos son la sustitución del jugador humano por otro controlado por una inteligencia artificial en juegos como Ms. Pac-Man, Othello simuladores de carreras de coches, etc. Es a raíz de estas tipo de competiciones donde surgió la inspiración de mi director de proyecto, quien me propuso esta  traca para poner punto y final a mi paso por la universidad.

El objetivo de mi proyecto consiste en aplicar diferentes técnicas de inteligencia computacional (o hibridaciones de las mismas) que doten de inteligencia a un jugador controlado por el ordenador para que este consiga alcanzar el mejor resultado en uno o varios juegos. La intención es empezar con técnicas sencillas como es la implementación de maquinas de estado que controlen el comportamiento del jugador, para un posterior refinamiento y mejora a través de técnicas más complejas como puede ser la implementación de algoritmos genéticos.

Bueno, pues aquí concluye la presentación. Mi intención es ir desglosando poco a poco los avances que vaya llevando a cabo. Por ahora no puedo contar mucho más, ya que, básicamente acabo de empezar.

lunes, 2 de febrero de 2009

¡Maldito, maldito creador!

Descansemos; una pesadilla puede envenenar nuestro sueño.
Despertamos; un pensamiento errante nos empaña el día.
Sentimos, concebimos o razonamos; reímos o lloramos.
Abrazamos una tristeza querida o desechamos nuestra pena;
Todo es igual; pues ya sea alegría o dolor,
El sendero por el que se alejara está abierto,
El ayer del hombre no será jamás igual a su mañana.
¡Nada es duradero salvo la mutabilidad!

Era casi mediodía cuando llegué a la cima. Permanecí un rato sentado en la roca que dominaba aquel mar de hielo. La neblina lo envolvía, al igual que a los montes circundantes. De pronto, una brisa disipó las nubes y descendí al glaciar. La superficie es muy irregular, levantándose y hundiéndose como las olas de un mar tormentoso, y está surcada por profundas grietas. Este campo de hielo tiene casi una legua de anchura, y tardé cerca de dos horas en atravesarlo. La montaña del otro extremo es una roca desnuda y escarpada. Desde donde me encontraba, Montanvert se alzaba justo enfrente, a una legua, y por encima de él se levantaba el Mont Blanc, en su tremenda majestuosidad. Permanecí en un entrante de la roca admirando la impresionante escena. El mar, o mejor dicho: el inmenso rio de hielo, serpenteaba por entre sus circundantes montañas, cuyas altivas cimas dominaban el grandioso abismo. Traspasando las nubes, las heladas y relucientes cumbres brillaban al sol. Mi corazón, repleto hasta entonces de tristeza, se hinchó de gozo y exclamé:

- Espíritus errantes, si en verdad existís y no descansáis en vuestro estrechos lechos, concededme esta pequeña felicidad, o llevadme con vosotros como compañero vuestro, lejos de goces de la vida.

No bien hube pronunciado estas palabras, cuando vi en la distancia la figura de un hombre que avanzaba hacia mi a una velocidad sobrehumana saltando sobre las grietas del hielo, por las que yo había caminado con cautela. A medida que se acercaba, su estatura, su estatura parecía sobrepasar la de un hombre. Temblé, se me nubló la vista y me sentí desfallecer; pero el frío aire de las montañas pronto me reanimó. Comprobé cuando la figura estuvo cerca -odiada y aborrecida visión-, que era el engendro que había creado. Temblé de ira y horror, y resolví aguardarlo y trabar con él un combate mortal. Se acercó, su rostro reflejaba una mezcla de amargura, desdén y maldad, y su diabólica fealdad hacían imposible el mirarlo, pero apenas me fijé en esto. La ira y el odio me habían enmudecido, y me recuperé tan sólo para lanzarle las más furiosas expresiones de desprecio y repulsión.

- Demonio -grité-, ¿osas acercarte? ¿No temes que desate sobre ti mi terrible venganza? Aléjate, ¡insecto despreciable! Mas no, ¡detente! ¡Quisiera pisotearte hasta convertirte en polvo, si con ello, con la abolición de tu miserable existencia, pudiera devolverles la vida a aquellos que tan diabólicamente has asesinado!

- Esperaba este recibimiento -dijo el demoníaco ser-. Todos los hombres odian a los desgraciados. ¡Cuánto, pues, se me debe odiar a mí que soy el más infeliz de los seres vivientes! Sin embargo, vos, creador mío, me detestáis y me despreciáis, a mí, vuestra criatura, a quien estáis unidos por lazos que sólo la aniquilación de uno de nosotros romperán. Os proponéis matarme. ¿Cómo os atrevéis a jugar así con la vida? Cumplid vuestras obligaciones para conmigo, y yo cumpliré las mías para con vos y el resto de la humanidad. Si aceptáis mis condiciones, os dejaré a vos y a ellos; pero si rehusáis, llenaré hasta saciarlo el buche de la muerte con la sangre de tus amigos.

- ¡Aborrecible monstruo!, ¡demonio infame!, los tormentos del infierno son un castigo demasiado suave para tus crímenes. ¡Diablo inmundo!, me reprochas haberte creado; acércate, y déjame apagar la llama que con tanta imprudencia encendí.

Mi cólera no tenía límites; salté sobre él, impulsado por todo lo que puede inducir un ser a matar a otro. Me esquivó fácilmente y dijo:

- ¡Serenaos! Os ruego me escuchéis antes de dar rienda suelta a vuestro odio. ¿Acaso no he sufrido bastante que buscáis aumentar mi miseria? Amo la vida, aunque sólo sea una sucesión de angustias, y la defenderé. Recordad: me habéis hecho más fuerte que vos; mi estatura es superior y mis miembros más vigorosos. Pero no me dejaré arrastrar a la lucha contra vos. Soy vuestra obra, y seré dócil y sumiso para con mi rey y señor, pues lo sois por ley natural. Pero debéis asumir vuestros deberes, los cuales me adeudáis. Oh Frankenstein, no seáis ecuánime con todos los demás y os ensañéis sólo conmigo, que soy el que más merece vuestra justicia e incluso vuestra clemencia y afecto. Recordad que soy vuestra criatura. Debía ser vuestro Adán, pero soy más bien el ángel caído a quien negáis toda dicha. Doquiera que mire, veo felicidad de la cual sólo yo estoy irrevocablemente excluido. Yo era bueno y cariñoso; el sufrimiento me ha envilecido. Concédeme la felicidad, y volveré a ser virtuoso.

- ¡Aparta! No te escucharé. No puede haber entendimiento entre tu y yo; somos enemigos. Apártate, o midamos nuestras fuerzas en una lucha en la que sucumba uno de los dos.

- ¿Cómo podré conmoveros?; ¿no conseguirán mis suplicas que os apiadéis de vuestra criatura, que suplica vuestra compasión y bondad? Creedme, Frankenstein: yo era bueno; mi espíritu estaba lleno de amor y humanidad, pero estoy solo, horriblemente solo. Vos, mi creador, me odiáis. ¿Qué puedo esperar de aquellos que no me deben nada? Me odian y me rechazan.

Frankenstein o, El Moderno Prometeo.

Mary W. Shelley

martes, 13 de enero de 2009

2009

Qué espero de este año, o, cuales son mis objetivos:

- Aprobar la asignatura que me queda.

- Empezar el proyecto de fin de carrera y ACABARLO!

- En consecuencia de los dos objetivos anteriores: TERMINAR LA CARRERA!

Este es mi objetivo prioritario, y estad seguros que cuando lo cumpla se enterará hasta el tato. Montaré una fiesta powa con los amigos, con una alta inversión en bebidas espirituosas. También invitaré a mi familia a comer pescaito frito o, algo, incluso, de más calidad (la hermandad no escatima en gastos cuando la ocasión lo requiere). Hace ya mucho que empecé y ha llegado la hora de acabar. Éste tiene que ser el año. No cumplir esto lo consideraré como un fracaso y me flagelaré en consecuencia.

Otros objetivos que me propongo para este año:

- Comenzar mi vida laboral como informático y empezar a rellenar curriculum.

- Fugarme de casa e irme a la aventura (probablemente a la capital del reino).

- Plantearme una nueva actividad en el desarrollo de videojuegos. Mi PFC ya está relacionado, pero no me conformo.

- Escribir un post aquí, al menos, cada dos semanas.

- Acabar algún proyecto personal de los que tengo empezados. Pudiendo ser, por ejemplo, terminar de pintar los Condes Vampiro, la Guardia Imperial (q poco probable), el corto de Alien Desktop, las Warhamming Tools o, algún otro, que ni siquiera recuerde.

Este post tiene carácter recordatorio, para que, al final de año, pueda comprobar lo iluso que soy.