lunes, junio 15, 2009

SL File2Array v0.01

Estaba buscando algún programa en Windows que recibiera un archivo cualquiera y generara un archivo .c, .h o .java que expresera el archivo de entrada como un arreglo de bytes listo para copiar y pegar dentro de algún proyecto como código fuente. Desafortunadamente no encontré nada útil en Google así que decidí escribir mi propia aplicación.

SL File2Array para Windows abre cualquier archivo sin importar su extensión y genera otro archivo en lenguaje C que contiene en un arreglo cada byte del archivo. Esto es útil para incluir archivos completos dentro de un ejecutable como si fueran constantes.

Por ejemplo, archivo1.bmp es convertido a:
const byte imagen[]={0x42, 0x4d, 0x3a, 0x00, ..........., 0xff, 0xff, 0xff, 0x00};

El link para la descarga es el siguiente:
http://www.4shared.com/file/112035419/8f1b0e3f/SL_File2Array.html
Contraseña de descompresión: electrolinks_sanlink



Si tienes problemas al ejecutarlo talvez necesites descargar el NET Compact Framework 3.5 de Microsoft (34MB):
http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385

Espero que te sea de utilidad.

viernes, junio 12, 2009

Project Natal - Realidad virtual en serio

En el E3 de 2009, Microsoft presentó lo que yo esperaba de los videojuegos... realidad virtual. Todo lo que habíamos visto sobre videojuegos será anticuado... incluso el mismo Wiimote será cosa del pasado.

El proyecto se llama Project Natal... no requiere controles ni mandos, reconoce mediante cámaras de video todos los movimientos de un jugador o más jugadores, reconoce frases completas de voz... y todo esto en tiempo real mientras lo que uno hace y dice se adentra en el juego.

Realmente quedé impresionado cuando lo vi por primera vez, cuesta trabajo creer que sea posible... pero con las técnicas de inteligencia artificial y reconocimiento de patrones de hoy y además el triple-core con 2 threads por core de la xbox... es creíble.

En este video se ve al jugador moviéndose para golpear balones que son arrojados hacia él. Después se ve a la señora pintando un mural... todo sin controles y con solo movimientos corporales.



Este es el mejor video que he visto del proyecto. Comienza con un jugador peleando cuerpo a cuerpo con su entrenador, pudiendo esquivar sus golpes y apropinarle unos cuantos. La muchacha maneja un auto con solo mover el volante. El niño puede mover al gigante e incluso lanzar fuego con solo gruñir. Hay reconocimiento de objetos... se puede ingresar un objeto al juego con solo ponerlo frente a las cámaras estereo. Para conectarse al messenger o a xbox live solo basta con pararse frente a las cámaras para que la xbox reconozca nuestra cara. Simplemente increíble.



En este otro hay interacción total entre uno y un niño virtual. Lo curioso del video es que cuando uno interactúa con el niño siente la necesidad de atrapar los goggles que él avienta. Dice el narrador que todos los jugadores han sentido la necesidad de hacerlo. Después se ve a la muchacha moviendo el agua con sus manos e incluso se ve el reflejo de ella misma en el agua :shock: Posteriormente ella dibuja un pez en una hoja de papel real y se la pasa al niño virtual... asombroso.



Acá hay más videos...
http://www.xbox.com/en-US/live/projectnatal/
http://www.youtube.com/xboxprojectnatal

Ahora la pregunta del millón de dólares... ¿y cuánto cuesta el juguete? No se sabe aún. Se cree que costará $200 y se venderá en 2010 pero nadie lo asegura. (Link)

En palabras del vicepresidente de Microsoft Shane Kim: "This goes way beyond the Wii".

Solo falta esperar, pero estos últimos días sí que me han impresionado.

domingo, junio 07, 2009

Auto-instalador de proyectos - Visual Studio 2008 Express Edition

Mientras usaba Visual C# 2008 Express Edition SP1 (descarga gratuita) encontré la opción para generar un instalador de proyectos en equipos Windows que no tienen Visual Studio instalado. Esto se conoce en otros ambientes como Install Wizard.



Cuando uno intenta correr un ejecutable compilado con el .NET Framework 3.5 en una máquina que no lo tiene instalado, la aplicación enviará un error o se ejecutará pero dejará de funcionar después de unos cuantos clicks. La solución es instalar el Framework en la máquina o generar un autoinstalador con Visual Studio.

Los pasos para generarlo son los siguientes:

+ En la ventana de Visual C# o de cualquier otro miembro de Visual Studio ir al menú Proyecto.
+ Elegir Propiedades de Proyecto..., donde Proyecto es el nombre actual de tu aplicación.
+ Se abrirá una nueva pestaña en el área de trabajo, dar click en la opción Publicar.
+ Normalmente no hay que modificar ninguna opción, salvo la de la ruta en donde se publicarán los archivos.
+ Dar click en Publicar ahora.

El compilador generará una serie de archivos en la carpeta /Publish dentro de los cuales está uno llamado Setup.exe, el cual será el que iniciará el proceso de instalación en la máquina destino.

La máquina destino deberá contar con una conexión a internet para poder descargar los componentes necesarios para que nuestro proyecto se ejecute al 100%. Probé el instalador en una máquina virtual con una instalación fresca de Windows XP SP2 y los componentes que bajó el instalador fueron Windows Installer 3.1 y .NET Framework 3.5 Sp1. La descarga es grande, calculo que son como 100MB de descarga o menos ya que tarda mucho en bajar los archivos.



La instalación es sencilla solo hay que aceptar los contratos de licencia y demás cosas. Una vez terminada la instalación nuestro ejecutable podrá ser accedido desde el menú Inicio como cualquier otra aplicación.


Una recomendación... hay que copiar el instalador (setup.exe, la carpeta Application Files y la aplicación) en una ubicación como Archivos de Programa o cualquier otra carpeta fija ya que el ejecutable será corrido desde esa ubicación después de ser instalado, no podrás moverlo de lugar.

El acceso directo que se genera en el menú Inicio no es como los que siempre hemos visto, es un archivo con extensión .appref-ms que se encarga de ejecutar la aplicación principal (link con info). El contenido del archivo es texto simple que trae la ruta de la aplicación y el tipo de procesador para el que se compiló. Pero también la aplicación principal no es normal, tiene extensión .application. En fin, el punto es que funcione el programa en cualquier otra computadora y el objetivo se cumple.

Muchos de nosotros como estudiantes usamos Visual Studio Express para proyectos escolares, pero este paquete puede usarse para compilar aplicaciones comerciales sin problema alguno según la FAQ de Microsoft. Es decir, puedes vender tus programas con toda libertad.

http://www.microsoft.com/express/support/faq/
7. Can I use Express Editions for commercial use?
Yes, there are no licensing restrictions for applications built using Visual Studio Express Editions.