Jun 17
Richzendy se la hace, y quiere que todos lo sepan … muchas veces
Veamos, Richzendy mandó una imagen al IRC que dice que él se la hace, y que no le da pena admitirlo. Pero creo recordar haber visto la misma imagen en el IRC hace pocos dÃas.
Esta es la imagen:

Veamos qué dicen los logs.
bigjocker@trantor:~/.xchat2/xchatlogs$ grep -in Richzendy UNPLUG-#unplug.log | grep melahagoom7aq2.jpg
<Richzendy> http://img156.imageshack.us/img156/4827/melahagoom7aq2.jpg
<Richzendy> eso no era, era esto: http://img156.imageshack.us/img156/4827/melahagoom7aq2.jpg
<Richzendy> FOAD, http://img156.imageshack.us/img156/4827/melahagoom7aq2.jpg
<Richzendy> apostols, http://img156.imageshack.us/img156/4827/melahagoom7aq2.jpg
Me imagino que ese es el secreto para mantenerse delgado.
1 commentJun 13
Quién es el bot? bigjocker, jam y julioh fallan el test de Turing
2 comments* Now talking on #prueba
<bigjocker> elbot, mamalo
<jam> LOL
<jam> Mira esto:
<jam> * Has entrado en #prueba
<jam> <jam> elbot, mamalo
<jam> * bigjocker (bigjocker@ngranek.com) ha entrado en #prueba
<jam> <bigjocker> elbot, mamalo
<jam> sync
* julioh (julioh@unplug-7A5527FD.static.telcel.net.ve) has joined #prueba
<julioh> elbot, mamalo
<jam> LOOOL
<bigjocker> looooooooooooooooool
<julioh> lol
Jun 10
Euro 2008 - Holanda 3, Italia 0
* Now talking on #debian-it
<bigjocker> quella squadra footbal è zoppa
* You have been kicked from #debian-it
Y bueno, el traductor de altavista no es perfecto.
No commentsJun 2
Conversaciones de altura
Hoy cuando llevaba a Sebastián (6 años) y a Santiago (3 años) al inglés y al kinder respectivamente, escuché esta pequeña conversación que mantuvieron en el asiento trasero del carro:
Santiago: Sebastián, qué hay adentro del corazón?
Sebastián: Está el alma
Santiago: y adentro del alma, qué hay?
Sebastián: hay tristeza
Santiago: y adentro de la tristeza?
Sebastián: lágrimas
Santiago: y adentro de las lagrimas?
Sebastián: no hay nada
Luego se quedaron en silencio. No por mucho, a los pocos segundos continuó la batalla campal tradicional. Pero por un segundo me pareció que habÃa mucha más madurez en ese asiento trasero que en todo el resto del mundo.
1 commentMay 28
KADATH/Unsolved rumbo al primer beta
He tratado de mantener el milestone de sacar un beta (cerrado por ahora) el 1ro de Julio de este año. Puse esa fecha hace unos 6 meses aproximadamente calculando que no iba a contar con mucho tiempo que dedicarle al proyecto (algo que fue 100% verÃdico). Pero como todas las cosas hechas con entusiasmo, sin prisa pero sin pausa, ya tenemos algo bastante avanzado y me gustarÃa mostrar algunas cosas.
Actualmente Unsolved es bastante jugable. Afortunadamente sólo tenemos un bug grave conocido (el mouse se degrada a veces luego de pasar mucho tiempo jugando. Creo que es algún redondeo en el código de coordenadas esféricas que está siendo propagado, y que se expresa al tiempo). La arquitectura de KADATH ha cambiado poco: es un Engine bastante básico que maneja internamente los estados, el stack de red, el ‘environment’ (cielo, lluvia, terreno, etc) y los NPCs. Lo que sà ha mejorado es la modularidad tanto de KADATH como de Unsolved, asà como el orden del código. Esta reorganización ha permitido que la implementación del juego Unsolved sea realmente pequeña (actualmente menos de 100 lÃneas de código), estando toda la lógica (y los hacks y cables) en el engine KADATH.
Luego me gustarÃa escribir largo y tendido sobre la arquitectura y las consideraciones de diseño. Por ahora, he aquà algunos screenshots.
Con la nueva arquitectura del juego es realmente trivial hacer pantallas de splash y menúes. El splash principal del juego es creado con estas tres lÃneas:
intro = new ImageState(
ResourcesManager.getInstance().getResourceAsURL(
“images/ngranek.jpg”), null, 1.0f);
GameStateManager.getInstance().attachChild(intro);
intro.setActive(true);
Esto nos genera el splash actual:
(nótese que los FPSs siempre están en 60. En realidad el juego puede correr a mucho más de 150 FPS en mi nVidia 7900GS, pero la vida es mucha más fácil cuando los FPSs son igual a la velocidad de refrescamiento del monitor, asà que por ahora los tenemos frenados).
En el juego está definido que luego de ese splash aparezca el menú principal. EL código es bastante sencillo tambien:
intro.addImageStateActionListener(
new ImageStateActionListener() {
public void dispatchListener() {
showMenu();
}
});
Siendo el showMenu() muy similar al código que muestra el splash:
menu = new MenuStateBUI(intro, 1.0f,
ResourcesManager.getInstance().getResourceAsURL(”menu/menu.xml”));
GameStateManager.getInstance().attachChild(menu);
menu.setActive(true);
El background del menú principal es temporal, ya que no tenemos clara la licencia de la imagen.
El menú viene definido en el archivo externo menu.xml, el cual es extremadamente sencillo. Como estamos utilizando BUI, el look&feel de todos los componentes gráficos es controlado por CSS, de forma que es muy sencillo cambiar los colores/estilos a futuro (cuando tengamos tiempo para eso :) ).
Luego de seleccionar Play en el menú principal pasamos a la pantalla que nos muestra los servidores activos. Esta lista es descargada del servidor principal (próximamente www.ngranek.com, actualmente localhost.localdomain), en el cual se registran todos los servidores de juego. Por ejemplo, si yo quiero levantar un servidor en mi LAN, ese servidor se registrará con el servidor principal, de forma que aparecerá en la lista de servidores disponibles. A futuro parametrizaremos muchas cosas de esta lista (servidores privados, con password, unreachables, full, vacÃos, etc). De nuevo, el background de esta pantalla es temporal, ya que no tenemos clara la licencia bajo la cual está esa imagen:
Al conectarnos a un servidor veremos la pantalla de ‘loading’, cuyo background sà es el definitivo (al menos durante el beta):
Una de las cosas que hemos estado puliendo es el Network Stack de KADATH. Para eso tratamos de tener la mayor cantidad de clientes conectados al mismo tiempo, pero tiende a ser engorroso, asà que para muchas de lass pruebas lo que hacemos es simular muchos clientes en el servidor.
Por ejemplo, cuando un usuario se mueve la información sobre sus coordenadas y parámetros de movimiento (rotación, aceleración, velocidad inicial, etc) es enviada al servidor, el cual se encarga de notificarle a los clientes interesados (es decir, los que estén lo suficientemente cerca como para importarles). Pero esta información no solo es discreta (hay una cantidad limitada de mensajes que se pueden enviar actualizando la información, que será infinitamente menor a la velocidad a los FPS de los demás clientes), si no que existe todo tipo de consideraciones sobre la red: lag, conexiones perdidas, pérdida de paquetes, conexión lenta, etc. Por esta razón los clientes deben ’simular’ el comportamiento de los demás usuarios utilizando toda la información posible, y corregir esta simulación cuando se reciba el siguiente mensaje, siempre tratando de mantener una animación continua que no distraiga al usuario. Es por esto que el Manager de NPCs utiliza diversas técnicas de interpolación/extrapolación para mantener las animaciones reales y no-discretas (dentro de lo que cabe, ya que la máquina de por sà es discreta, :P ).
A qué viene todo esto? Para probar toda la parte de red de forma rápida durante el desarrollo el servidor copia al usuario 10 veces, de forma que cuando un usuario está conectado el servidor manejará a 1 usuario y 10 NPCs, que tienen la misma información que el usuario (sólo varÃa en uno de los campos de las coordenadas, para que no se solapen todos). De esta forma es todos los siguientes screenshots aparecen 11 jugadores, donde 10 so único que hacen es perseguir al jugador real. Esta persecución ocurre en el servidor, asà que por ahora podemos estar seguros de que cada cliente soporta juegos que incluyan 11 jugadores ;):
Aquà se puede ver un poco de lag inducido. Algunos jugadores se atrasan, pero luego se irán adelantando poco a poco, a medida que más información llegue al cliente:
Por ahora sigo apuntando a tener un beta bastante básico para el 1ro de Julio. De todas formas, la fecha depende 100% de la cantidad de tiempo que pueda invertirle al proyecto (el tiempo no solo es discreto, si no que es ’scarce’).
3 commentsMay 26
ssh root@mars.solarsysstem.milkyway.virgo.org ‘aptitude install firefox’
Ahora podemos presumir que Firefox lo usan hasta los marcianos (y que no son tan hard-core como para usar Debain, se conforman con Ubuntu al parecer). Take that IE!!.

vs

Por cierto, en cualquier momento la NASA cambia el dominio de .org a .com o incluso (gasp!) a .gov.
No commentsMay 6
El orden de los factores SÃ afecta el producto
El primer algoritmo que aprendemos en nuestras vidas es:
10 BAJAR LOS PANTALONES
20 ORINAR
30 SUBIR LOS PANTALONES
Ejecución correcta:

Ejecución incorrecta:

Apr 29
VirtualBox OSE en Linux con Windows XP en Seamless Mode
Es realmente impresionante las cosas que se pueden hacer con VirtualBox. Actualmente tengo dos máquinas virtuales corriendo casi todo el tiempo: un Debian Lenny donde tengo Oracle XE instalado (prefiero tenerlo en una máquina virtual para no perder la configuración si reinstalo mi máquina, aparte de que se me hace mucho más conveniente), y el Windows XP que vino por defecto con mi laptop: como desarrollador siempre necesito utilizar herramientas que solo funcionan en Windows (y la gran mayorÃa de las veces se trata de herramientas de uso _obligatorio_ para las tareas que tengo que hacer). En el caso del Linux como servidor de Oracle no necesito la interfaz de la VM con mucha frecuencia, pero para Windows sÃ, asà que lo que hice fue aumentarle la memoria de video de 8 a 32 MB a la VM (para que aguante la resolución 1920×1200 @ 32 bits que utilizo en el laptop) y colocar a Windows en ‘Seamless Mode’ (thx TecnoVM64) en el ‘Virtual Desktop 8′. De esta forma tengo un desktop virtual que integra elegantemente el Windows/Linux, dejándome los 7 desktops restantes para otras cosas (como trollear en el IRC):
No commentsApr 17
me voy al saiver a navegar en internex … si te conectas hablamos por el mazinger … OMG DIOS USA FIREFOX !!!!1!1!!!!oneone
El problema energético mundial tiene una solución sencilla: colocarle electrodos a la tumba de Cervantes. Cada vez que alguien descuartiza el español, Cervantes dá vueltas en su tumba, produciendo suficiente electricidad para iluminar una discoteca full de reggaetoneros durante 800 millones de años.
En otras noticias, parece que Dios también dejó de usar Internet Explorer y se decidió por Firefox (lo que también indica que no usa Debian, porque si no serÃa Iceweasel). Bueno, nadie es perfecto:
2 comments









