jueves, 24 de diciembre de 2009

Avatar

Hola gente :P, bueno primero me disculpo por no haber posteado nada en mas de una semana pero bueno, las vacaciones y compromisos familiares se atravesaron jeje. Además he estado esperando tener algo que valiera la pena postear y bueno aquí va.


Acabo de llegar del cine de ver Avatar, la pelicula dirigida y escrita por James Cameron y que ha sido un proyecto de él desde hace 14 años (o algo así) pero no la había querido hacer sin la tecnología y los
recursos apropiados... Que excelente decisión!!! Empiezo con lo unico malo de mi ida al cine de hoy, originalmente iba a verla en 3d hasta las 4 de la tarde cuando la "amable" gente de cinex decidió cancelar la función por razones misceláneas pero decidi verla en 2d igual para no arriesgarme a que la quitaran de cartelera de aqui a enero que era posiblemente cuando la iba a poder ver. Bueno, iba con MUY altas expectativas por las críticas fantásticas que ha recibido y por las recomendaciones de mis amigos, les puedo decir que mis expectativas fueron superadas... Voy a evitar hablar de la historia porque quiero que los que lean este post vayan corriendo a ver la película porque la considero una verdadera obra de arte... El nivel de detalle con el que se desarrollan los personajes, la manera en que la historia te lleva a adentrarte en el mundo de los Na'vi y sentirte que eres uno de ellos, el odio que te hacen sentir por la raza humana y su capacidad destructiva y al mismo tiempo apreciar la bondad del humano y la capacidad de amar y de cambiar de la que somos capaces, crea un espectacular mundo del cual formas parte por 162 minutos. 



Todo eso es Avatar y más... Particularmente aprecio la decisión de James Cameron de aplazar el desarrollo del proyecto hasta poder tener la mejor tecnología en CGI (Computer-generated imagery) porque aún cuando más del 60% (o más) de las escenas son sin humanos no sientes que estás viendo un video juego o una persona artificial sino que los Na'vi verdaderamente existen, viven en Pandora y que la película se filmó en esa recóndita locación.


Particularmente el post es para valorar un poco lo que significan películas como Avatar en un mundo donde películas patéticas como Luna Nueva o Crepúsculo recaudan más de 140 millones de dólares (contando sólo EEUU) lo cual por el momento es casi el doble de lo que ha recaudado Avatar... Me alegro que aún haya gente como James Cameron que sepa valorar una buena película y espero que muchos más se unan y eviten irse por lo "seguro" con tal de ganarse unos reales...


See ya,
Kris

martes, 15 de diciembre de 2009

Information Overload

Hey people,
Se que tengo exactamente una semana sin publicar nada pero fue medio a propósito para darle un descanso a mi mente y también considerando el tiempo sumamente limitado que tuve en esta última semana (última semana de clases del trimestre).

Y bueno un poco en la onda de descansar la mente quiero hablar sobre algo que tengo tiempo pensando y que creo que muchos, como yo, lo sufren. Estoy hablando del exceso de información del que somos víctimas a raíz de la infinita cantidad de tiempo que pasamos en Internet. Recientemente estuve hablando con un amigo (el cual me presiona para que no deje de escribir en el blog :P) sobre que me sorprende la cantidad de información de la cual esta enterado mucho antes que yo, ya que particularmente me considero un "information junkie" (adicto a la información) y el hecho de que él siempre esté al tanto de lo que yo estoy leyendo mucho antes de que lo lea e incluso de más cosas me asombra por la cantidad de tiempo e información que eso significa. Particularmente él me comentó que tuvo que cerrar su cuenta de Google Reader (del cual dependo exhaustivamente) por la cantidad tan irracional de tiempo que pasaba leyendo tonterías en Internet y que aún así consiguió mantener su "adicción" mediante otros métodos y eso me llevó a pensar en que yo hago lo mismo en una medida ligeramente menor, reviso al menos 10 veces al día mi Google Reader y mi Twitter (el cual esta lleno de noticias e información de otro tipo) lo reviso como 50 veces al día... ES DEMASIADA INFORMACIÓN!!! Y todos los días estamos sujetos a esta información, llevándonos a tratar de vivir nuestra vida más rápido de lo que ya lo hacemos, vivirla en función de la velocidad del flujo de la información, por lo menos yo creo que tenemos que decir BASTA en algún momento. Llegó un punto recientemente en el que me di cuenta que el solo hecho de estar pendiente de todas estas cosas me generaba estrés, estrés de gratis añadido al cotidiano que generan las actividades de la universidad, el trabajo y de la vida... Y es incluso preocupante cómo la tecnología nos lleva hacia el hecho de que tengamos más información en menos tiempo y que nos volvamos aún mas dependientes de eso, los Blackberrys son el ejemplo perfecto de eso... Creo que si no logramos manejar toda esa información saludablemente o no logramos abstraernos de todo de vez en cuando, no podremos disfrutar de lo que nos rodea porque vamos a estar sumidos en la información y el estrés que nos va a generar va a ser tan grande que nos va a afectar físicamente. Bueno, estoy siendo un poco idealista :P pero en resumen voy a tratar de descansar de la información con más frecuencia y se los recomiendo jeje.

See ya,
Kris

martes, 8 de diciembre de 2009

Ballmer's Peak confirmation

Hola gente,
Este es un post burda de corto xD se me olvidó mencionar en el post anterior que logré demostrar que el Ballmer's Peak que comenté en mis anteriores post es totalmente cierto xD vieron los resultados con el Neurotic Pacman jajajaja. Sólo tengan cuidado porque el mundo no necesita otro Windows Me o otro Window Vista (que estoy convencido que fue producto de un abuso de alcohol xD).

See ya,
Kris

lunes, 7 de diciembre de 2009

Neurotic Pacman

Hola gente,
Bueno hoy realizamos la entrega final de nuestro proyecto de un agente inteligente que juegue Pacman utilizando redes neurales (o neuronales, aún no sabemos como es correcto xD) entrenadas usando un algoritmo genético.

Les voy a detallar un poco lo que hicimos y me voy a poner técnico así que a los que no les interesen los detalles de la implementación pueden irse hasta el video =P. En función de la información que obtuvimos de la publicación de Simon Lucas utilizamos un algoritmo genético un poco diferente ya que no realiza el crossover de las generaciones por lo tanto todas las nuevas generaciones de una población provienen de la selección de los mejores individuos de la población inicial y la mutación de esos mejores individuos para tratar de obtener mejores fitness en las siguientes generaciones. Adicionalmente, la mutación que utilizamos es la que describe Lucas en su investigación que consta de 4 tipos diferentes de mutaciones, cada una con una probabilidad de que ocurra:

- 0.1 de probabilidad de mutar todos los pesos de la red neural.
- 0.27  de probabilidad de mutar todos los pesos de una capa de sinapsis (capa de pesos entre las neuronas) escogida al azar.
- 0.27 de probabilidad de mutar todos los pesos de las sinapsis que entran a una neurona escogida al azar.
- 0.36  de probabilidad de mutar un sólo peso de toda la red escogido al azar.

Algo que no teníamos definido cuando hice el primer post es la manera en la que la red neural iba a controlar al Pacman y bueno ahora les puedo decir que lo que hace la red es evaluar todos los posibles moviemientos de Pacman a partir de su posición actual y decidir en función del output de la red cual es la mejor opción.

Adicional a lo que hizo Lucas en su investigación añadimos dos factores que fueron determinantes en los resultados que obtuvimos:
- Como notamos que en la mayoría de los casos en los que se lograba un rendimiento bajo del algoritmo se debía a la indecisión de Pacman en casos donde la evaluación resultaba en que se devolvía por el camino que iba entonces agregamos la condición para que Pacman se devuelva por el camino por donde venía debe cumplirse la condición de que el siguiente estado es considerablemente mejor que la opción de seguir por el mismo camino. El "considerablemente" lo definimos usando una variable la cual instanciamos en varios valores como 1.5, 2.0 o 2.5 (veces que debe ser mejor una decisión que la otra).
- Notamos que con cierta frecuencia, debido a la magnitud de los inputs de la red, el valor final se acercaba demasiado a 1 e incluso varias veces retornaba 1.0 como valor final por lo cerca que estaba el número al 1 y por la limitación en la representación de los números lo cual reducía la precisión al momento de evaluar los movimientos posibles por lo que decidimos escalar esos valores a algo más pequeño así que lo dividimos por la máxima distancia entre dos puntos en el mapa pero dividida entre 16 ya que con valores más grandes pasaba lo mismo pero con una tendencia a 0.

Bueno el resultado fue que logramos mejorar los scores que había obtenido Lucas, por recomendación de la profesora mejoraremos algunos detalles y lo publicaremos en alguna conferencia regional o internacional. Luego les cuento que tal nos fue con eso, acá les dejo el video de nuestra mejor corrida:



Menciono a mis dos compañeros de equipo:

Daniel Barreto - @volrath y Edgar Henriquez - @edgarhenriquez

La investigación en la que nos basamos para este trabajo: Evolving a Neural Network Location Evaluator to Play Ms. Pac-Man - Simon Lucas

Y nuestra presentación donde se muestran los gráficos de los resultados:
Neurotic Ms.Pacman

Cualquier pregunta la pueden hacer en los comentarios y seguro les respondo :).

See Ya,
Kris

sábado, 5 de diciembre de 2009

Ballmer's Peak

Hola gente,
Bueno, llevo dos días programando non-stop y tengo mucho sueño jeje. Razón por la cual honestamente no pude postear nada ayer :P Y bueno hoy tampoco tengo como que tiempo ni ánimos para postear algo interesante y con detalle así que les diré lo que estoy intentando lograr en este momento mientras trabajo en dos proyectos de la universidad, el de Pacman que les había comentado y otro de Computación Gráfica 1:




Les comento luego si logré comprobar la hipótesis jajajaja.

See ya,
Kris.

jueves, 3 de diciembre de 2009

Reflexión

Se acuerdan que en el primer post de este blog comenté que tal vez algun día podría escribir una reflexión... Bueno hoy caí en cuenta seriamente que este es mi penúltimo trimestre de clases y que es sólo cuestión de 4 meses que no vuelva más a la Universidad Simón Bolívar a ver clases...

Básicamente mi reacción interna en el momento fue HOLY SHIT!!! Y simplemente me puse a pensar en lo que extrañaré y que pase lo que pase lo que más me va a hacer falta van a ser los amigos. Podré sonar cursi pero conseguí este quote que explica perfectamente cómo me siento en este momento:

"I've learned that your college friends become kind of family, you eat together, you take naps together, fight, laugh, cry, and do absolutely nothing together until you can't remember how you ever lived your life without them in the first place."
Autor - Desconocido

See Ya,
Kris

miércoles, 2 de diciembre de 2009

HTML 5

Hey, hoy voy a hacer otro post corto, entenderán que estando en la últimas semanas de clases tengo muchos parciales y varios proyectos en proceso aún sin terminar entonces el tiempo libre es escaso :S.

Hoy vamos a hablar un poco sobre HTML5, el nuevo estándar de HTML que la mayoría de los browsers ya están empezando a reconocer (Internet Explorer no es uno de ellos xD ¿que raro verdad?).
Este nuevo estándar abre las puertas a una nueva generación de páginas web con la implementación de nuevos tags HTML que hacen que cada vez haga falta menos tiempo para el diseño y más en pensar en el contenido como tal de los sites, algunos son: <header>, <section>, <article>, <footer>, <aside> y otros más que nos hacen mucho más fácil el posicionamiento que con los antiguos <div>
se podía volver complicado.

Algo muy relevante es que ahora HTML5 viene con audio y video integrado en el browser, sin necesidad del uso de Flash como se solía manejar antes, se crean los tags <audio> y <video> para este propósito. Adicionalmente se agregó algo que, para mi, puede acortar la vida útil de Flash en el futuro, que es el tag <canvas> el cual permite realizar dibujos 2D de forma sencilla y similar a la usada en OpenGL con primitivas geométricas y usando Scalable Vector Graphics como los usados por Flash.

Hay unos cuantos detalles más bastante interesantes que les recomiendo ver. En este video hay un muy buen resumen hecho por un desarrollador de Google: Introduction to HTML 5 y además si tienen Google Chrome pueden entrar acá Chrome Experiments para que vean un poco de las cosas que se pueden lograr con el nuevo estándar.

Personalmente, nunca me ha gustado Flash. Lo apoyo bastante porque el nivel de dinamismo que agregó a las páginas de Internet en los últimos años ha sido impresionante pero tiende a llevar a páginas web lentas y pesadas (aunque sé que no es la regla pero es lo que suele pasar) y es complicado que requiere la instalación de un plugin el cual debe ser una versión específica acorde al sistema operativo en el que va a ser usado lo cual ha funcionado relativamente bien hasta el momento pero integrando en la codificación del HTML de la página muchos de los elementos que normalmente permite Flash podemos obtener una considerable mejora en el performance y en la comodidad del usuario que sólo requiere el browser y más nada para tener una experiencia completa en Internet. Creo y espero que poco a poco los desarrolladores van a ir migrando a HTML5 y eviten usar tecnologías como Flash y Silverlight o que por lo menos limiten el uso de Flash a aquellos casos donde aún HTML5 no pueda cubrir las necesidades ya que por lo menos por los momentos está muy crudo y no funciona muy bien en ningún navegador. Los desarrolladores de Flash pueden flamearme en los comentarios XD.

See ya,
Kris.

martes, 1 de diciembre de 2009

New Google :)

Hola gente,
Este va a ser un blog corto porque no tengo ganas de escribir mucho y tengo un dato interesante que compartir con todos y que no toma más de unas cuantas líneas. Al parecer ya podemos probar la interfaz nueva que está preparando Google para su página principal modificando un poco un cookie dentro de nuestro navegador.

1. Abran su navegador y dirijanse a www.google.com
2. Escriban el siguiente texto en la barra de direcciones:
javascript:void(document.cookie="PREF=ID=20b6e4c2f44943bb:U=4bf292d46faad806:TM=1249677602:LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com"); 
y luego presionen Enter. Va a parecer que no pasó nada pero la verdad es que sí, se modificó un cookie en el sistema.
3. Refresquen la página y podrán disfrutar de la nueva interfaz tentativa de Google :).


Es posible que esto cambie de aquí a que salga al público pero por lo menos pueden disfrutarlo ahora. A mi me gusta jeje, es un poco más cargada de imagenes y colores pero funciona bastante rápido igual y es un poco más user-friendly. Cuéntenme que tal les va con la nueva interfaz en los comentarios y si el código les sirvió sin problemas. Ah y si quieren volver al viejo Google es sólo cuestión de eliminar el Cookie que se creó, esa tarea se las dejo a ustedes xD.


See ya,
Kris.