2009-12-13

Nuestro primer intento de hacer Pan de Melón

Siempre me había llamado la atención el Pan de Melón, la comida favorita de Shana en Shakugan no Shana. Cuando se lo come hace una cara de placer tal que yo siempre pensé que debía tener un sabor muy delicioso. Quería probarlo pero todas las recetas que había encontrado hasta el momento requerían de una máquina de pan que yo no tengo y que por supuesto no quería comprar solo para hacer Pan de Melón. Hace unos días encontré esta receta:

http://www.recetasjaponesas.com/2009/04/meronpan-pan-de-melon.html

Quería intentarla, pero ya que no soy muy bueno en la cocina me decidí a decirle a mi hermana que la intentáramos juntos. Compramos todos los ingredientes, excepto por la Harina de Pan que no teníamos idea de donde conseguirla, la remplazamos con Harina de Trigo normal Haz de Oros, en cualquier caso el Pan está hecho de Harina de Trigo.

La receta resultó ser bastante sencilla, miren, aquí están los panes ya armados:


El problema fue que creo que nos pasamos un poco con la levadura y cuando los panes salieron del horno, bueno, habían crecido más de lo esperado y se habían pegado los unos a los otros XD:


Ahora que lo pienso, también debí haber hecho más cortes por que al crecer solo con cuatro cortes, bueno... no se parece mucho a un Pan de Melón.

Bueno, creo que no nos fue tan mal para ser el primer intento, el pan quedó de buen sabor, aunque me pregunto si ese es realmente el sabor que tiene el Pan de Melón Japonés. Lo importante de todo es que yo pasé una tarde muy chevere junto a mis dos hermanas, nos reímos un rato e hicimos algo diferente. Carolina dijo que "lo importante era divertirse haciéndolo así hubiera quedado hedioncho" y una vez Angela me dijo que "la cocina viene del corazón" y que no hay que seguir las recetas, así que sin importar lo que haya pasado estoy feliz con el resultado :D

2009-12-10

Emu-manía

Los emuladores siempre me han fascinado, desde que reviví mis viejos días de adicción al Super NES he estado jugando juegos de consola en mi PC. La experiencia se ha vuelto más placentera y emocionante desde que descubrimos con Andrés que podíamos conectar los controles del xBox 360 para jugar como en las verdaderas consolas, incluyendo la retroalimentación del dual-shock ¡oh! ¡yeah!

La mayoría de consolas funcionan bien en mi PC, desde el viejo NES hasta el PSOne (que con la adición del control del XBox puedo decir que es como tener un verdadero PSOne) Solo unas pocas aún se escapan, para empezar el Nintendo DS. Hace rato que existe un emulador para esta consola pero aún está en desarrollo y la mayoría, por no decir todos, los juegos corren mal, tiene fallas con el 3D, el sonido es horrible o la emulación se hace absurdamente lenta por momentos, en fin... ¡Ánimo muchachos!.

Una consola que siempre se me ha escapado es el PlayStation 2. Esta consola por tener un hardware tan maravilloso es la orna del zapato de los emuladores. Pocos PCs en el planeta pueden emular la consola perfectamente, se necesita muchísima velocidad de GPU y varios núcleos de CPU para poder revalizar con la GPU del PlayStation 2 y sus dos cooprocesadores para operaciones vectoriales.

A pesar de que el software ya no es un problema el hardware aún nos atormenta.

Hoy por fin pude hacer funcionar el PCSX2 en mi computadora. Por fin deje de quebrarme la cabeza tratando de encontrar una BIOS adecuada y de configurar los plug-ins gráficos para lograr siquiera ver el logo de "Play Station 2" ahora llegué a la limitación que no puedo sobrepasar sin hacer una inversión monetaria considerable, el Hardware.

Por ahora tendré que dejar por fuera la emulación de PS2. No por limitaciones de Software o por configuración sino por que mi hardware no puede igualar el de un Play Station 2 (Nunca pretendí lo contrario, solo era una prueba).

El Play Station Portable es quizás un objetivo más alcanzable. Su biblioteca de juegos es muy tentadora y me alienta pensar que es una consola que quizás no sea tan difícil de emular. El único problema por el momento, los emuladores, la mayoría de los emuladores de PSP que existen tienen algo en común, ninguno de ellos puede correr juegos comerciales (no tengo idea que es lo que emulan entonces).

El JPCSP es el primer emulador que se jacta de poder correr juegos comerciales (incluso tiene una página de compatibilidad con algunas entradas). Este emulador, no obstante, tiene una falla crítica, ¡Esta hecho en Java y OpenGL! [Si, si, leyeron bien, Java] No sé que andaban pensando los que lo hicieron, pero ¡Java! Por dios, Java no es un lenguaje como para correr una aplicación de este tipo, estas aplicaciones necesitan direct rendering y hardware acceleration, cosas de las que Java aún no entiende. Y por si fuera poco escogieron la librería gráfica más pobre y lenta que existe. OpenGL.

Bien, cuando lo vi dije "¿¡JAVA!? ¡Nooo! ¡olvídenlo, eso nunca va a funcionar! Pero aún así mi curiosidad me llevó a intentarlo, descargue una versión japonesa de Disidia Final Fantasy, cargué la imagen UMD en el emulador y ¿que creen? Si, efectivamente, no funcionó, lo más sorprendente de todo es la velocidad a la que emula. Con la máxima prioridad el emulador alcanza el sorprendente rate de ¡1.5 fps!

Bueno si, efectivamente es una torta, hasta el PCSX2 alcanza 18 - 20 fps. Muy poco para jugar bien pero al menos para ver algo. El JPCSP no fue capaz ni siquiera de mostrar el title screen del juego. ¿Prometedor? ¿Quien sabe? Al parecer hay un proyecto de portear el emulador a C++, quizás C++ mejore mucho la situación, yo espero que sea así. Ojala que veamos pronto un emulador de PSP funcional.

2009-10-29

libQGLViewer en Windows usando Microsoft Visual C++ 2008 Express Edition

libQGLViewer es una librería para ver escenas 3D de OpenGL en aplicaciones Qt. Las cosas buenas que tiene libQGLViewer es que ya trae implementadas cosas como el movimiento dinámico de la cámara, y le permite al usuario interactuar con la escena con el ratón y el teclado.

En Linux las cosas con libQGLViewer son supremamente sencillas, simplemente se instala el paquete de desarrollo y la librería queda lista para ser utilizada. En Windows las cosas cambian un poco, es más difícil hacer que la librería quede lista para funcionar y también hacer uso de ella.

En la página oficial de libQGLViewer están los pasos para compilar la librería con el Microsoft Visual Studio pero ellos asumen que uno tiene la integración de la versión comercial de Qt con ell Microsoft Visual Studio y eso no siempre es así, en mi caso por ejemplo, eso no sucede. De modo que aquí están los pasos para compilar la librería usando el Microsoft Visual C++ 2008 Express Edition sin necesidad de usar la integración de la versión comercial.

Estos son los pasos:
  1. Descargar el código fuente del libQGLViewer de la página de la librería.
  2. Descomprimir el código fuente en una carpeta del PC. Yo recomiendo C:\libQGLViewer\2.3.4 (La 2.3.4 fue la que yo descargué pero puede que para el momento en que lean el post haya una versión más reciente. También recuerden que la ruta de acceso carpeta NO DEBE CONTENER ESPACIOS).
  3. Abrir la consola de Microsoft Visual Studio 2008. Inicio -> Todos los programas -> Microsoft Visual C++ 2008 Express Edition -> Visual Studio Tools -> Símbolo del sistema de Visual Studio 2008.
  4. Ir a la carpeta donde se descomprimió el código fuente del libQGLViewer y allí entrar a la carpeta QGLViewer. (Deben quedar ubicados en la ruta C:\libQGLViewer\2.3.4\QGLViewer)
  5. Compilar usando los siguientes comandos:

qmake -config release
nmake

Está compilación crea una carpeta release dentro de la carpeta QGLViewer donde se encuentra el archivo QGLViewer2.dll. Copiamos este .dll a C:\Windows\system32 para que esté disponible para las aplicaciones que usen la librería.

Luego seleccionamos todo lo que hay en el carpeta release y lo movemos a la carpeta QGLViewer (la carpeta padre de release) y eliminamos la carpeta release, esto lo hacemos para facilitar el funcionamiento de la librería. Es solo cuestión de facilidad nada más.

Eso es todo. Ya es posible usar aplicaciones que hagan uso de la librería libQGLViewer.

Ahora explicaré como compilar los ejemplos que vienen en el paquete de código fuente de libQGLViewer. Los ejemplos se encuentran en la carpeta examples. En teoría se debería poder compilarlos todos al tiempo pero esto no funciona así que hay que hacerlo uno a uno. Empezaremos con el más simple, el simpleViewer.

En la carpeta simpleViewer que se encuentra dentro de examples está el código fuente necesario para compilar el simpleViewer. Para compilar el ejemplo se siguen estos pasos:

Abrir el archivo simpleViewer.pro con un editor de texto (puede ser el bloc de notas).

Ese archivo contiene código para tratar de detectar automáticamente donde se encuentran los archivos de inclusión y la librería del QGLViewer pero en Windows no funciona nada bien así que vamos a eliminar todo el código que no sirve para nada.

Localizamos en el archivo la línea ### Unix configuration ### y eliminamos todo el código que hay desde allí hasta la línea ### Windows configuration ###.

Debajo de la línea ### Windows configuration ### se encuentra el siguiente código:

win32 {
MOC_DIR = moc
OBJECTS_DIR = obj
}

Vamos a editarlo para que quede así:

MOC_DIR = moc
OBJECTS_DIR = obj

Luego eliminamos todo el código que está debajo de la línea OBJECTS_DIR, de modo que quedemos solo con algo como esto:

### Windows configuration ###
MOC_DIR = moc
OBJECTS_DIR = obj

Arriba de este código hay dos líneas que empiezan por #INCLUDEPATH y #LIBS. Estas líneas le dicen al compilador donde buscar los archivos de inclusión y la librería de libQGLViewer. Debemos editarlas para hacerlas apuntar a la ruta correcta, las líneas deben quedar más o menos así:

INCLUDEPATH *= C:\libQGLViewer\2.3.4
LIBS *= -LC:\libQGLViewer\2.3.4\QGLViewer -lQGLViewer2

Nota: No hay que olvidarse de quitar el # que se encuentra el inicio de la línea ya que este marca la línea como un comentario.

Eso es todo. Luego de esto ejecutamos qmake para crear el Makefile y luego nmake para compilar el programa. Esto generará un ejecutable simpleViewer.exe en la carpeta. Ya está compilado el ejemplo.

Si encuentran problemas compilando algún ejemplo o la propia librería con los pasos que he dejado aquí no duden en escribir o dejar sus comentarios.

Por ultimo una recomendación. La gran mayoría de los que descargamos el libQGLViewer no lo descargamos para usar aplicaciones que utilizan la librería o para quedarnos pasmados viendo los ejemplos sino para desarrollar nuestras propias aplicaciones.

Si planean usar libQGLViewer en su aplicación yo les recomiendo que no empiecen con un .pro vacío sino que copien uno de los .pro que han editado para compilar los ejemplos y lo editen agregando las fuentes y los headers de su propio proyecto, esto les facilitará mucho la compilación y les quitara de encima problemas de símbolos externos sin resolver que aparecen regularmente al usar libQGLViewer.

2009-01-27

Crear aplicaciones Qt en Windows usando Microsoft Visual C++ 2008 (Compilar, Depurar y Ejecutar desde el IDE)

Bueno en mi post anterior expliqué como se podían crear aplicaciones Qt en Windows usando Microsoft Visual C++ 2008 Express Edition y dije que había que compilar desde la consola por que ni idea como hacerlo desde el IDE, ya sé como hacerlo así que lo dejo aquí para el que le interese.

Bueno, lo primero es saber que Microsoft Visual C++ 2008 Express Edition tiene dos configuraciones de compilación: Debug y Release. La configuración de Debug se supone que compila el ejecutable con los símbolos de depuración de Windows y otras cosas, por lo que el ejecutable es más rastreable y de tamaño mayor, la configuración de Release no tiene nada de esto por lo que el tamaño del ejecutable es menor.

Vamos a preprar a Microsoft Visual C++ 2008 Express Edition para compilar nuestras aplicaciones Qt en ambas configuraciones, para empezar tenemos que crear dos archivos (.bat) de procesamiento por lotes que se encargaran de llamar al precompilador de Qt y preparar todo para que luego el Compilador y el Linker del Visual C++ puedan compilar el programa, los pasos son los siguientes:

Vamos a crear dos archivos (.bat) en la carpeta bin del Qt 4 (en mi caso C:\Qt\4.4.3\bin), al primero le llamaremos qcreate.bat, dentro de el escribimos estás líneas de comando:

qmake -project
qmake
nmake

Al segundo lo llamaremos qcreate-release.bat y en el escribiremos:

qmake -project
qmake -config release
nmake

Ahora ya tenemos las secuencias de comando listas, lo que sigue ahora es configurar al Microsoft Visual C++ 2008, para ello seguimos estos pasos:

1. Se creamos un proyecto nuevo aparecerá el asistente de configuración de proyectos de archivos MAKE:


Le damos clic en Siguiente y el asistente nos muestra la configuración de Debug:


Allí, en donde dice Línea de comandos de generación escribimos qcreate, que es el nombre del .bat que hemos creado y luego en donde dice Resultados (para depuración) escribimos debug\ antes del texto que ya se encuentra en el recuadro (sin eliminarlo), es decir que en el ejemplo el texto quedaría: debug\Text-Make.exe, para terminar damos clic en Siguiente.

Ahora nos muestra una ventana muy parecida solo que esta vez se trata de la configuración para el Release, en esta vamos a quitar la marca de verificación de la casilla Igual que la configuración Debug para que se activen los campos. En donde dice Linea de comandos de generación escribimos qcreate-release que es el nombre de nuestro .bat para los releases, y de forma similar a lo que hicimos antes en el recuadro que dice Resultados (para depuración) escribimos release\ antes del texto que se enucentra allí:


Luego damos clic en Finalizar.

Listo, eso es todo, ahora si podemos usar los comandos del IDE para generar (Generar -> Generar Solución / Generar Proyecto) o para Depurar (Depurar -> Iniciar Depuración) también podremos ver los errores y advertencias de la compilación (Ver -> Otras Ventanas -> Lista de Errores) y hacer clic sobre ellos para que el IDE nos lleve directo a la línea donde se encuentra el error.

Lo único que no he podido hacer es que el IDE vea los archivos de Include del Qt, eso si no lo he podido hacer por que los archivos de Include del Qt tienen inclusiones anidadas y el Visual C++ 2008 como que es muy perezoso para irse a buscar las referencias en los archivos anidados entonces cuando uno escribe hello. (en el tutorial) no puede esperar que el Visual C++ le muestre los miembros de la clase QPushButton.

Si encuento una forma de hacerlo posteare nuevmanete. Por ahora los dejo. Comentarios y etc siempre están bien recibidos, siempre y cuando no sean Spam.

2009-01-26

Crear aplicaciones Qt en Windows usando Microsoft Visual C++ 2008

Hola, para los que no saben que es Qt se trata de una API multiplataforma para crear aplicaciones nativas en Windows, Linux, mac, Solaris, etc y poder portarlas sin cambiar ninguna línea de código. Si quieren ver más información sobre este paquete pueden visitar: http://www.qtsoftware.com/

Yo ya había escrito dos posts en este mismo blog sobre Qt y como instalarlo en Linux, si quieren darles un vistazo:

El remplazo de Visual Basic
Instalar Qt4

La verdad es que había estado intentando hacer correr este paquete en Windows pero hasta ahora no había podido, traté con DevC++ y con Eclipse pero nada, quien pensaría que la solución era un producto de Microsoft.

Recientemente Microsoft liberó las versiones Express del Visual Studio 2008 que se pueden descargar gratuitamente. Con este producto podemos compilar el Qt y también crear nuestras propias aplicaciones. En este post explicaré como hacerlo.

Obviamente lo primero es descar e instalar el Visual C++ 2008 Express Edition, una vez instalado (pesa como 150 MB) debemos descargar la versión de Código Fuente de Qt4 para Windows de la página de Qt Software. Ojo, no descargen la versión que viene con el MinGW sino la que es solo código fuente. La descarga pesa como 120 MB, es un archivo comprimido.

Descargamos el archivo y lo descomprimimos en C:\Qt\4.4.3 [EL NOMBRE DE LA CARPETA NO DEBE CONTENER ESPACIOS] (la 4.4.3 fue la versión que yo bajé pero puede que para el momento en que lean este post sea una más reciente). En esa carpeta queda un archivo que se llama configure.exe este es el autconf del builder, hay que ejecutarlo PERO NO SE PRECIPITEN, LEAN ABAJO.

Vamos a Inicio -> Todos los Programas -> Microsoft Visual C++ 2008 Express Edition -> Visual Studio Tools -> Símbolo del Sistema de Visual Studio 2008, esto nos abre una consola en el directorio del Visual C++ y habilita los paths para el maker, y el linker.

En esta consola nos vamos a C:\Qt\4.4.3\ (o el directorio donde hayan descomprimido el qt), una vez allí ejecutamos:

C:\Qt\4.4.3\>configure -platform win32-msvc2008

Este comando prepara el código para que se pueda compilar con el compilador de Microsoft Visual Studio 2008, una vez temine el proceso veremos un mensaje como este:

Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.

Entonces simplemente hacemos lo que dice ahi, ejecutamos nmake para que Visual C++ empiece a compilar. Este proceso tarde un rato, igual que en Linux, la consola va a estar compilando durante un tiempo creando los ejecutables de Qt Designer, Qt Assistant, el moc, etc y las dll de Qt, cuando el proceso termina Qt esta compilado e instalado en el equipo listo para usarse.

Ahora vamos a ver como crear un programita en Qt usando el Visual C++, vamos a crear el Hello World del tutorial de Qt. Pero primero hay algo adicional que debemos hacer y es agregar la carpeta bin de Qt al Path del Sistema:

Damos clic en Inicio y luego clic derecho en Mi PC, ahi vamos a Propiedades y en la pestaña de Opciones Avazadas le damos clic en Variables de Entorno, aparece un cuadro de diálogo con las variables de sistema y las variables de usuario, en las variables de sistema buscamos la variable Path, la seleccionamos y damos clic en Modificar. Al final del texto colocamos un ; (punto y coma) y despues escribimos la ruta del bin de Qt, que en mi caso era C:\Qt\4.4.3\bin y damos clic en Aceptar en todos los cuadros de diálogo.

Ahora si vamos a crear el Hello World.

Abrimos el Visual C++ 2008 y cremos un Nuevo Proyecto, en donde dice Tipo de proyecto seleccionamos Visual C++ -> General -> Proyecto de archivos MAKE. Seleccionamos la ubicación y el nombre del proyecto que en este caso será Hello World. Retiramos la marca de la casilla Crear directorio para la solución y damos clic en Aceptar.

Visual Studio nos abre un asistente para configuración del proyecto de archivos MAKE, vamos a ignorarlo y daremos clic simplemente en Finalizar. Se creará el proyecto y apareceran las carpetas y archivos usuales del Visual C++ (crea un montón de basura).

Vamos a crear el main, entonces, en el Explorador de Soluciones, en la carpeta Archivos de código fuente damos clic derecho y ahi seleccionamos Agregar -> Nuevo Elemento y escojemos Archivo C++ (.cpp), le damos el nombre main y hacemos clic en Aceptar.

El Visual Studio nos abre un editor de código, ahi vamos a escribir el código que está en el Qt Assistant, en el tutorial de Hello World que es este:

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QPushButton hello("Hello world!");

hello.show();
return app.exec();
}

Le damos en Guardar y ya estara listo el proyecto, ahora vienen las malas noticias, no podemos compilar desde el IDE (o por lo menos yo no he podido por que hay que configurarlo y yo no me he puesto en esas) así que vamos a compilar por consola:

Abrimos otra vez el Símbolo del Sistema de Visual Studio 2008 que abrimos para compilar el Qt. En esa consola vamos a la carpeta donde hemos guardado el proyecto de Visual C++ y allí escribimos estos comandos:

qmake -project
qmake
nmake

Esto compila el programa y genera el ejecutable en la carpeta Debug, en mi caso Hello World.exe. Desde la misma consola o desde un explorador de Windows podemos ejecutar la aplicación para constatar que funciona.



Bien, ya hemos creado y ejecutado una aplicación en Windows con Qt. Si corre el Hello world corre cualquier cosa. :)

No duden en dejar sus comentarios, dudas o preguntas.

Se cuidan Bye Bye.