viernes, 21 de junio de 2013

Instalar Xna 4 en visual Studio 2012

Hace un tiempo me topé con la necesidad de utilizar XNA 4 en un proyecto que cree en Visual Studio 2012, y descrubrí que no son nativamente compatibles...
Luego de surfear la web en la búsqueda de una solución, llegue al siguiente conjunto de pasos para completar la integración semi automática.

Necesitamos:

  • Tener Visual Studio 2010, ya que acá se instala correctamente XNA 4.
  • Tener Visual Studio 2012, acá queremos llevarlo.
Luego tendremos que:

1) Descargar el SDK de Windows Phone, yo utilicé la versión 7.1 que no ocupa tanto espacio. Lo podemos descargar desde ... http://developer.windowsphone.com/en-us/downloadsdk
  1. Lo Descargamos
  2. Lo Instalamos
2) El SDK de windows phone, tiene como uno de los componentes a instalar el XNA 4. Ahora lo que tenemos que hacer es lo siguiente

Copiamos la carpeta que contiene la librería de XNA, (que se instala en Visual Studio 2010) desde esta ubicación:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0
 Al mismo lugar, pero del visual studio 2012:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0
NOTA: Los paths pueden variar dependiendo la instalacion de windows, si fue en español, ingles, etc..

3) Luego, vamos entramos a la carpeta  "XNA Game Studio 4.0" que acabamos de copiar dentro de VS2012 y modificamos del archivo "extension.vsixmanifest" y le cambiamos...  Version="10.0", por Version="11.0".

4) Ejecutamos este comando en la consola (ver de ejecutarla con permisos de administrador)
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" /setup
Y LISTO!

Ahora probemos arrancar visual studio 2012 y nos va a aparecer XNA 4 instalado.

Fuente:
http://stackoverflow.com/questions/10881005/how-to-install-xna-game-studio-on-visual-studio-2012/10881007#10881007

jueves, 20 de junio de 2013

Manejo de Proyectos altamente dinámicos utilizando Subversion

Introducción

En mi experiencia, he notado que muchas veces que si bien ya nadie cuestiona que el código debe versionarse, los ambientes de integración y test deben respetarse, al código hay que darle cobertura. Esto termina pasando a un quinto plano, simplemente para dar respuesta a una necesidad dinámica constante del Negocio. En donde predomina que "la urgencia manda".

¿Que es la Urgencia?

Normalmente, en desarrollo, entendemos por urgencia a un requerimiento que nace salteando todo proceso de desarrollo establecido y se inserta como prioridad uno dentro de nuestro esquema de tareas. Estas tareas de urgencia suelen tener 2 grandes orígenes.
  1. Falta de Previsión del Negocio
  2. Dinamismo extremo del Negocio
Cada uno de estos puntos tiene diferentes mecanismos de acción para aminorar el impacto en nuestro equipo de desarrollo. 
Si nos ponemos a analizar el 1° tiene un enfoque mas organizacional, donde las acciones a tomar engloban al conjunto de los participantes del Proyecto.
En este articulo, nos vamos a enfocar mas que nada en el , porque que es el que nos pone a prueba como profesionales y que independientemente de las circunstancias, nosotros debemos dar respuesta al negocio, eso es lo que nos vuelve dinámicos.

Analizando esto, imaginémosnos un escenario de alto dinamismo, en mi caso fue una empresa de medios digitales ( un Diario en Internet ).

¿Que pasa en un diario...?

Los hechos de la realidad actual terminan definiendo requerimientos de manera casi ininterrumpida, que para su aprovechamiento deben estar resueltos en el menor tiempo posible y si se puede antes mejor. Es como una constante carrera armamentista entre los diferentes portales, si uno tiene X el otro lo quiere también. Y si se rumorea que la competencia esta por sacar Z, hay que sacar Z antes.

Seguramente verán esto es algo que pasa frecuentemente, no solo en medios, y sabrán que esto pone a prueba todo nuestro ciclo de desarrollo. Pero creanme que cuando no surge una solución a este dinamismo, éste se termina cargando todos nuestras buenas intenciones y practicas.
  1. Subidas programadas cada x días. Rta: no puedo esperar, tiene que subir Ya...
  2. Testing para garantizar calidad. Rta: prefiero tenerlo Ya...
  3. etc... Rta: YA!
Esto nos lleva a que nuestro ideal equipo que aplicaba metodologías ágiles, termine siendo el grupo de monos en una cinta de producción, donde la calidad pasa a un quinto plano. Llevándose hasta la moral de quienes lo integran.

¿Cómo responder al dinamismo sin derrumbar nuestros principios?

El enfoque tradicional al que estamos acostumbrados al desenvolvernos en un equipo de desarrollo es el de las subidas programadas cada 1 o 2 semanas (sprint). El alto dinamismo de estos proyectos vuelve a este esquema inviable. Por lo cual hay que cambiar el sistema de referencia que utilizamos a uno mas acorde a las necesidades, el Proyecto.

La propuesta es la de simplemente cambiar nuestro sistema de referencia, manteniendo el resto intacto. Este esquema nos muestra como adaptar el versionado para cumplir este nuevo enfoque.
SVN Lifecycle for high dynamic projects
Manejo de Proyectos altamente dinámicos utilizando Subversion

Trunk

Vemos un trunk con muchos proyectos en simultaneo, integrados en el ambiente de Desarrollo.  El alto dinamismo que tenemos en este entorno, provoca que halla muchos proyectos en diferentes estados de madurez. Esto vuelve al entorno de desarrollo, en cierta forma, inestable no apto para un testeo exhaustivo. Por eso para grandes proyectos, donde se prevee un impacto masivo, que puede complicar el ambiente de interacción, se puede crear un branch para dar a ese proyecto cierto nivel del aislamiento.

Branch de integración

Vemos un branch intermedio (0.1.x) que funciona como 'padre' de los futuros tags productivos que no debe tener diferencias con el ultimo tag generado.
Cuando se decide subir un proyecto, se toma del trunk las revisiones componen al proyecto desde el Trunk y se lo mergea con el branch de integración.
Entonces ahora se podría decir que "el branch de integración es igual a producción, a lo sumo difiriendo en el nuevo proyecto que queremos subir".
En este estadio se dan las condiciones necesarias para someter al proyecto a un test intensivo, pudiendo o no requerir fixes. Si se requieren fixes, estos se desarrollan en trunk y se llevan al branch de integracion donde el proyecto es nuevamente evaluado. Hasta que el proyecto llega al estado de madurez necesario para ser subido a producción.

Tags Productivos

Una vez que el proyecto en el branch de integracion esta para subirse, se realiza el nuevo Tag desde el branch de integración y se sube.

Conclusiones

En lineas generales, este esquema nos permite reaccionar al dinamismo, dándonos las herramientas para mantener el control sobre el código que generemos. Nos permite rollbackear proyectos, volver a versiones anteriores y mantener en control un código que si no se organiza terminaría en el caos total.

A medida que la presión aumente, se puede hacer cada vez menores controles sobre la calidad e intensidad del testing. Un buen aliado para reducir los tiempos de Testing sin relegar la calidad, seria automatizar el testing de las funcionalides mas criticas del sitio.
Entendamos bien que tenemos que informar y dejar bien en claro que la baja de control de calidad sobre lo que hagamos, debe ser una propuesta de ultimo recurso para achicar los tiempos normales de una desarrollo y cumplir con los objetivos impuestos, y que no podemos tomar por nosotros mismos.

jueves, 25 de abril de 2013

Participacion en el programa Muchas Mentes Cap 12 de Tecnopolis Tv - Robótica


Desde hace un tiempo que estoy trabajando para el laboratorio de Robótica Física del CAETI, como Investigador Auxiliar. Y en esta oportunidad, nos tocó la visita de la gente del programa Muchas Mentes del canal Tecnopolis TV. Estuvieron recorriendo otros laboratorios de la facultad y entre ellos nos visitaron, donde estuvimos mostrando algunos robots y nuestro prototipo "Robin" ( Robot de Interfase Natural ).

El proyecto esta construido usando C#, Kinect SDK, XNA y una placa Open Hardware de Neorobotic.

Acá les dejo el capitulo, nuestra participación esta a partir del minuto 6:12



sábado, 24 de septiembre de 2011

Robot Seguidor de Patrones Visuales

Alejandro Javier Cena, Laura Soledad Carreras CIITII 2011
En el CIITI 2011 - Laura Soledad Carreras y Yo
En esta les comento de un proyecto que inicié en la facultad como parte de la materia Metodología de desarrollo de Sistemas II (Robótica) a cargo del Ingeniero Nestor Adrian Balich, que curse junto con mi compañera Laura Carreras.

La idea que teníamos es la de hacer un robot seguidor de patrones visuales... ¿Que es esto? Básicamente un Robot que, dado determinado patrón a seguir, lo mantenga en foco y en entre un rango de distancias preestablecidas, usando componentes económicos y abiertos.
Los usos que puede tener son variados y en el vídeo, creo haber cubierto varios de estos. El objetivo es realizar simplemente un prototipo.
Fuimos llamados a participar de un concurso de trabajos estudiantiles, en el marco del Congreso Internacional en Innovación Tecnología Informática. Donde tubimos la oportunidad de mostrar nuestro trabajo a la gente que asistió. Les dejo un video donde explico de que consta nuestro proyecto.

viernes, 3 de septiembre de 2010

Gmail sigue en la vanguardia - "Priority Inbox"

Ayer estube probando el nuevo servicio de Gmail para la administración de correos, la cual me pareció muy útil. Acá les dejo un video explicativo de como funciona este servicio para el correo de Gmail.



Para acceder a esta nueva funcionalidad, debemos ingresar a nuestro Gmail y arriba a la derecha, nos deberia de aparecer un link que nos diga "Priority Inbox".

sábado, 28 de agosto de 2010

Tu navegador pasa el test Acid3?


Zafari 5
IE 8


Según Wikipedia:
Acid3 es un sitio hecho por WaSP que pone a prueba los navegadores con los estándares web, especialmente los de DOM yECMAScript.
Estaba en desarrollo desde abril de 20071 y fue lanzado el 3 de marzo de 2008.2 El principal desarrollador fue Ian Hickson, quien también escribió la prueba Acid2. Acid2 se concentraba principalmente en CSS, en cambio Acid3 también se enfoca en tecnologías muy usadas en la Web 2.0, tales como ECMAScript y DOM Nivel 2. Algunas sub-pruebas también se encargan del lenguaje SVG, XML y del esquemadata:URI. Sólo elementos de la especificaciones del 2004 son incluidos.
Cuando la prueba es satisfactoria, la prueba Acid3 muestra un porcentaje que gradualmente crece y además muestra rectángulos coloridos en el fondo. El porcentaje mostrado esta basado en el número de sub-pruebas pasadas. En adición a esto el navegador tiene que renderizar la página exactamente como la página de referencia es renderizada en este mismo navegador. A diferencia de la prueba Acid2, la referencia no es un archivo de mapa bits, permitiendo algunas diferencias en el renderizado de las fuentes.

martes, 24 de agosto de 2010

HTML5 el siguiente paso de la Web.. ¿El fin de Flash?


Buenas, hoy les quiero hablar de una tecnologia que según se avisora marcará el futuro proximo de la Web,  el HTML5.

Como todos saben o algunos se estaran enterando en este momento, el HTML es el código que compone sitios como este, es lo que circula por internet cada vez que visitamos una pagina. Luego cuando llega a nuestra maquina es interpretado por el navegador y este deacuerdo al codigo nos hace ver el sitio lleno de botonsitos y colores.

Nota: Si alguna vez se preguntaron como es un sitio antes que lo vea el navegador, pueden hacer click derecho en un espacio vacio de la pagina y poner "ver codigo fuente"... ( lindo, no?)

Bueno este lenguaje 'interpretado', cuyo interprete es el navegador, esta poblando la web en su versión 4.01. Ahora con la inclusión de la versión 5, ademas de incluir varias etiquetas destinadas a solucionar problemas de su versión anterior, incluye mejoras como la de Independencia de varias tecnologías que anteriormente estaban a cargo de Plugins como lo es Flash.


Anteriormente, por ejemplo, cuando queríamos ver un vídeo en Flash debíamos tener instalado el Plugin de Adobe. Ahora con la inclusión de un mecanismo libre para la visualización de videos, podremos ver videos sin tenerlo. Alentado por este nueva versión y su soporte en los navegadores mas populares ya soportan en gran parte esta tecnología, empresas como YouTube comenzó desde hace un tiempo a migrar sus videos a esta nueva tecnología libre.


Ademas esta nueva versión incluye nuevos 'chiches' para los programadores como es la inclusión del Canvas en los browsers lo cual permite la posibilidad de interactuar con Javascript generando resultados antes imposibles como podemos ver en los siguientes ejemplos:
http://www.openrise.com/lab/FlowerPower/
http://openrise.com/lab/PlasmaTree/
( Gracias Bona por estos tremendos ejemplos del poder del HTML5 )


Apple, por su parte, ha contribuido en esta nueva corriente al no dando soporte a Flash tanto para su IPhone como su nuevo dispositivo estrella el IPad. Esto implica una fuerte apuesta a este nuevo estándar de parte de Steve Jobs. 


Si bien esto marca un duro revez a Adobe, se entiende que esta migración será paulatina y sostenida. ¿Tendrá Adobe la capacidad de frenar esta nueva corriente? ¿Resignará finalmente su dominio actual sobre el contenido de Internet ?...
No se sabe, se esperan reacciones de parte de Adobe, quien para no dar la espalda incluye soporte de HTML5 para la nueva versión de Dreamweaver y aseguran que "HTML 5 no es la muerte de Flash".

Yo creo que el timpo nos terminará dando la respuesta.