miércoles, septiembre 05, 2007

Publicación fácil: Lulu.com

Siempre me ha gustado leer. Además soy creativo, así que también me ha dado por escribir en numerosas ocasiones. ahora, gracias a Lulu.com soy escritor, editor y publicador de mis propios libros.
Lo cierto es que siempre he querido escribir un libro. He escrito muchísimas historias largas y cortas y aún tengo más volando por el pensamiento, pero nunca me había atrevido a tratar de publicar nada. Ahora, sin embargo, eso es la cosa más fácil del mundo gracias a Lulu.com.

Lulu no es más que una imprenta on-line, ellos simplemente ponen a tu disposición sus imprentas para que publiques tu libro y lo hacen bajo demanda, es decir, no necesitas firmar que vas a vender 5.000 ejemplares para publicar. ¿Cómo lo hacen? Por Internet.

Lulu.com te permite crear una cuenta de editor. Desde ese momento el editor eres tú mismo, no dependes de nadie más. Puedes crear un proyecto, editarlo con tu editor de textos favorito y subirlo a la web. El siguiente paso es generar una portada atractiva. Puedes usar el editor on-line de Lulu, o bien subir tu propia portada. Finalmente, publicas tu trabajo poniéndole un precio de venta. Para ti, las copias que encargues de tu libro impreso saldrán a precio de coste más gastos de envío, para el resto del mundo puedes especificar un precio. Si lo haces, te llevarás el 80% de las ganancias y Lulu el 20%. Así de simple.

Yo acabo de publicar mi primera novela. Hace años que quería hacerlo y he escrito innumerables bocetos. No obstante ahora ya está no solo terminada, sino publicada y disponible para venta por Internet gracias a Lulu. Su título es Virus Omega y es una novela intrigante y muy dinámica que esconde una trama sorprendente. Gira en torno a una empresa de microinformática que decide sacar al mercado un avance importantísimo para las ciencias de la computación: el primer biocomputador de base genética, el Helixon. Pero detrás de la empresa se entreteje una trama misteriosa que acaba con un final realmente sorprendente. ¡Mientras lo escribía me sorprendí hasta a mí mismo! Si queréis escharle un ojo al libro, o incluso comprarlo, lo tenéis aquí. Espero que os guste.

miércoles, julio 11, 2007

2008 - El año del programador para Microsoft

Microsoft anuncia fecha oficial de lanzamiento para las nuevas herramientas de desarrollo de aplicaciones para Windows y .Net
He leído hoy la noticia (con fecha de ayer) de que Microsoft ya ha fechado su próximo gran lanzamiento. El 27 de Febrero de 2008 verán la luz las versiones definitivas de Windows Server 2008, Visual Studio 2008 y SQL Server 2008, todas juntas el mismo día para todo el mundo.

Mientras que este año ha visto el lanzamiento de un conjunto de tecnologías especialmente diseñadas para el usuario (Windows Vista, Microsoft Office 2007 y Microsoft Exchange), el año que viene estará orientado principalmente a los desarrolladores y a las IT.

Aunque gran parte de las mejoras que Visual Studio 2008 incorporará ya están en fase de pruebas en la beta de Orcas y en forma de extensiones para Visual Studio 2005, las mejoras de esta herramienta de desarrollo prometen bastante. Además de incluir funciones que, a día de hoy, están en fase de desarrollo todavía para el Framework 3.0, incluirá las mejoras para el próximo Framework 3.5 (el verdadero nuevo .Net Framework), LINQ y novedades para el nuevo Windows Mobile, que también se espera para el año que viene.

Mientras tanto, atentos a las sucesivas Betas y RCs, que a lo mejor nos llevamos la sorpresa (como ya ocurriera con 2005) de que reparten copias gratis a todos los interesados.

domingo, junio 03, 2007

Portando aplicaciones .NET a Mono

Manual de buenas prácticas de programación multiplataforma con tecnologías .NET

Jonathan Pobst, el creador de la herramienta de testeo de ensamblados por excelencia de Mono (Moma) que viene de serie con Mono desde la versión 1.2, ahora ha dejado un regalito para todos aquéllos fans de las posibilidades multiplataforma de .NET que quieran portar sin mucho esfuerzo sus aplicaciones a Mono.

La realidad, queramos o no verla, es que a pesar de todos los pesares, Mono y .NET son plataformas distintas funcionando en medios distintos, pero que proveen un entorno común para la ejecución de código. Lo verdaderamente interesante de esta tecnología es que podemos hacer que un mismo programa, sin volver a compilar, funcione en muchas plataformas... si lo diseñamos y programamos bien.

Por supuesto, si nuestro programa va orientado sólo a usuarios Windows, utilizaremos .NET y nos dará igual portarlo a Mono... y con el tiempo desarrollaremos hábitos de programación de programadores Windows que costará desarraigar. A la inversa, si lo hacemos con Linux o MacOS como objetivo, usaremos Mono y sus librerías especiales, y nos olvidaremos de que hay algunas cosas más a tener en cuenta cuando programamos una aplicación multiplataforma. Pero si queréis que vuestras aplicaciones estén disponibles en el mismo momento para todas las plataformas, hay que aprender hábitos de programación multiplataforma.

El siguiente artículo muestra, con un ejemplo, cómo transformar una aplicación dependiente de la arquitectura .NET de Microsoft sobre Windows a una multiplataforma que funcione al tiempo sobre .NET o Mono. Las directrices son muy sencillas. Paso a resumirlas ahora en español.

1. Rompiendo la brecha entre Mono y .NET

A pesar de los pesares, Mono sigue siendo una tecnología diferente en algunos aspectos de .NET. La mayor de sus diferencias es que, mientras .NET va por su segundo Runtime y su tercera iteración de librerías de clases, Mono todavía está inmerso en el desarrollo de la capa de compatibilidad para la versión 2.0 de .NET. Esta situación deja patente que algunos métodos y clases de .NET que podríamos estar usando en nuestra aplicación para Windows, podrían no existir todavía para Mono.

Para detectar el problema de aplicaciones que funcionan en .NET y no en Mono, el propio autor del artículo, Jonathan Pobst, liberó Moma, que hace un análisis de los métodos a los que llama cada ensamblado y da un informe detallado de lo que está y no está implementado hasta el momento. Además, podemos hacer nosotros mismos la prueba con Mono y ver si nuestra aplicación compila y funciona en un entorno Linux.

Para solucionar el problema, dado el caso, hay dos alternativas. La primera es generar dos ensamblados, uno para cada una de las plataformas, donde adaptemos el código a las plataformas que tenemos como objetivos. Lo bueno de esta solución es que el programa funcionará bien siempre que usemos el ensamblado apropiado a nuestra plataforma y que, una vez Mono llegue al punto de no generar errores, podremos usar el ensamblado de .NET en Mono sin problemas. Lo malo es que mientras tanto tendremos que generar dos veces el mismo código (o tres... o cuatro... dependiendo de si hay más incompatibilidades que sólamente las del Runtime).

La segunda opción es utilizar mecanismos de detección en tiempo de ejecución para hacer funcionar una u otra parte del código según esté siendo utilizado en Mono o .NET. La ventaja es que con un único ensamblado contemplaremos todas las plataformas. La desventaja, que tendremos duplicidad de código, dificultad de búsqueda de errores y mucha más dificultad de readaptación una vez Mono cumpla los requisitos básicos de nuestra aplicación.

También hay otra opción, aunque puede que no se de para todos los casos. Adaptar nuestro código al estado actual de Mono. Esto envolverá utilizar otros métodos o clases que ya estén implementados en Mono y que hagan lo mismo que esperamos que haga nuestra aplicación, o crearnos los nuestros propios. Para esto habrá que estar atento al punto en el que se encuentra el desarrollo de Mono y saber qué métodos y clases de compatibilidad están disponibles en cada versión de Mono.

2. Rompiendo la brecha entre Windows y Linux (y Solaris (y MacOSX (y BSD (...))))

Incluso evitando problemas con las diferencias en el Runtime y las clases de compatibilidad, todavía puede ser que tengamos problemas con las llamadas al sistema o el uso de ficheros, que depende del sistema. Los tres grandes grupos de errores en este aspecto son:

  • Win32 P/Invokes
  • Mayúsculas y minúsculas
  • Definición de subdirectorios y rutas de archivos

Los Win32 P/Invokes son las llamadas que se hacen a librerías DLL del sistema. En ocasiones esas librerías son nativas del sistema, otras veces son de otras aplicaciones o distribuídas por Internet, pero el gran problema es que no son de código manejado. En otras palabras, dependen del sistema. Por eso, para solucionar problemas con los P/Invoke siempre se preferirá, a ser posible, evitar llamadas directas a librerías del sistema y utilizar código manejado. Por lo general, con la trayectoria que lleva .NET y Mono ya existe código manejado para casi todo. En caso de no existir, la prioridad es generarlo nosotros... y sólo en casos extremos, utilizar P/Invokes. El problema es que la llamada a las librerías del sistema nos obligará a detectar en tiempo de ejecución en qué sistema estamos y hacer llamadas a una u otra librería dependiendo de ello.

Los otros dos problemas son mucho más fáciles de solucionar. Sobre el primero de ellos, el problema de mayúsculas y minúsculas, lo único que hay que tener en cuenta es que, a la hora de programar, debemos hacerlo tomando las reglas más restrictivas, es decir, siendo consistentes en el nombrado de los ficheros y utilizando mayúsculas donde haya que usarlas. Si siempre usamos minúsculas en todo no habrá problemas, pero si usamos mayúsculas tenemos que acordarnos de usarlas también en el código de nuestra aplicación.

El problema de usar "\" en Windows y "/" en Linux para dividir los directorios nos obliga a no poder utilizar directamente strings para llamar a ubicaciones de archivo. En su lugar tendremos que hacerlo utilizando Path.DirectorySeparatorChar para dividir los archivos o bien Path.Combine, que nos combinará los nombres de los subdirectorios usando el carácter divisor apropiado.

Conclusión

Si vas a lanzarte a la programación .NET ten en cuenta que tus aplicaciones venderán más si van dirigidas a más público. La multiplataforma no es simplemente una idea friki idealista de cómo debería ser el mundo de la informática. Es un objetivo claro de mercado. Puedes convertirte en un programador .NET, tener hábitos de programación sobre Windows y tener como público objetivo los usuarios de Windows. Puedes convertirte en un programador Mono, tener hábitos de programación sobre plataformas Unix y tener como objetivo los usuarios de Linux. O puedes convertirte en un programador multiplataforma, tener hábitos de programación sobre multiplataforma, siendo capaz de programar en Visual Studio o Monodevelop (o cualquier otro) la misma aplicación y de desarrollar soluciones teniendo como público objetivo a todo el mundo que tenga un ordenador, sea cual sea la marca, modelo o sistema operativo. Si tu fueras la empresa, ¿a quién buscarías?

viernes, mayo 04, 2007

Mike Krueger se pasa a Mono

Mike Krueger, el creador del IDE SharpDevelop se ha unido al Mono Team de Novell
Hasta el momento y a la espera de la versión 1.0 de MonoDevelop, SharpDevelop ha sido el entorno de desarrollo en C# de referencia en el mundo del software libre. Un IDE sobrio, extensible y muy fácil de usar hicieron de él una joyita en los inicios de las tecnologías .NET.

Con el despunte de Mono y su imparable fuerza, Monodevelop tomó el relevo y empezó a integrarse con la plataforma, al igual que lo hace Visual Studio en Windows. En su última versión, un Monodevelop bastante adulto, incorpora gran cantidad de las funciones que hicieron de SharpDevelop un editor robusto, además de mucho trabajo añadido como el control de revisiones automático, integración con las últimas versiones del runtime de Mono de manera prácticamente inmediata y, para mí una de las mejores, integración total con proyectos de Visual Studio.

Monodevelop, sin embargo, sigue yendo por detrás de Visual Studio en algunos aspectos. Es un gran editor de código, pero es un muy pobre editor Visual de pantallas y el IDE, sin duda, es criticable y mejorable. Para solucionar todas estas cosas, el creador del IDE SharpDevelop (del que Monodevelop implementa gran parte del código), el señor Mike Krueger, se ha unido al Mono Team de Novell. Además de él y de los colaboradores habituales del proyecto, algunos proyectos del Summer of Code van orientados a proveer a Monodevelop de las funcionalidades que todos echamos en falta, entre ellas un editor de Windows.Forms.

El tiempo dirá, pero con la experiencia del año pasado, no será difícil que nos encontremos un Monodevelop completo mucho antes de finales de año. Puede incluso que antes de que acabe el verano.

sábado, abril 21, 2007

Linux va "de cine"

La postproducción de películas y las herramientas de efectos especiales migran a Linux.

Me ha llamado la atención esta noticia en Barrapunto y en PC Actual y al leerlo me he dicho que tenía que escribir mi opinión sobre el tema.

Que las herramientas de Autodesk son las mejores, no hay quien lo ponga en duda en este mundo. Los manufacturadores de Maya y 3D Studio Max son los jefes del mercado del diseño 3D artístico con estas aplicaciones y del diseño 3D estructural con AutoCAD. Pero si ya nos tenían acostumbrados a rizar el rizo, hace ahora un año sorprendieron de nuevo a todos migrando sus estaciones de trabajo a Linux.

Según los comentarios de PC Actual, aseguran que "este sistema operativo permite a Autodesk aprovechar las mejoras rápidas y continuas a componentes de hardware básico como unidades centrales de procesamiento, tarjetas de gráficos y tecnología de redes Infiniband". Así que el funcionamiento de estaciones Linux, siempre en contínuo desarrollo, al final es una baza a favor y no en contra de la productividad.

En una noticia de hoy mismo que leo en la press room de Autodesk, se hace balance de cómo se ha implantado esta nueva tecnología entre los clientes de Autodesk. Es muy interesante que "Sogecable, el mayor grupo de televisión por suscripción en España ha comprado un completo paquete de emisión de Autodesk, que incluye numerosos sistemas Discreet Flint funcionando en Linux y múltiples paquetes del software Combustion. Sogecable ha invertido en un flujo de trabajo conectado, conectando soluciones Autodesk unas con otras mediante un sistema de almacenamiento común Maximum Throughput’s Sledgehammer. Diferentes operadores pueden combinar los materiales en tiempo real, posibilitando la creación de contenido dinámico de postproducción integrada. La reducción en la necesidad de fuentes externas ha resultado en la consecución de una máxima calidad y consistencia en todo el proceso de producción de la emisión". Todo ello funcionando sobre Linux.

Para que luego digan que Linux es un sistema poco fiable.

viernes, abril 20, 2007

Lanzamiento de Visual Studio Codename "Orcas" (Beta 1)

La nueva revisión del mejor entorno de programación y desarrollo de software para Windows y .Net que incluirá las mejoras del próximo .Net Framework 3.5 (codename Orcas) ya tiene una Beta disponible al público.

En realidad, tiene mucho más. Orcas es el nombre que recibe actualmente el proyecto que reformará el .Net Framework desde el núcleo y añadira nuevas funcionalidades de desarrollo verdaderamente interesantes. El nuevo .Net Framework, orientado principalmente a solidificar los añadidos que se hicieron con la versión 3.0 y a acelerar y simplificar el proceso de desarrollo de software para Office 2007 y Windows Vista, ya tiene una Beta 1.

Otras añadiduras interesantes al Framework 3.5 son el desarrollo web con AJAX (anteriormente conocido por el codename Atlas), los WPF, WWF, WCF y WCS de .Net 3.0 integrados en la herramienta Visual Studio y mejoras tan interesantes como C# 3.0 y LINQ integrado con los lenguajes .Net.

Todo esto está disponible ya en la última Community Technology Preview que ha venido a llamarse Beta 1. El hecho de que ya se encuentre en Beta 1 indica lo cerca que está el Visual Studio "Orcas" de dejar de ser un "codename" para convertirse en nuestra próxima plataforma de desarrollo.

Por supuesto, es importante no instalarlo en un sistema de producción, para evitar las incompatibilidades y bugs que siempre acompañan a las versiones "preview", pero también es interesante verse las caras con el IDE de programación que va a marcar historia en los próximos años.

Además de las versiones ISO instalables, se proporcionan imágenes de Virtual PC y las versiones Express Edition que se liberarán gratuitamente, como siempre, para principiantes e interesados en conocer la tecnología a un nivel más básico. A continuación tenéis el listado de enlaces para bajar los productos. Podéis ver la noticia aquí.

* Las imágenes ISO marcadas con asterisco todavía no están disponibles en el servidor de descargas de Microsoft. Los hipervínculos se añadirán en cuanto estén disponibles.

jueves, abril 12, 2007

Mono Summer of Code

Tras la magnífica experiencia de Google Summer of Code en 2006, Mono repite este año con jugosos proyectos para el verano.

El año pasado, gran parte de las mejoras que vimos aparecer en las sucesivas versiones de Mono (que fueron unas cuantas) fue gracias a que unos cuantos estudiantes se plantearon trabajar en el Google Summer of Code. ¿Que qué es? Ahora os lo explico.

Summer of Code es una propuesta de Google, el Gran Gigante de Internet, para promover proyectos de software libre. Todos los años desde 2005, Google abre el Summer of Code a organizaciones que promueven proyectos de software libre. Estas organizaciones proponen proyectos sobre diferentes tecnologías, todos de software libre, y se abre la veda para que los estudiantes de todo el mundo escojan qué proyecto o proyectos quieren hacer. Además, los estudiantes pueden proponer nuevos proyectos que consideran importantes para las organizaciones que acuden al Summer of Code y estos pueden ser aceptados. Cuando el período de proposiciones se cierra, se evalúa a los interesados y los proyectos y comienza el Summer of Code.

Cada proyecto tiene un estudiante encargado de desarrollarlo, al que una organización ha seleccionado de entre todos los que estaban interesados. Además, todos los estudiantes que desarrollan un proyecto en el Summer of Code, tienen un mentor, una persona designada por la organización que asigna ese proyecto y que sabe bastante sobre el tema, para que pueda resolver dudas o compartir ideas. Cada organización se encarga después de evaluar el código generado y "poner una nota" al proyecto. Si el proyecto es útil para el desarrollo (generalmente siempre hará falta retocarlo) el proyecto se aprueba y el estudiante es un ganador del Summer of Code. ¿Qué gana? Si el proyecto resulta satisfactorio a la organización mentora, Google premia con 4.500 $ al estudiante que lo ha desarrollado.

Si estás pensando en apuntarte, siento comunicarte que el Summer of Code 2007 ha cerrado el período de iscripciones. Hoy acaba de empezar el período de desarrollo. A la organización mentora de Mono se le han asignado 24 estudiantes repartidos en 24 proyectos para la mejora del Mono Framework y de las herramientas y aplicaciones más ligadas a Mono. Podéis ver la lista de proyectos aprobados para el desarrollo aquí.

Algunos de ellos son verdaderamente interesantes. Por ejemplo MonoDevelop cuenta con los proyectos para un depurador (cosa que le hacía mucha falta), un editor gráfico para Windows.Forms y soporte para proyectos y compilación de C/C++. Se van a desarrollar proyectos orientados a mejorar la compatibilidad Mono-.Net, poniendo énfasis en las nuevas añadiduras hechas para .Net 3.0 (Ribbons, WPF y WCF) y se va a empezar a trabajar en algo que vendrá de serie con .Net 3.5 pero que ya existe también como parche para 2.0 y 3.0, ASP.Net AJAX. Todo esto entre otras muchas mejoras.

Como he dicho antes, el año pasado la experiencia de Summer of Code para Mono fue excepcionalmente buena y este año pretenden que sea igual. ¿Os apuntáis el año que viene?

miércoles, febrero 21, 2007

Y vuelta

Hace demasiado que no posteo en mi blog. Tampoco es que haya tenido demasiado tiempo, la verdad, pero más me vale poneros al día sobre todas las cosas que podéis hacer y no estáis haciendo, a ver si os muevo de la silla.

Para empezar, aquellos que, como yo, estéis en época de estudios, dejad de leer o escribir en los blogs (propios o ajenos) y empezad a estudiar, que es vuestro trabajo. En segundo lugar, si os queda tiempo, a lo mejor os interesa investigar algunas de las cosas que os propongo.

La semana pasada salió en lanzamiento mundial el gran lanzamiento informático del año: Windows Vista. Para los estudiantes matriculados en la EPS (más concreto para los que estén cursando alguna asignatura del DLSI) la descarga de la versión Business de Vista es totalmente gratuita y pueden empezar a probarlo ya... siempre que los ordenadores cumplan los requisitos, claro. Por desgracia, los desarrolladores de software y hardware no han hecho buen uso de las sucesivas CTPs, Betas o RCs liberadas por parte de Microsoft y tendremos que esperar algún tiempo (no creo que más de tres meses) para que muchos de estos desarrolladores saquen versiones o parches para sus productos de manera que se adapten a Vista.

Además de probar Windows Vista, podés echarle un vistazo a las extensiones del .net Framework que han venido a llamarse .NET Framework 3.0 y que vienen de serie con Windows Vista. Las librerías del WWF, WPF, WCF y WCS son interesantes y ya están apareciendo CTPs y versiones finales para desarrollar sobre ellas con el mismo Visual Studio 2005.

Además, tal vez queráis probar a programar para Office 2007, que incorpora una interfaz de usuario muy novedosa e intuitiva. Para eso también ha aparecido una nueva versión de las VSTO para Ofiice 2007.

En el otro extremo de las tecnologías .net, la rama open source, Mono se sigue moviendo adelante en el objetivo de cumplir los requerimientos para la versión 2.0 (compatible 100% con .net 2.0) en el segundo o tercer cuatrimestre de este año. Las versiones 1.2.2.1, 1.2.3 y 1.2.3.1 han sido liberadas en el último mes, todas ellas incluyendo a parte una nueva herramienta muy interesante para aquellos interesados en la migración de aplicaciones entre tecnologías. MoMA (Mono Migration Analyzer) es una aplicación Mono/.net que analiza las llamadas de los ensamblados ya compilados en .net y nos informa de su estado contra la última versión de Mono. Es decir, sabremos qué falta por implementar de Mono para que nuestras aplicaciones .net 2.0 funcionen. Los envíos de registros hechos con esta herramienta ayudan a los desarrolladores de Mono a saber qué funciones son más importantes y cuáles se usan menos, y actuar en consecuencia a la hora de implementarlas antes.

Además, el proyecto Mono.Xna sigue moviéndose adelante. Ya os informamos hace algún tiempo de las charlas y competición con XNA que se llevaría a cabo en la Universidad de Alicante. De hecho en estos momentos sigue funcionando hasta el próximo viernes. El proyecto para Mono, que está todavía en fase pre-alfa de desarrollo, también es una alternativa para aquellos que estéis un poco aburridos y queráis un reto de programación. Se han mudado al gestor de código y versiones de Google. Podéis encontrar la nueva página base de Mono.Xna aquí. Os animo a bajaros el estado actual de Mono.Xna del repositorio y empezar a trabajar.

Si habéis leido hasta aquí y todavía tenéis deberes que hacer o trabajos que presentar... o símplemente que estudiar. ¡HACEDLO YA! Por mi parte ya he terminado de consumir vuestro tiempo.

domingo, febrero 04, 2007

SimpleExample en Linux

Tras un poco de trabajo, he sido capaz de generar y ejecutar Mono.Xna y SimpleExample en Linux
Lo cierto es que, sabiendo poco de las tecnologías, que además siguen en desarrollo, me ha costado un poco generar el proyecto con Monodevelop y, finalmente, ejecutarlo con Mono en mi OpenSuse 10.2, pero finalmente lo he conseguido.

La cosa es que, en realidad, es bastante sencillo una vez comprendido todo lo que envuelve. No obstante, como me siento orgulloso de haberlo conseguido y puede que haya quien no pueda hacerlo, explicaré cómo lo he hecho.

En primer lugar, para que las aplicaciones con Mono.Xna funcionen correctamente en Mono-Linux, necesitamos todas las librerías dependientes del sistema a las que el Tao Framework hace referencia. En general son las librerías típicas de programación gráfica (OpenGL, SDL, etc.). Por supuesto, será necesario disponer de las últimas dll de Tao, actualmente en versión 2.0RC1.

Tras descargarnos el proyecto Mono.Xna o actualizarlo a su última revisión, utilizaremos el comando sh MonoDevelop.sh para que se genere la solución de Monodevelop que nos permita trabajar con el proyecto en Linux. Si lo abrimos y le damos a generar, nos aparecerán del orden de 64 errores de compilación. Eso es porque Mono.Xna está programado sobre el futuro Mono Framework 2.0, y tenemos que explicitarlo para cada uno de los proyectos que componen la solución. Con Monodevelop, hacer eso es sencillo. Simplemente tendremos que ir, proyecto a proyecto, haciendo clic secundario en el explorador de soluciones y cambiando en la ventana de opciones el "target" o "objetivo" por Mono 2.0 en lugar de 1.0. Tras haber hecho esto con todos los proyectos de la solución, la podremos generar sin problemas (aunque con un montón de warnings).

Una vez generada la solución, el siguiente paso obvio es probar si el SimpleExample funciona correctamente sobre Linux. Y lo hace, pero Mono, al contrario que .net, necesita unos pequeños archivos para cada dll utilizada (los dll.config). Si no los tenemos incluídos en el directorio del proyecto o las referencias de los mismos en la caché principal de Mono (con gacutil) el proyecto no se ejecutará. El comando mono SimpleExample.exe fallará porque nos faltarán dll aunque en realidad estén en el mismo directorio. ¿Qué hacemos?

En el paquete de la última versión del Tao Framework están todas las dll.config que necesitamos. En concreto la más necesaria para este proyecto es la Tao.SDL.dll.config, aunque no está de más añadir la Tao.OpenGL.dll.config y las otras para cada una de las dll que encontraréis en el directorio del proyecto. Estos archivos le dicen a Mono a qué librerías físicas (dependientes del sistema) hacen referencia los ensamblados dll.

Una vez añadidos estos archivos, hacer funcionar el SimpleExample es tan sencillo como abrirlo desde la consola con mono SimpleExample.exe o bien "Abrir con..." mono. La ventana de color azul clarito se presentará ante nuestros ojos iluminando las ilusiones de todos aquellos que quieren ver Mono.Xna funcionando algún día con todas las plataformas del mundo.

Unas ligeras modificaciones en el código del programa os permitirán cambiar el fondo de la pantalla, dependiendo de las teclas que estén pulsadas en ese momento. Pronto, cuando las primeras clases de Pong estén medianamente cubiertas, también podremos cargar texturas 2D en nuestros juegos y moverlas por la pantalla. Para eso falta verdaderamente poco. Estad atentos.

jueves, febrero 01, 2007

JTUA 2007

La Universidad de Alicante presenta sus Jornadas Tecnológicas
Desde el próximo 12 de Febrero, en la Universidad de Alicante, se van a celebrar las Jornadas Tecnológicas 2007, programadas por la Escuela Politécnica Superior. Entre ellas habrán dos muy interesantes, entre las cuales estoy involucrado. La primera, el día 14 de Febrero, en el Salón de Actos de la EPS1, hará una presentación LOVE (Lanzamiento de Office, Vista y Exchange). No será meramente una presentación de las diferentes herramientas que Microsoft acaba de lanzar al mercado. En realidad irá más a fondo y planteará las novedades que incluye el .net Framework 3.0, incluido de serie con Microsoft Windows Vista.

El día siguiente, 15 de Febrero, en el Salón de Grados de la EPS1, una nueva jornada orientada a .net está en el calendario. En ella, un servidor con ayuda de Miguel Llopis y Aaron Saugar (además de una tremenda comunidad de usuarios de .net/Mono por detrás) tratará de presentar las tecnologías .net de una manera más abierta y menos elitista. Se centrará en las mejoras que estas tecnologías proporcionan a la hora de programar aplicaciones con un objetivo claro: la multiplataforma. Entre las tecnologías que se usarán estarán, por supuesto, .net Framework 2.0/3.0, Mono 1.2.2.1 y XNA. Se presentará Mono a la comunidad universitaria y se introducirán algunos proyectos sobre Mono que están actualmente en desarrollo como Mono 2.0, Olive o Mono.Xna.

Si estás interesado en todo esto, tal vez te interese también apuntarte a los talleres programados a partir del 19 de Febrero. Se plantean dos posibles retos: un campeonato de programación de videojuegos con XNA y otro de proyectos para el Imagine Cup.

Además, el día 21, Miguel Llopis y Jorge De La Rosa presentarán unas nuevas charlas en el Salón de Actos de la EPS1: Programando Robots Lego, usando MS Robotics Studio y Lego NXT. Una charla que verdaderamente promete.

Os dejo por el momento my friends, que todavía tengo que prepararme un examen y las presentaciones de las JTUA 2007.

Mi Tienda Lulu