February 2012 - Artículos

image

Buenas,

además de Windows 8 que ha sido la gran novedad del día de hoy, aquellos que nos dedicamos al desarrollo de aplicaciones ya tenemos la posibilidad de descargar el nuevo Visual Studio 11 Beta. Antes de seguir simplemente advertir lo siguiente

¡¡¡ESPERO QUE TE GUSTE LA INTERFAZ METRO, PORQUE AHORA LO VERAS HASTA EN SUEÑOS !!!

Dicho esto, ya podemos ir al sitio oficial de descargas de Visual Studio 11, http://www.microsoft.com/visualstudio/11/en-us/downloads. Donde vemos los web installers de Visual Studio Ultimate y Team Foundation Server.

image

Metro 1

Si en cambio queremos los instaladores standalone (o satán alone como les decía un jefe mío), pues seleccionamos esa opción y … más metro !!!

image

Metro 2

Y ya te digo que no te salvas, en cualquier opción que selecciones >Metro >Metro >Metro >Metro >Metro >Metro >Metro > Sonrisa

image

Vamos que antes de formatear mi ya viejuno Windows 8 Developer Preview e instalar el nuevo Windows 8 Consumer Preview, tengo un tiempito de descarga, interfaz metro de por medio.

Saludos @ Home

El Bruno

   

Descargas: http://www.microsoft.com/visualstudio/11/en-us/downloads

Publicado 29/2/2012 19:39 por El Bruno | con no comments

image47dd1de4

Buenas,

me lo voy a apuntar porque sino siempre me olvido. En este caso, mi escaso set de neuronas se olvidan de que para tener un set de pruebas automáticas con Intellitrace activo en una ejecución de una build, es recomendable publicar los símbolos (symbol data en inglés) que están relacionados con nuestra Build. Para esto simplemente sigo los siguientes pasos

1. Crear un directorio compartido donde se almacenarán los símbolos. Por ejemplo //DROPSERVER/Symbols

2. Dar permisos Full al usuario que ejecuta la Build

3. En la definición de la Build, seleccionar el proceso y editar el mismo.

4. En la sección “Basic” modificar

Index Sources = True

Path to Publish Symbols = Share creado para los símbolos

image

Listo !!!

 

Saludos @ Home

El Bruno

   

Fuente: http://msdn.microsoft.com/en-us/library/hh190722.aspx

image47dd1de4

Buenas,

antes que me queden obsoletos y mientras sigo participando en el MVP Summit 2012 pero de forma virtual, vamos con algunos de los cambios que tenemos que tener en cuenta si tenemos aplicaciones para Kinect que utilicen el Kinect SDK Beta 2 y pensamos en migrarlas a Kinect SDK V1.0.

Referencias

Inicialmente teníamos una referencia a Microsoft.Research.Kinect

image

Con el nuevo SDK tenemos que resolver la referencia inválida y agregar una nueva a Microsoft.Kinect.

image

 

Inicialización del Sensor

Cuando utilizábamos la Beta 2, teníamos que definir la inicialización del sensor utilizando el método Initalize() y al mismo le pasábamos una serie de parámetros para inicializar la cámara, el sensor de profundidad o la detección de skeletons.

   1: void InitKinect()
   2: {
   3:     if (Runtime.Kinects.Count == 0)
   4:         return;
   5:     kinect = Runtime.Kinects[0];
   6:     RuntimeOptions = RuntimeOptions.UseDepthAndPlayerIndex | 
   7:         RuntimeOptions.UseSkeletalTracking | 
   8:         RuntimeOptions.UseColor;
   9:     kinect.Initialize(RuntimeOptions);
  10:     kinect.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240,
  11:         RuntimeOptions.HasFlag(RuntimeOptions.UseDepthAndPlayerIndex) || 
  12:         RuntimeOptions.HasFlag(RuntimeOptions.UseSkeletalTracking) ? 
  13:         ImageType.DepthAndPlayerIndex : ImageType.Depth);
  14:     kinect.DepthFrameReady += this.KinectDepthFrameReady;
  15: }

Con el SDK V1.0 esto es mucho más simple. Creo que el siguiente código, donde solo se inicializa el sensor de profundidad, es lo suficientemente declarativo como para que se entienda que ahora lo importante está en la línea 7.

   1: void MainWindowLoaded(object sender, RoutedEventArgs e)
   2: {
   3:  
   4:     if (KinectSensor.KinectSensors.Count == 0)
   5:         return;
   6:     this.kinectSensor = KinectSensor.KinectSensors[0];
   7:     this.kinectSensor.DepthStream.Enable();
   8:     this.kinectSensor.Start();
   9:     this.kinectSensor.DepthFrameReady += this.KinectSensorDepthFrameReady;
  10: }

Si además del sensor de profundidad quisiésemos activar el stream de la cámara y además el reconocimiento de skeletons, el siguiente código es el que tenemos que utilizar. Las líneas 7, 8l y 9 son las importantes.

   1: void MainWindowLoaded(object sender, RoutedEventArgs e)
   2: {
   3:  
   4:     if (KinectSensor.KinectSensors.Count == 0)
   5:         return;
   6:     this.kinectSensor = KinectSensor.KinectSensors[0];
   7:     this.kinectSensor.ColorStream.Enable();
   8:     this.kinectSensor.SkeletonStream.Enable();
   9:     this.kinectSensor.DepthStream.Enable();
  10:     this.kinectSensor.Start();
  11:     this.kinectSensor.DepthFrameReady += this.KinectSensorDepthFrameReady;
  12: }

 

En próximos posts otros ejemplos sobre algunos cambios desde Beta 2 al SDK Final.

 

Saludos @ Home

El Bruno

   

Download: http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx

Publicado 27/2/2012 22:56 por El Bruno | con no comments

image47dd1de4

Buenas,

desde hace un par de días me estoy dando un baño de Visual Studio LightSwitch. Puede gustarte o no, pero para sacarte de un apuro en la generación de un CRUD rápido, pues es bastante potente. Sin embargo, cuando tienes un ordenador con más versiones de prueba de producto que versiones estables, sueles encontrarte con errores como los siguientes.

Lo primero que me encontré, fue al momento de lanzar mi aplicación de LightSwitch un error relacionado con la versión de SQL Server.

   1: Error    67    Sql Server version not supported.
   2: 11.00.1440    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\LightSwitch\v1.0\Microsoft.LightSwitch.targets

Claro, la versión express de Denali que tengo instalada no le gusta a LightSwitch. Así que decidí cambiarla desde la configuración de Visual Studio: “Tools // Options” y luego en la sección “Database Tools // DataConnections”. En mi caso la opción que aparecía era “.\SQLEXPRESS” y esa versión de SQL es la 11.

image

Cambié el valor por una versión 10 de SQL Express que tengo instalada en local, pero tampoco funcionó la aplicación. Lo siguiente fue ir a ver el target de ejecución. Ya que teníamos la ruta del target en

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\LightSwitch\v1.0\Microsoft.LightSwitch.targets

Pues  veamos que tiene el código del mismo dentro. Me encontré con varias cosas, pero lo que más me llamó la atención era que se utilizaba siempre una propiedad

$(SqlExpressInstanceName)

que no estaba declarada por ningún lado.

   1: <!--The Development Database is built in the same location - Bin\Data - for all configurations.-->
   2: <BuildSchema Inputs="@(LightSwitchModel)"
   3:              ProjectPath="$(MSBuildProjectFullPath)"
   4:              OutputDirectory="Bin\Data"
   5:              SqlExpressInstanceName="$(SqlExpressInstanceName)"
   6:              ExternalDataSources="@(ServerExternalDataSources)"/>
   7: <!--The _IntrinsicData connection string should be updated to use the SQL Express Instance Name
   8:     from the LightSwitch Project' Property-->
   9: <UpdateDataSourceSection ConfigFile="$(OutDir)\web.config"
  10:                          Name="_IntrinsicData"
  11:                          Key="Data Source"
  12:                          Value=".\$(SqlExpressInstanceName)"/>

 

Así que lo siguiente fue editar el proyecto de LightSwitch. Este valor no es configurable por ningún sitio, salvo que edites el archivo de proyecto *.lsproj y dentro del mismo puedes ver algo similar a lo siguiente:

   1: <PropertyGroup>
   2:   <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
   3:   <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
   4:   <SchemaVersion>2.0</SchemaVersion>
   5:   <ProjectGuid>c3800149-599b-4dbc-ba07-190956453c17</ProjectGuid>
   6:   <OutputType>WinEXE</OutputType>
   7:   <CopyBuildOutputToOutputDirectory>false</CopyBuildOutputToOutputDirectory>
   8:   <RootNamespace>Application5</RootNamespace>
   9:   <AssemblyName>Microsoft.LightSwitch.Server.Host</AssemblyName>
  10:   <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  11:   <LightSwitchVersion>v1.0</LightSwitchVersion>
  12:   <LightSwitchProjectVersion>v1.0</LightSwitchProjectVersion>
  13:   <Name>Application5</Name>
  14:   <LightSwitchProjectType>LightSwitch</LightSwitchProjectType>
  15:   <GenerateManifests>true</GenerateManifests>
  16:   <SignManifests>false</SignManifests>
  17:   <BaseIntermediateOutputPath>bin</BaseIntermediateOutputPath>
  18:   <ApplicationClientType>Desktop</ApplicationClientType>
  19:   <ApplicationServerType>LocalHost</ApplicationServerType>
  20:   <RequireSecureConnection>true</RequireSecureConnection>
  21:   <AuthenticationType>None</AuthenticationType>
  22:   <ApplicationName>Application5</ApplicationName>
  23:   <AssemblyVersion>1.0.0.0</AssemblyVersion>
  24:   <ServiceDefinitionFile>ServiceDefinition.csdef</ServiceDefinitionFile>
  25:   <ServiceConfigurationFile>ServiceConfiguration.cscfg</ServiceConfigurationFile>
  26:   <SqlExpressInstanceName>.\sqlexpress</SqlExpressInstanceName>
  27: </PropertyGroup>

 

En mi caso, cambié la línea 26 por el valor correcto, hice un reload del proyecto y todo funcionó. Pero antes de seguir un par de datos a tener en cuenta

  • Cuando creas un proyecto de LightSwitch siempre tomará el valor configurado en Visual Studio. Si cambias los settings de Visual Studio, este cambio no se refleja en el proyecto.
  • Tanto Visual Studio como LightSwitch tiempre trabajan con un sql local. Y esto que parece un detalle muy simple hace que el nombre de la instancia con el formato “.\INSTANCIA” sea inválido. Hay que poner solo el nombre de la instancia “INSTANCIA”

Bueno a seguir con el mega proyecto Risa

 

Saludos @ Here

El Bruno

   

Buenas,

ayer me di contra un muro al intentar viajar a Seattle por un problema técnico (yo prefiero describirlo así). Sin embargo lo que más me llamó la atención fue la pésima atención al cliente que posee IBERIA (si @iberia) en la Terminal 4 del aeropuerto de Barajas. No voy a entrar en detalles ya que para eso he dejado una nota de reclamación, pero en lugar de tirarme abajo la moral me dediqué a estar con la familia y hoy a buscar algunas charlas en el TED que hablen sobre esto mismo.

El siguiente video es realmente interesante. Habla entre otras cosas sobre como podemos cambiar nuestro estado de ánimo con un pequeño ejercicio diario de 2 minutos. No comento más nada al respecto para no dar spoilers, pero si sos como yo y dedicas 10 minutos al día para un video de TED, este seguro que te gustará.

 

Saludos @ Here

El Bruno

   

Fuente: http://www.ted.com/talks/view/lang/es//id/1344

Publicado 26/2/2012 21:07 por El Bruno | 1 comment(s)
Archivado en: ,

image

Buenas,

ya no es noticia porque se ha comentado bastante, pero por fin podemos hablar de ello. Ayer el gran Brian Harry, dio la noticia en su blog de que finalmente TFS va a ser parte de la familia Express de Visual Studio como un producto GRATIS más. Hace ya casi 3 años de que salió este tema a debate, y después de varias palizas con el equipo de producto, se vio que la opción de que sea 100% Express es una buena idea.

Los datos completos te los comenta el Brian Harry en su post, pero los puntos más importantes son los siguientes:

  • Es igual que un TFS Basic.
  • Gratis para equipos de hasta 5 personas. Eso significa que podrás agregar solo 5 Windows Ids diferentes en un grupo. (la trampas es muy fácil aquí y da miedo desde un punto de vista de gestión!!!!)
  • SQL Express como repositorio. Buena opción Risa
  • Incluye el Dashboard de Agile, pero no habilitan las herramientas de planning. Esto es un error desde mi punto de vista. Si quieres que alguien utilice tu producto, da una versión reducida en cantidad de usuarios pero no en funcionalidad.
  • Los productos de VS Express tendrán capacidad para trabajar con TFS Express. Esto último es grandioso. Ahora sí, 4 personas sin gastar un €uro pueden montar un equipo de desarrollo 100% free con productos Microsoft.

Me lo apunto como la buena noticia de la semana y veremos que más nos cuentan en Seattle la semana que viene.

 

Saludos @ Home

El Bruno

   

Fuente: http://blogs.msdn.com/b/bharry/archive/2012/02/23/coming-soon-tfs-express.aspx

image47dd1de4

Buenas,

hoy toca un poco más de auto bombo sobre el trabajo en proyectos globales utilizando Visual Studio 2010 ALM. Un poco de experiencia con proyectos de Avanade, otro poco de experiencia personal y finalmente la presentación de VSAnywhere.

 

 

Y si lo que buscas es algo de Kinect >> pues http://globbtv.com/12/microsite/2021/12-horas-visual-studio-programacion-de-aplicaciones-con-kinect

 

Saludos @ Málaga

El Bruno

   

Video: http://www.globbtv.com/12/microsite/2039/microsoft-alm-sessions-2012-planeta-alm

Buenas,

si tienes la suerte de probar una versión de Office que todavía no ha salido al mercado, verás que la misma es IMPRESIONANTE! Pero claro, NDAs de por medio no podemos escribir nada al respecto, así que me apuntaré un pequeño step-by-step para poder utilizar Outlook XX con una cuenta de LiveId. En mi caso mi cuenta es brunocapuano [at] superlive [.] com, así que debo pasar del sistema de autodiscovery de Outlook y configurar esta cuenta manualmente.

Una vez que has seleccionado la opción para agregar una cuenta manualmente, debes completar los datos como muestro en la siguiente imagen donde lo importante es configurar correctamente POP3.live.com y SMTP.live.com.

image

Presionando la opción More Settings, en la pestaña “Outgoing Server” debemos seleccionar la opción “My outgoing server (SMTP) requires authentication”,

image

Finalmente en “Advanced” es necesario configurar los datos como en la siguiente imagen.

image

Saludos @ Home

El Bruno

   

Referencia: http://support.microsoft.com/kb/287604

Publicado 20/2/2012 21:26 por El Bruno | con no comments
Archivado en: ,

Buenas,

desde hace unos días se está llevando a cabo una discusión interesante en los grupos de Agile Spain sobre Continuous Deployment. Si bien algunas entradas son para autoafirmar que cada uno es el mejor implementador de SCRUM que existe, o para explicar el porqué de una práctica como integración continua, hay muchas que merece leer solo por el hecho de comenzar a cambiar nuestra forma de pensar. Primero lo primero, y antes lo de siempre: para lograr un entorno con CD, necesitas tener un apoyo 100% de la dirección, una integración muy fluida entre los equipos de Desarrollo y los equipos de Sistemas, etc. etc. etc. En otras palabras esta es una práctica que requiere un nivel de madurez muy alto en cuanto a prácticas se requiere. Si nos fijamos por ejemplo en Wikipedia, la definición de Continuous Deployment no existe, aunque si existe un link inválido desde Continuous Integration

Lo que si existe en Wikipedia es el concepto de Continuous Delivery, donde se explica como aplicando las prácticas de Automated Testing, Continuous Integration y Automated Deployment es posible lograr montar un entorno de Continuous Delivery. Uno de los principios de esta práctica es acelerar los tiempos de despliegue de una aplicación a un entorno específico, ya sea un entorno de test o inclusive de producción. En mi caso aprovechando las capacidades de Team Build 2010 y Azure que podré ponerme con ello en el próximo proyecto que tengo en manos.

Nota: El único gran problema que tengo en vista ahora que estoy planeando este modelo, es la poca capacidad de despliegue que posee un entorno como Windows Phone, vamos que es una castaña para automatizar esto mismo. Le preguntaré al crack de Josué Yeray (@JosueYeray ) para ver que recomienda.

En este punto, mi modelo de trabajo inicialmente se basará en 2 líneas de desarrollo (gracias a un muy maduro modelo de branching que tenemos en Avanade Spain) donde siempre estarán disponibles (es decir desplegado) para probar

  • Un entorno con la aplicación desplegada a partir del último output de una build con una ejecución correcta (build + unit tests) de la línea de desarrollo.
  • Un entorno de AZURE para TEST con la aplicación desplegada a partir del último output de una build de una rama que ha pasado una batería de pruebas de UX.

Obviamente detrás de todo esto, seguiremos aplicando Test Driven Development, asegurando una sintaxis homogénea utilizando StyleCop, asegurando el control de proyectos gracias a TFS y alguna buena práctica a definir, etc. Pero vamos, que al final la idea sigue siendo la misma:

Mejorar la forma en la que desarrollamos software diariamente

image

Cuando lo haya implementado y pueda evaluar el resultado de implementar y mantener esta práctica por un tiempo, ´comentaré mis impresiones.

 

Saludos @ Home

El Bruno

   

Recursos:

PD: Acabo de comprarme el libro en Amazon (http://bit.ly/zbiP9A) a tan solo €28.

Publicado 19/2/2012 16:58 por El Bruno | con no comments
Archivado en: ,

image47dd1de4

Buenas,

hace ya bastante tiempo hablé de Debugger Canvas. Esta extensión para Visual Studio 2010 te permite depurar aplicaciones de una forma diferente. Lo que hace es abrir nuevos bubbles o canvas con las diferentes funciones/porciones que código que vamos depurando y conectando las mismas. De esta forma tenemos una vista de bubbles sobre los elementos que depuramos. Un video para que quede más claro.

 

Video: http://msdn.microsoft.com/en-us/devlabs/debuggercanvas

Pues bien, hace poco tiempo se liberó una nueva versión que tiene las siguientes novedades

  • Se muestran las llamadas recursivas con una nueva bubble por llamada (esto era un poco tedioso antes)
  • Soporte para depuración multi thread
  • Soporte para el cambio entre depuración con Debugger Canvas, y  la depuración clásica con un único clic. Esto era imprescindible en algunos escenarios.

Así que ya sabes, si tienes Visual Studio 2010 Ultimate, pues ya puedes comenzar a depurar más dinámicamente tus aplicaciones.

 

Saludos @ Home

El Bruno

   

HomePage: http://msdn.microsoft.com/en-us/devlabs/debuggercanvas

image47dd1de4

Buenas,

ya no sé la cantidad de veces que he escrito este post. Pero siempre que quiero buscar la última versión de las máquinas virtuales de Visual Studio 2010 o Visual Studio 11, pues me pierdo en el camino y tengo que dar una vuelta por google o bing. Así que me apunto los links para los próximos 6 meses:

 

Visual Studio 2010 ALM

 

Visual Studio 11 ALM

 

Saludos @ Home

El Bruno

   

image47dd1de4

Buenas,

cuando estas como yo metido en una serie de programa de pruebas de software (Windows 8, Visual Studio 11, el Office nuevo nuevísimo, etc.) Es muy probable que las cosas más simples no te funcionen. En mi caso me pasa con los instaladores de extensiones de Visual Studio 2010. Por ejemplo, si me bajo el instalador de Vs Anywhere, al momento de intentar instalar el mismo me da unos errores de colores muy moviditos e interesantes Risa

Así que bien,

¿cómo hago para instalar un paquete VSIX, en este caso una extensión sin instalar la misma?

Muy fácil. Un paquete VSIX no es ni más ni menos que un ZIP (como todo en el mundo .Net), así que lo primero que debemos hacer es descomprimir el mismo. Una vez descomprimido podremos ver que dentro encontramos una serie de archivos que son los que identifican al paquete (más información en otro post) y NO DEBEMOS TOCAR ESTOS ARCHIVOS !!!

Lo que demos hacer es copiar el directorio que hemos descomprimido del .VSIX.ZIP al directorio de extensiones de Visual Studio 2010. Para este ejemplo lo copiaremos al directorio de trabajo de Visual Studio 2010, esto significa que estará disponible para todos los usuarios del ordenador que utilicen VS2010. También es posible copiarlo al directorio de usuario de VS2010.

De acuerdo a si trabajas con x86 o x64 el directorio es el siguiente:

  • G:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\
  • G:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\

image

 

Una vez copiado, si abrimos Visual Studio 2010 ya veremos nuestra extensión activa y funcionando !!!

image

 

Si decidimos eliminar la misma del menú, Visual Studio 2010 se encargará de borrar el directorio y dejarnos tan contentos.

 

Saludos @ Home

El Bruno

   

image47dd1de4

Buenas,

después de las 12 de horas de Visual Studio 2010, ya tenemos los videos disponibles para ver online. Hoy compartiré los 23 minutos que me han tocado a mi sobre programación con el SDK de Kinect. Si bien los ejemplos son para la Beta 1 del SDK, son igualmente válidos para la versión 1.0.

 

 

Saludos @ Home

El Bruno

   

Video: http://globbtv.com/12/microsite/2021/12-horas-visual-studio-programacion-de-aplicaciones-con-kinect

Descarga: http://kinectforwindows.org

image47dd1de4

Buenas,

hace un par de días, el gran Oscar Martin me comentaba que tenía un "problema” con Team Foundation Server 2010 ya que al descargar una versión específica de un archivo, al momento de editar el mismo, el IDE de Visual Studio 2010 le descargaba automáticamente la última versión. La posible solución a este problema consiste en desactivar la opción de descarga automática, y ahora con Team Foundation Server 2010 podemos hacerlo a nivel herramienta de desarrollo (Vs2010) o repositorio de código fuente (Tfs2010).

Para el primer caso, debemos acceder a las opciones de Visual Studio 2010, desde el menú “Tools // Options”. Dentro de las mismas acceder a la sección “Source Control // Visual Studio Team Foundation Server” y marcar o desmarcar la opción “Get latest versión of ítem on check out in server workspace”. Esta opción nos asegura que siempre tengamos la última versión de cualquier archivo que estemos editando.

clip_image001

Ahora bien, si lo que queremos es que esta forma de trabajo se aplique para todos los integrantes de un Team Project, podemos aplicar esta configuración a nivel de TP. Para esto, desde en panel Team Explorer, seleccionamos el Team Project correspondiente, luego desplegamos el menú contextual y seleccionamos “Source Ccontrol”. Dentro de la sección “Chec-out settings”, la opción “Enable get latest on check-out” nos permite definir este funcionamiento.

clip_image002

 

Saludos @ Home

El Bruno

   

image47dd1de4

Buenas,

antes de empezar el post vamos a hacer un pequeño filtro:

¿Haces cómo mínimo un CheckIn diario?

si tu respuesta es diferente a “SI”, pues que sepas que por cada día que pasas sin proteger tu código en el repositorio de código fuente, matas a un unicornio y se desvanece un arco iris. La segunda pregunta también ayuda a seguir filtrando el asunto.

¿Alguno de tus comentarios es del siguiente tipo?

- He arreglado un error

- done!

- 1234567890

Es increíble pero muchas personas piensas que la caja de texto para los comentarios es solo decorativa y con un simple “.” alcanza.

Pues bien, para mejorar esto un poco les cuento un modelo de trabajo que viene bastante bien utilizar en los comentarios. Se trata de seguir el siguiente patrón:

+ add new elements, features, functions, etc.

- remove elements, features, functions, etc.

~ updated elements, features, functions, etc.

# defines a label or version

Con este esquema es más fácil encontrar comentarios del tipo

+ incorporada la funcionalidad para las trazas en base de datos

~ cambios en el formato de las trazas

o inclusive

~ cambios en el look and feel para ser OCD compliant

- imágenes viejas

 

De esta forma los comentarios son algo más que texto perdido en cada conjunto de cambios. Y finalmente un dato que es importante remarcar

Los comentarios deben comentar el POR QUÉ de un cambio no el CÓMO, para el CÓMO ya leeremos el código fuente.

 

Saludos @ La Finca

El Bruno

   

Publicado 10/2/2012 13:39 por El Bruno | con no comments
Archivado en: ,

image

Buenas,

esta es una pregunta que más de uno me ha hecho y la respuesta es muy simple:

SI

Pero hay que tener en cuenta que no podrás disfrutar de las novedades que ofrece el sensor para PC y que además si creas una aplicación comercial, deberás distribuirla con el sensor para PC.

Para todo lo demás, development, test, etc; es posible utilizar el sensor para Xbox 360.

 

Saludos @ Home

El Bruno

   

Descarga SDK http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx

Publicado 7/2/2012 21:54 por El Bruno | con no comments
Archivado en:

image47dd1de4

Buenas,

si trabajas con Visual Studio en cualquiera de sus versiones es muy probable que conozcas el panel de tareas (ToDo). Pues bien, ReSharper ha tomado esta idea y la evolucionado bastante hasta definir un panel de Tareas muy potente. En primer lugar veamos la configuración de los elementos que se muestran en el panel:

image

Cada elemento se corresponde con una expresión regular que se analiza en el IDE de Visual Studio, dentro del código, comentarios, etc. De esta forma, tenemos un panel de tareas mucho más “inteligente” que el posee Visual Studio. Además, obviamente, podemos configurar el icono con el que aparece en el panel, el color del texto,  y otras opciones más.

image

Cuando, por ejemplo hemos definido los ítems de tipo NotImplementedException como elementos a mostrar en el panel, el siguiente código nos mostrará elementos interesantes.

   1: namespace ConsoleApplication2
   2: {
   3:     class Sample : ISample
   4:     {
   5:         public void DoSomething()
   6:         {
   7:             throw new System.NotImplementedException();
   8:         }
   9:         public void Foo()
  10:         {
  11:             throw new System.NotImplementedException();
  12:         }
  13:         public void Bar()
  14:         {
  15:             throw new System.NotImplementedException();
  16:         }
  17:     }
  18: }
  19: namespace MyNamespace
  20: {
  21:     using ConsoleApplication2;
  22:     class Sample2 : ISample
  23:     {
  24:         public void DoSomething()
  25:         {
  26:             throw new System.NotImplementedException();
  27:         }
  28:         public void Foo()
  29:         {
  30:             throw new System.NotImplementedException();
  31:         }
  32:         public void Bar()
  33:         {
  34:             throw new System.NotImplementedException();
  35:         }
  36:     }
  37: }

Organizando los elementos por Namespaces and Types,

image

o mostrando solamente los tipos

image

También podemos exportar los contenidos en formato plano, formato XML o HTML. Pero tal vez la faceta más interesante es que al momento de guardar la configuración de los elementos a mostrar como ToDos, lo podremos guardar en un ámbito local, en un ámbito compartido del proyecto o inclusive a nivel ordenador para todos los proyectos. Vamos que es una opción más que interesante para esas pequeñas “notas” que dejamos en nuestro código y que no queremos olvidar.

image

 

Saludos @ Home

El Bruno

   

Descarga: http://www.jetbrains.com/resharper

Publicado 6/2/2012 21:14 por El Bruno | con no comments
Archivado en:

image

Buenas,

alguno me ha preguntado que es eso del “Near Mode” que se incorpora en el nuevo Kinect For Windows (algo comenté aquí). Obviamente la descripción oficial es que ahora podemos reconocer skeletons a menor distancia que con el sensor para Xbox pero el tema es bastante más interesante.

Veamos algunos datos que pueden aportar luz al respecto sobre como funciona el Depth Sensor.

  • El Sensor de profundidad trabaja con una resolución de 320x240 pixels.
  • Esto nos da un total de 76800 pixels
  • Cada pixel posee una posición en área de pintado y la distancia al sensor Kinect en milímetros.
    • Guiño En lugar de identificar un color como sucede en el array que retorna la cámara.
  • Esta información está asociada también a los elementos de los 6 skeletons que puede reconocer Kinect For Windows.

Ahora bien, con el nuevo Kinect For Windows es posible trabajar con 2 modelos

    • Default Mode
    • Near Mode

Para poder comenzar a trabajar con estos modos de trabajo podemos tomar en cuenta los valores de la siguiente gráfica para entender en qué rangos nos movemos.

image

Pero no todas las capacidades de Kinect están disponibles en ambos modos, he aquí una tabla que nos muestra lo que podemos identificar en cada modo

image

So … no es que el “Near Mode” nos de todas las capacidades de trabajo a partir de 40 cms, sino que tendremos la capacidad de identificar 1 a 6 skeletons, pero no con todos los puntos de cada uno.

 

Saludos @ Home

El Bruno

   

Fuente: http://channel9.msdn.com/Series/KinectQuickstart/Working-with-Depth-Data

PD: los datos de la gráfica de distancia se utilizan en el ejemplo de DepthViewer que proporciona el equipo de CodingForFun Risa

Publicado 5/2/2012 23:07 por El Bruno | con no comments
Archivado en:

image

Buenas,

como hay un poco de dudas sobre las diferencias entre el sensor KINECT para Xbox360 y el nuevo sensor Kinect para PC. Voy a explicar un poco lo que sé al respecto para diferenciarlos.

En primer lugar las diferencias más significativas del nuevo sensor para PC

  • Near Mode. El nuevo sensor posee un nuevo firmware que permite trabajar identificando cuerpos a partir de los 40 cms, con un alcance máximo de 4 metros.
  • Cable USB más corto. Parece una tontería, pero el hecho de tener solo un conector USB y no el mega conector que posee ahora el sensor, se agradece bastante.

Ahora bien, la principal diferencia está en que el nuevo hardware/Sensor está específicamente diseñado para PC. Soporta todas las características del SDK que podemos utilizar con el actual sensor de Xbox, pero es SOLO CON ESTE DISPOSITIVO que tendrás soporte, actualizaciones, etc.

El sensor de XBOX  NO ESTA SOPORTADO PARA ENTORNOS PC; el nuevo sensor si. Además, la capacidad de near mode, el nuevo soporte para speech, etc.; solo está disponible para el sensor para PC.

Finalmente, no está permitido ni soportado el desarrollo con el sensor para XBOX. Parece algo obvio, pero si pensamos que las pruebas se han realizado con otro SDK (el de XBOX), sobre otro entorno; es normal que este sensor no sea homologado para PC. En cambio el nuevo sensor, si está soportado para entornos PC, si posee garantía, actualizaciones, etc.

A ver si comienzo una serie de minoposts con datos del nuevo SDK. Eso, cuando Amazon, me ayude y me haga llegar el nuevo sensor Risa

 

Saludos @ Home

El Bruno

   

Descarga SDK http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx

Publicado 4/2/2012 18:32 por El Bruno | con no comments
Archivado en:

image47dd1de4

Buenas,

después de las 12 horas de Visual Studio del pasado martes, me agarro un virus que casi me mata. Pero de a poco voy a sacar los pendientes, empezamos por algunos correos.

Buenas, estuve el otro día viendo con mis compañeros de trabajo las 12 horas de Visual Studio, y a parte de parecernos muy interesantes los temas que enseñasteis, nos quedamos con la duda de como hacer un "truco" que nos pareció bastante útil en el día a día... como convertir un string del tipo "hola " + <variable> + " que tal" en string.Format("hola {0} que tal",<variable>) automáticamente. Te vimos hacerlo en la charla, pero no sabemos como, jeje.

Pues bien, eso que queda tan bien en vivo y además mucho mejor en el código se debemos agradecer a ReSharper. Para muestra un ejemplo, tengo una aplicación de Consola con el siguiente código:

   1: using System;
   2: namespace ConsoleApplication2
   3: {
   4:     class Program
   5:     {
   6:         static void Main(string[] args)
   7:         {
   8:             const string Name = @"Valentino";
   9:             var msg = "Hola mi nombre es " + Name;
  10:             Console.WriteLine(msg);
  11:         }
  12:     }
  13: }

Si nos posicionamos sobre la línea 9, veremos que ReSharper nos ofrece la posibilidad de utilizar format string para la concatenación de cadenas.

image

Una vez seleccionada esta opción, ya no tenemos más una suma de strings

   1: using System;
   2: namespace ConsoleApplication2
   3: {
   4:     class Program
   5:     {
   6:         static void Main(string[] args)
   7:         {
   8:             const string Name = @"Valentino";
   9:             var msg = string.Format("Hola mi nombre es {0}", Name);
  10:             Console.WriteLine(msg);
  11:         }
  12:     }
  13: }

Pero esto no es todo, la segunda opción que nos ofrece ReSharper también es interesante, “Compute constant value”. En la misma R# identifica que estamos trabajando con una constante y nos ofrece la posibilidad de utilizar el valor de la misma en lugar de trabajar con una cadena. El resultado final sería el siguiente:

   1: using System;
   2: namespace ConsoleApplication2
   3: {
   4:     class Program
   5:     {
   6:         static void Main(string[] args)
   7:         {
   8:             const string Name = @"Valentino";
   9:             var msg = "Hola mi nombre es Valentino";
  10:             Console.WriteLine(msg);
  11:         }
  12:     }
  13: }

Obviamente, si cambiamos el valor de la constante estamos más frito que los Chicago Bulls sin Derrick Rose, pero ese tema para otro post.

 

Saludos @ Home

El Bruno