jMonkeyEngine, motor 3D para desarrolladores java

Como dice su lema ‘serious monkyes. serious engine.’ nos encontramos ante una API de alto rendimiento para la generación de escenas gráficas en 3D realmente maduro. Sólo hay que echarle un vistazo a su sección de películas y demos que da cuenta de las posibilidades actuales de su motor gráfico. jMonkeyEngine es un proyecto de código abierto bajo licencia BSD que comenzo allá por el año 2003. Actualmente acaban de sacar la alpha de la versión 3 del engine.

Para poder empezar a desarrollar basta con descargase las librerías jar del proyecto. Actualmente lo mejor es hacerlo a través de las versiones nocturnas aunque puedas encontrarte con alguna versión más o menos estable el producto está bastante acabado.

Ahora sólo tienes que descomprimirlo (descarga .zip) he importar jMonkeyEngine3.jar y la carpeta lib que se encuentra en el zip dentro de tu proyecto. También tienes los javadoc y el código fuente en el archivo zip y en la página web de jMonkeyEngine puedes ver tutoriales explicativos para poder comenzar a hacer tus pinillos en el mundo 3D.

Happy coding!

Como cambiar la zona horaria de mysql por conexión

Mysql tiene asociadas dos horas horarias, una es global y otra por conexión. Su valor por defecto coincide con la zona horaria del servidor donde mysql esté en ejecución. Esto se corresponde con el valor de timezone SYSTEM. Para poder saber el valor de zonas horarias en una conexión basta con lanzar esta consulta:

mysql> SELECT @@global.time_zone,@@session.time_zone,NOW();

La primera columna es el time_zone de nuestro servidor y el segundo el de nuestra conexión. La tercera columna de la fecha y hora actuales de acuerdo con el valor de timezone de nuestra conexión (si, la 2ª columna)

Para poder modificarla según el manual online de mysql basta con ejecutar:

mysql> SET time_zone = timezone;

Siendo timezone una cadena que se debe corresponder con una zona horaria instalada en nuestro sistema. Sin embargo si ejecutas esta consulta es muy probable que te de un error, diciendo que desconoce esta zona horaria.

Por ejemplo

mysql> SET time_zone = ‘UTC’;
1298 Unknown or incorrect time zone: ‘UTC’

Como es esto posible, ¿mysql no sabe nada sobre esta zona horaria universal?. En mi sistema GNU/Linux (Debian). Las zonas horarias están a modo de archivo (filosofía UNIX) en /usr/share/zoneinfo. Y de un rápido vistazo se puede ver que, como no, UTC es una de las zonas horarias definidas.

Esto es porque a pesar de lo que dice el manual de mysql debemos introducir la zonas horarias que hay instaladas en nuestro sistema en mysql. Para hacer esto tenemos que ir a una shell y ejecutar:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

¡Además sería preciso ejecutar periódicamente esta instrucción pues las zonas horarias pueden sufrir modificaciones!

Después de hacer esto ya podriamos ejecutar

mysql> SET time_zone = ‘UTC’;
Query OK, 0 rows affected (0.00 sec)

Ahora si que podemos ejecutar

mysql> SELECT @@global.time_zone,@@session.time_zone,NOW()\G

*************************** 1. row ***************************

@@global.time_zone: SYSTEM

@@session.time_zone: UTC

NOW(): 2010-05-24 15:24:31

1 row in set (0.00 sec)

Y podemos comprobar que la hora se ha modificado con la zona horaria seleccionada. Recuerda que esto es por conexión o sea que cuando vuelvas a conectarte a tu servidor mysql verás nuevamente la hora de la zona horaria del sistema

Para cambiar esto y tener de manera global esta configuración de zona horaria habría que arrancar el servidor mysql con la opción –default_timezone=timezone_name de mysqld_safe.

El servidor mysql también almacena además de las dos zonas horarias que comentamos (global y por conexión) la zona horaria del servidor donde se aloja. Lo almacena en la variable system_time_zone. También puedes modificar esto con la opción –timezone=timezone_name de mysqld_safe o con la variable de entorno TZ antes de lanzar el servidor myql. O en el archivo de configuración de mysql introducir la siguiente linea:

default-time-zone=’timezone’

Ya en tiempo de ejecución puedes modificar la zona horaria global del servidor. Pero si reinicias el servidor perdería estos cambios. Basta ejecutar con el usuario root la siguiente consulta:

mysql> SET GLOBAL time_zone = timezone;