viernes, 23 de marzo de 2007

Mobile Monday Barcelona: Juegos para el móvil

Mobile Monday Barcelona, el evento mensual sobre tecnologías móviles, se celebra este próximo lunes, 2 de abril y tratará sobre Juegos para el móvil. El evento tiene lugar en el Auditorio de la Universidad Pompeu Fabra, la asistencia es gratuita y hay sitio para unas 150 personas.

(Vía Microsiervos)

jueves, 22 de marzo de 2007

Reinstalando (V)

He instalado el Windows XP Professional en otra partición del disco de mi ordenador, y a continuación he hecho lo propio con el Embedded Visual C++ y el resto de componentes sobre los que ya escribí anteriormente.

Esta vez todo se ha instalado bien a la primera, sin dar ningún problema. Cuando he ido a instalar el Service Pack 4 del eVC he leído detenidamente los requisitios previos, y en una de las líneas decía:
Microsoft Windows® 2000 Professional SP2, Microsoft Window 2000 Server SP2, or Microsoft Windows XP Professional.
O sea, que es normal que no se instalara sobre Windows XP Home; eso me pasa por leer entre líneas en vez de con calma, aunque también podría haber puesto explícitamente que con la versión Home no funcionaría, en otros productos lo he visto.

A continuación he probado un ejemplo que ya intenté con el Visual Studio 2005, y esta vez ha funcionado correctamente al primer intento. Ahora podré empezar ya de una vez a mirar en profundidad la programación con OpenGL-ES.

Por cierto, me puedo responder a mi mismo a las preguntas que me hacía aquel día:

- ¿Uso el Visual Studio 2005 o el Embedded Visual C++?

El Embedded Visual C++, ahora está claro que con el VS 2005 no va a funcionar la librería.

- ¿Reinstalo el Windows de mi ordenador de casa, o uso el ordenador del trabajo?

Usar el ordenador del trabajo in situ tiene el inconveniente de que me puedo distraer fácilmente con cosas del propio trabajo. Intenté utilizarlo desde casa por Terminal Server, pero se producían constantemente microcortes que me impedían trabajar con comodidad. Finalmente he tenido que reinstalar Windows en el ordenador de casa.

martes, 20 de marzo de 2007

Vincent Mobile y Visual Studio 2005

He estado buscando información y parece ser que "oficialmente" la librería solo ha sido probada en eVC 4.0 , y quizás en Visual Studio 2003, pero no el el 2005.

En este foro se dice que se ha conseguido compilar la librería para que funcione con VS 2005, y se proporciona un enlace para descargar los binarios. Lamentablemente está roto y no se pueden conseguir por esa vía.

Así que se si se quiere utilizar Visual Studio las opciones que veo que hay son:

1) Compilar la librería a partir de su código fuente. Aparentemente es complicado.
2) Descargar la ultima versión de desarrollo del CVS. La última estable disponible es de hace casi un año y se desconoce si va a salir alguna más.
3) Probar a utilizarla con Visual Studio 2003, pero tampoco es seguro que vaya a funcionar.
4) Olvidar el Visual Studio y utilizar el Embedded Visual C, que aunque sea más limitado que el VS es el entorno de desarrollo "oficial" de la librería y suficiente para este trabajo

Probando con Visual Studio 2005

He estado probando a compilar un programa sencillo que utilizase ya alguna función de OpenGL-ES. He ido siguiendo las indicaciones de la página de ZeusCMD, configurando las rutas a los ficheros de cabecera y de librerías.

Se puede hacer de dos formas: Una, es copiarlos a los directorios propios donde está instalado Visual Studio para que los encuentre al construir el programa. El inconveniente es que "ensucia" la instalación del programa.

La otra, por la que he optado, es configurar el proyecto para que busque cabeceras y librerías en los directorios adicionales indicados. Esta forma es más limpia que la anterior, pero más farragosa ya que para cada proyecto hay que volver a configurar las rutas.

Para hacerlo hay que ir al menú 'Tools' -> 'Options' -> 'Projects and Solutions' -> 'VC++ Directories'. Después, seleccionar en 'Platform PocketPC 2003 (ARMV4)' y 'Show directories for' 'Include files' y 'Library files'. Ahí se indicarán las rutas a los directorios de la Vincent Mobile 3D Library bin\ARM\Debug\ y include\.

Al compilar el programa salen unos errores en los que indica que no puede encontrar la función WinMainCRT. Después de buscar por Internet, parece que se debe a que en una aplicación windows la función main() del C 'de toda la vida' se llama así. Para cambiarla al valor habitual o a cualquier otro hay que ir a 'Project' -> 'Properties' -> 'Linker' -> 'Advanced' -> 'Entry point'. Después de eso ya se puede compilar el programa principal que hayamos hecho, que a continuación se enlazará con la librería.

El siguiente problema surge precisamente en ese paso. Al construir ('Build') el programa, después de compilar el fichero principal se ejecuta el linker, y aparecen cuatro líneas con errores que empiezan como la siguiente:

ug.lib(ug_win32.obj) : error LNK2019: unresolved external symbol

En 'Project' -> 'Properties' -> 'Linker' -> 'General' hay una opción para aumentar la cantidad de información que proporciona el linker mientras se ejecuta, y al observar la salida se ve que encuentra correctamente el fichero de librería ug.lib. Pruebo a cambiar las rutas para que tome otras librerías alternativas del mismo nombre, pero el resultado es el mismo.

¿Será que estas librerías están pensadas para ser usadas con eVC y el Visual Studio no las maneja bien?

miércoles, 14 de marzo de 2007

Artículo del NYT sobre sistemas operativos en móviles

Visto en Barrapunto sobre un artículo del New York Times.

Según éste, el primero sería Symbian con un 66%, seguido por Windows Mobile con un 14% (algo menos que el año pasado), después BlackBerry con un 7% y a continuación Linux con un 6%.

Más o menos coincide con las cifras que obtuve cuando estuve buscando información sobre este tema (Symbian 67%, Windows 16% y Blackberry 7%).

martes, 13 de marzo de 2007

Reinstalando (IV) y probando (II)

He instalado el eVC en mi ordenador del trabajo. Todo el proceso ha ido bien, se ha instalado todo correctamente a la primera sin que me haya encontrado con ninguno de los problemas que me aparecieron en el ordenador de casa. ¿Será por la versión del Windows XP (Home en casa y Professional en el trabajo? ¿Será porque tengo instalado algo que impiede que se instale como debería? ¿O será lo contrario, que no tengo instalado algún otro componente necesario?

Bien, después de instalar el eVC, he hecho lo propio con el SP4 y el kit de desarrollo para Pocket PC (los ficheros necesarios para que en el primero se puedan desarrollar aplicaciones específicas para Pocket PC, y no solo para el genérico Windows CE).

He creado un nuevo proyecto del tipo "Hola mundo" y bien, ha funcionado, ha compilado a la primera y se ha ejecutado en el emulador.

Luego he descargado la librería Vincent Mobile y le he intentado con uno de los ejemplos (samples) que trae. Esto ha costado un poco más, es necesario copiar varios ficheros de cabecera y librerías en los directorios donde está instalado el eVC, así como una dll que ha de copiarse en el propio dispostivo (PDA, Smartphone, o emulador).

Después de varias tentativas, finalmente lo he conseguido. Ha sido necesario copiar la DLL en la misma carpeta donde se generaban los binarios, porque copiándola en el directorio de Windows de la PDA no la encontraba. Después de hacer eso, he punteado en el fichero con extensión .exe y se ha abierto correctamente, mostrándome un cubo visto desde una de sus caras.

Para hacerlo funcionar me ha sido de mucha ayuda esta página que ya mencioné en otro post y que he añadido a los links de interés.

Ahora tengo varias dudas de ordén práctico:
- ¿Uso el Visual Studio 2005 o el Embedded Visual C++?
- ¿Reinstalo el Windows de mi ordenador de casa, o uso el ordenador del trabajo?

Continuará...

lunes, 12 de marzo de 2007

Utilizando Visual Studio 2005

No he tenido ocasión de instalar el eVC en otro ordenador, así que continúo trasteando con Visual Studio 2005. Se me hace cuesta arriba porque en los últimos años apenas he programado (me dedico a administrar redes y sistemas) y lo poco que he hecho ha sido bajo Linux con las herramientas de GNU (gcc, make, y editores de texto como el kate de KDE).

La primera impresión es que el entorno está un poco sobrecargado: hay "muchas" ventanas, con muchas opciones, y muchos botones, y la mitad de lo que pone en ellos no se lo que es. Además, no conozco la jerarquía de clases de Visual C++ ni de Windows. Así pues, decido empezar leyendo ayudas y modificando la aplicación de prueba que mostraba una ventana vacía con dos menús, para que haga "algo" más, por ejemplo mostrar un sencillo msgBox con alguna cadena.

Empiezo leyendo la ayuda, comenzando por algunos conceptos de C++ para refrescar la memoria. Después comienzo a mirar el código, y marco varias palabras clave para que la ayuda me diga para que sirven. Después de estar varios minutos consultándola y cambiando algunas líneas de código, no consigo progresar mucho.

Paso a buscar ejemplos en Google, y sigo haciendo más pruebas, hasta que finalmente consigo mostrar el cuadro de diálogo en la ventana vacía que corre en el emulador.

Conclusión: El sistema de ayuda puede que esté bien como referencia, pero como tutorial para iniciarse no sirve, es mejor recurrir a internet.

jueves, 8 de marzo de 2007

Reinstalando (III) y probando

Después de reinstalar el último día el Visual Studio 2005 procedo a instalarle el Service Pack 1 que ya había descargado en una ocasión anterior. Son 400 Mb, y le cuesta un buen rato, pero finalmente termina el proceso.

Después de eso uso un programa para limpiar el registro de Windows, reinicio, y reinstalo el Embedded Visual C++ 4.0. Cuando termina el proceso, lo ejecuto, y sigue saliendo el error de que no hay ninguna plataforma disponible. Pruebo de nuevo a instalarle el SP4, y tal como ocurrió la última vez me aparece el error de problemas con el ODBC. Lo dejo por imposible, y me pongo a mirar el Visual Studio. Los ejemplos que he visto por internet sobre el uso de la librería de OpenGL están todos pensados para ser usados desde eVC, así que cuando me ponga con ello seguramente lo pasaré un poco mal. Como último intento, copio los ficheros de instalación en una memoria USB con la intención de instalarlo en otro ordenador, uno del sitio donde trabajo, porque en casa no tengo más.

Abro el Visual Studio 2005 y creo un proyecto utilizando la plantilla "Win32 Smart Device Project". Le indico que utilice la plataforma "Pocket PC 2003" y que el tipo de aplicación a crear es "Windows application". Genera los ficheros necesarios y compruebo que se ejecuta lanzando el emulador (todo esto es lo que ya había hecho la vez anterior).

Miro el código, y viéndolo en general me hago una somera idea de lo que hace, pero entrando en detalles (llamadas a funciones, tipos, macros, constantes, clases) no entiendo nada. Pruebo un poco el sistema de ayuda: Seleccionando una palabra y pulsando F1 muestra información sobre ella si hay disponible (por ejemplo, si es una función de librería de las que vienen con VS). Pruebo también el debugger, poniendo algún punto de ruptura y cuando llega a él comprobando el valor que toman las variables, y continuándo la ejecución presionando repetidamente la tecla F5 hasta que se alcanza el siguiente punto.

martes, 6 de marzo de 2007

Reinstalando (II)

Continúo reinstalando las herramientas de desarrollo.

Antes de reintentarlo hago de nuevo limpieza en el disco duro hasta dejar libres 2,4 Gb.

Inicio de nuevo la instalación de Visual Studio 2005, y voy siguiendo los mismos pasos que en la anterior ocasión. Llego hasta la barra de progreso del registro de componentes que puede tardar varias horas. De nuevo mientras ceno lo dejo trabajando y cuando vuelvo esta vez sí ha terminado con éxito. ¿Era pués cuestión de espacio? ¿Y por qué no avisó el instalador la vez anterior?

Lanzo la aplicación, y creo un proyecto del tipo "Win32 Smart Device Application", y al contrario que en la ocasión anterior, esta vez funciona. En las siguientes ventanas del asistente le indico que quiero hacer una aplicación para Pocket PC 2003 y que sea con una ventana vacia. Genera algunos ficheros de código, y le doy al botón de ejecutar. Al hacerlo compila el programa, y lanza el emulador. En la ventana aparece una imagen de una PDA y esta vez puede verse corriendo en ella el Pocket PC, y unos segundos después la aplicación que acabo de crear, que es una ventana en blanco con un botón de OK y otro de Help.

sábado, 3 de marzo de 2007

Reinstalando

He estado toda la tarde reinstalando los distintos componentes del entorno de desarrollo que ya mencioné en un post anterior.

Primero he tenido que liberar espacio de disco, me quedaban libres unos 600 Mb y no eran suficientes para descomprimir y luego instalar el Visual Embedded C++ 4.0 (eVC). Parece ser que no calcula muy bien a priori el espacio necesario para instalarlo y no se ha dado cuenta hasta que ha fallado porque se había quedado sin sitio.

He vuelto a iniciar la instalación pero diciéndole que descomprimiera los ficheros en un directorio de otra partición donde tengo más sitio (D:) y también le he cambiado los directorios de instalación para que lo haga en esa unidad de disco. Antes de instalar el entorno en sí me dice que no está instalado el "Platform Manager" y que va a proceder a hacerlo. Aparece la barra de progreso y al poco rato falla, y se interrumpe también la instalación original del eVC.

Me las arreglo para instalar de forma independiente el dichoso Platform Manager, entrando en las carpetas descomprimidas en el directorio temporal por eVC y ejecutando un fichero con extensión .msi (Microsoft Installer) en lugar del setup.exe que hay. Finalmente se instala.

Vuelvo a iniciar la instalación del eVC y esta vez termina bien. Lo ejecuto para probarlo, y me aparece el error de que no hay ninguna plataforma disponible y que seguramente se debe a que su carga falló durante la instalación (¿?).

Desinstalo, reinicio, y vuelvo a repetir todo el proceso anterior. Mismo resultado al ejecutar el entorno. Decido ignorarlo e instalar el Service Pack 4, esperando que con un poco de suerte machacará algún fichero que se haya instalado incorrectamente y solucionando así el problema. Aparece la barra de progreso, copia todos los ficheros, y cerca del final comienza a registrarlos. Entonces aparece una ventana de error, en la que dice que tiene un problema con los contraladores ODBC y algo relacionado con SQL, y que no se puede continuar.


La barra de progreso se mueve hacia atrás y se deshace todo lo que el programa de instalación había hecho. La instalación se ha abortado, y el eVC sigue dando el mismo error que daba al principio.

Decido dejar pues de momento la instalación del eVC y lo intento con el Visual Studio 2005. Pongo el DVD en la unidad e inicio el proceso. Selecciono los componentes a instalar y empiezan a copiarse. La barra de progreso va avanzando entre el ensordecedor ruido de la unidad de DVD girando a toda velocidad, hasta que termina la copia. El ruido cesa y aparece otra barra como la anterior mientras se registran diversos componentes del sistema, proceso que puede durar unos minutos o varias horas según reza el cartel. La barra va progresando lentamente hasta faltarle un trocito para el final, y en ese momento parece dejar de avanzar. Se hace la hora de cenar y lo dejo para que termine.

Cuando vuelvo más de una hora después, sigue exactamente en el mismo punto, no ha avanzado nada. Lo dejo un rato más, pero parece claro que no va a seguir progresando. El resto del sistema funciona bien, y en el task manager del Windows la aplicación no aparece como "bloqueada". Es extraño, le doy a cancelar e interrumpo el proceso.

Resultado: eVC instalado, pero no funciona y no se instala su service pack. Visual Studio 2005 no se puede instalar tampoco. Cuando instalé todas estas aplicaciones en la máquina virtual con la que inicié las pruebas no tuve ni un solo problema, y ahora que lo estoy haciendo sobre un PC real, no paran de surgir ¿qué estaré haciendo mal?