[#EVENTO] 12 Horas de Visual Studio (a ver si te las aguantas !!!)

image47dd1de4

Buenas,

mientras me muerdo las uñas para no contar nada del SDK de Kinect antes del 1 de febrero y no montar ningún evento online para contar las novedades, voy a aprovechar la gran tormenta solar que está ocurriendo justo en este momento para promocionar este eventos en el que participaré dentro de unos días.

12 Horas de Visual Studio 

Pues el título te lo dice todo. Vamos a abrir una instancia de Visual Studio 2010 y otra de Visual Studio 11 a las 0900 AM y hasta las 0900 PM no frenaremos. En el camino verás a cracks como Luis Fraile, Iván González, Rodrigo Corral, Eduard Tomás, Alberto Díaz, David Álvarez, Jose L. Teruel, Alberto Fraj, Pedro J. Molina, José Bustos, Marino Posadas, etc., y obviamente el que suscribe Risa. Veremos temas tan variados como Silverlight, ASP.Net, Ajax, JQuery, TDD, Kinect, Coded UI Tests, SharePoint, ASP.Net MVC, Windows Phone, pruebas de rendimiento, etc.

Además tengo que agradecer a los chicos de Microsoft Spain por darme esta oportunidad y además por tenerme en cuenta para abrir la sesión. Es un detallazo que pongan primero a los que somos medio así como yo, de forma que el listón esté bajito. Además como hay más de 20 sesiones, y seguro que tenemos un retraso medio de 5 minutos por sesión, el pobre Rodrigo Corral seguro que comienza la última sesión el día siguiente Lengua fuera 

Eso sí a las 11:40 me permiten conectar el Kinect, me voy a llevar el Robot, un par de gatos y montaré una gorda gorda …

Nos vemos virtualmente, porque he comentado que el evento es 100% formato webcast no? O pensabas que te ibas a tirar 12 horas delante de toda esta panda de gente en vivo?

Saludos @ Home

El Bruno

   

Registro: https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032502854&amp%3bCulture=es-ES

[# KINECT] HowTo: Soften the detection of movements in the skeleton

image

Hi,

While we await the final SDK for developers with Kinectleave in a few days, we still have to adjust quite a bit to make the SDK will allow us to make robust applications. One of these “debts” Kinect has with us is the ability to remove the “tembleque / tremor” have at each point of the skeleton when working with the same point to point or Joint to Joint. If you run the application that shows both skeletons in a Canvas of WPF, you’ll see that it works pretty well.

Now, if we modify it with a bit of the code base of this post, to add 2 worlds in each hand (I have ‘ s got the whole world in his hands!) in will see something similar to the following image. While I have not well adjusted the size of the form so that the worlds coincide 100% with each hand, when you run the application you can see that it is a flickering or tembleque a little weird when examines the detail of the skeleton.

image

As well to solve this problem to our hands comes a fabulous property of the SDK called TransformSmooth. While there is lots of documentation in this respect, using this property we can define a series of buffers for deviations that will be processed during the analysis of the skeleton. Thus if we add the following lines before subscribe to the event of detection of skeletons, we can work in a smooth way.

   1: Kinect.SkeletonEngine.TransformSmooth = true;

   2: var parameters = new TransformSmoothParameters

   3:     {

   4:         Smoothing = 0.75f, 

   5:         Correction = 0.1f, 

   6:         Prediction = 0.0f, 

   7:         JitterRadius = 0.05f, 

   8:         MaxDeviationRadius = 0.08f

   9:     };

  10: Kinect.SkeletonEngine.SmoothParameters = parameters;

  11: Kinect.SkeletonFrameReady += KinectSkeletonFrameReady;

 

Now, to see that values have to apply to each property, it is best to go testing them to see that format is better suited to our application. In this post, is described a bit to represent each property and values by default of the same.


Parameter Description Default Value Comments
Smoothing Specifies the amount of smoothing. 0.5 Higher values correspond to more smoothing and a value of 0 causes the raw data to be returned. Increasing smoothing tends to increase latency. Values must be in the range [0, 1.0].
Correction Specifies the amount of correction. 0.5 Lower values are slower to correct towards the raw data and appear smoother, while higher values correct toward the raw data more quickly. Values must be in the range [0, 1.0].
Prediction Specifies the number of predicted frames. 0.5  
Jitter Radius Specifies the jitter-reduction radius, in meters. 0.05 The default value of 0.05 represents 5cm. Any jitter beyond the radius is clamped to the radius.
Maximum Deviation Radius Specifies the maximum radius that filter positions can deviate from raw data, in meters. 0.04 Filtered values that would exceed the radius from the raw data are clamped at this distance, in the direction of the filtered value.


And as always if you want to download the ´código of this post you can do from here

https://skydrive.live.com/redir.aspx?cid=bef06dffdb192125 & SPL = BEF06DFFDB192125! 3798 & parid = BEF06DFFDB192125! 1932

Greetings @ Home

El Bruno

Sources:

http://Channel9.msdn.com/series/KinectSDKQuickstarts/skeletal-tracking-fundamentals

http://cm-bloggers.blogspot.com/2011/07/kinect-SDK-smoothing-skeleton-data.html

[#KINECT] HowTo: Suavizar la detección de movimientos en el skeleton

image

Buenas,

mientras esperamos que en pocos días salga el SDK final para los desarrollos con Kinect, todavía tenemos que ajustar bastantes cosas para que el SDK nos permita hacer aplicaciones robustas. Una de estas “deudas” que Kinect posee con nosotros es la capacidad de quitar el “tembleque/temblor” que tenemos en cada punto del skeleton cuando trabajamos con el mismo punto a punto o Joint a Joint. Si ejecutas la aplicación que muestra ambos skeletons en un Canvas de WPF, verás que la misma funciona bastante bien.

Ahora bien, si modificamos la misma con un poco del código base de este post, para agregar 2 mundos en cada mano (he’s got the whole world in his hands!!!) in  veremos algo similar a la siguiente imagen. Si bien no he ajustado bien el tamaño del form para que los mundos coincidan 100% con cada mano, cuando ejecutas la aplicación puedes ver que la misma tiene un flickering o tembleque un poco raro cuando analiza el detalle del skeleton.

image

Pues bien para solucionar este problema llega a nuestras manos una fabulosa propiedad del SDK llamada TransformSmooth. Si bien no hay mucha documentación al respecto, utilizando esta propiedad podemos definir una serie de buffers de desviaciones que se procesarán durante el análisis del skeleton. De esta forma si agregamos las siguientes líneas antes de suscribirnos al evento de detección de skeletons, podremos trabajar de una forma más suave.

   1: _kinect.SkeletonEngine.TransformSmooth = true;

   2: var parameters = new TransformSmoothParameters

   3: {

   4:     Smoothing = 0.75f,

   5:     Correction = 0.1f,

   6:     Prediction = 0.0f,

   7:     JitterRadius = 0.05f,

   8:     MaxDeviationRadius = 0.08f

   9: };

  10: _kinect.SkeletonEngine.SmoothParameters = parameters;

  11: _kinect.SkeletonFrameReady += KinectSkeletonFrameReady;

 

Ahora bien, para ver que valores tenemos que aplicar en cada propiedad, lo mejor es ir probando las mismas para ver que formato se adapta mejor a nuestra aplicación.  En este post, se describe un poco que representa cada propiedad y los valores por defecto de las mismas.


Parameter Description Default Value Comments
Smoothing Specifies the amount of smoothing. 0.5 Higher values correspond to more smoothing and a value of 0 causes the raw data to be returned. Increasing smoothing tends to increase latency. Values must be in the range [0, 1.0].
Correction Specifies the amount of correction. 0.5 Lower values are slower to correct towards the raw data and appear smoother, while higher values correct toward the raw data more quickly. Values must be in the range [0, 1.0].
Prediction Specifies the number of predicted frames. 0.5  
Jitter Radius Specifies the jitter-reduction radius, in meters. 0.05 The default value of 0.05 represents 5cm. Any jitter beyond the radius is clamped to the radius.
Maximum Deviation Radius Specifies the maximum radius that filter positions can deviate from raw data, in meters. 0.04 Filtered values that would exceed the radius from the raw data are clamped at this distance, in the direction of the filtered value.


Y como siempre si quieres descargar el ´código de este post lo puedes hacer desde aqui

https://skydrive.live.com/redir.aspx?cid=bef06dffdb192125&resid=BEF06DFFDB192125!3798&parid=BEF06DFFDB192125!1932

 

 

Saludos @ Home

El Bruno

   

Fuentes:

http://channel9.msdn.com/Series/KinectSDKQuickstarts/Skeletal-Tracking-Fundamentals

http://cm-bloggers.blogspot.com/2011/07/kinect-sdk-smoothing-skeleton-data.html

[# VS2010] HowTo: Debug an AddIn for OneNote

image47dd1de4

Good,

I cannot begin to explain the reason for the creation of an AddIn for OneNote. If any known theory of bad luck, because you can see that OneNote is the only element of the suite of Microsoft Office 2010 that does not have a template for the creation of AddIns in Visual Studio 2010. I had to throw the bad memories with IDTExtensibility2, a bit of diving by the registry in order to create an AddIn. That, once created the AddIn for OneNote in Windows8 is very cool, but… I found the head against the wall when I tried to debug it.

It turns out that if well on the list of Windows processes, there is active a process that has all the earmarks of being of OneNote called ONENOTE.EXE; so this process no is hostea the notes in OneNote. As an AddIn is a COM, it is not running in the context of the exe file in OneNote, but not executed within a DLLHOST (bad memories by God!)

image

But hey, attaching the appropriate dllhost process already can debug our AddIns for OneNote.

For this I have to thank Daniel escape for his pursuit of a few years ago > >http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

Greetings @ the estate

The Bruno

Reference: http://msdn.microsoft.com/en-us/library/extensibility.idtextensibility2.aspx

Thanks To http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

[#VS2010] HowTo: Depurar un AddIn para OneNote

image47dd1de4

Buenas,

no voy a comenzar a explicar el porqué de la creación de un AddIn para OneNote. Si alguno conoce la teoría de la mala suerte, pues podrá ver que OneNote es el único elemento de la suite de Microsoft Office 2010 que no posee una plantilla para la creación de AddIns en Visual Studio 2010. Tuve que tirar de los malos recuerdos con IDTExtensibility2, de un poco de buceo por el registro para poder crear un AddIn. Eso si, una vez creado el AddIn para OneNote en Windows8 queda muy chulo, pero …. me topé la cabeza contra la pared cuando intenté depurar el mismo.

Resulta que si bien en la lista de procesos de Windows, hay activo un proceso que tiene toda la pinta de ser el de OneNote, llamado ONENOTE.EXE; pues este proceso no es el que hostea las notas de OneNote. Como un AddIn es un COM, el mismo no se ejecuta en el contexto del EXE de OneNote sino que no se ejecuta dentro de un DLLHOST (que malos recuerdos por dios !!!)

image

Pero bueno, adjuntando el proceso al dllhost correspondiente ya podremos depurar nuestros AddIns para OneNote.

Para esto tengo que agradecer a Daniel Escapa por su pos de hace unos años >> http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

 

Saludos @ La Finca

El Bruno

   

Referencia: http://msdn.microsoft.com/en-us/library/extensibility.idtextensibility2.aspx

Thanks To http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

[OPINION] Visual Studio Achievements, some scary achievements !

image47dd1de4

Good,

in my previous post I mentioned the launch of Visual Studio Achievements, an interesting plugin that brings the concept of achievements or points to the world of development. Now, if we analyze the achievements that have been put into Channel 9, because we see that there is a Division in 6 categories for types of achievements. There is one in particular has achievements of zero points, but that scary just find someone possessing them. For example

image

Do we really want to teach the ruling goto to those people who do not know?. But well, I understand that this is an example of a bad practice and only serves as a reference. For example, the person who holds more achievements at this time (http://channel9.msdn.com/niners/DotNetNuzzi/achievements/visualstudio) has this achievement and I wonder:

Will have achieved the achievement to have points in this programme or really use the GOTO statement?

Both scenarios are equally dangerous. Other achievements that frightened include

Finally, Hadi Hariri is responsible for end to finish the poor implementation of the programme in this post (http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/ )).

I think that the idea is very good, that is carried forward a little bit of promotion tools that complement Visual Studio 2010, such as FxCop and profiling tools. But as says Hadi, could not have taken the opportunity and think of achievements that actually promote a development based on good practices and clean.

Greetings @ Home

The Bruno

Download: http://visualstudiogallery.msdn.microsoft.com/bc7a433b-b594-48d4-bba2-a2f24774d02f

References: http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/

[OPINION] Visual Studio Achievements, algunos logros dan miedo !!!

image47dd1de4

Buenas,

en mi post anterior comenté el lanzamiento de Visual Studio Achievements, un interesante plugin que trae el concepto de logros o puntos al mundo del desarrollo. Ahora bien, si analizamos los logros que se han puesto dentro de Channel 9, pues vemos que hay una división en 6 categorías para tipos de logros. Hay una en particular que tiene logros de cero puntos, pero que dan miedo de solo encontrar a alguien que los posea. Por ejemplo

image

De verdad queremos enseñar la sentencia goto a aquellas personas que no lo conocen?. Pero bueno, entiendo que esto es un ejemplo de una mala práctica y solo sirve como referencia. Por ejemplo, la persona que más logros posee en este momento (http://channel9.msdn.com/niners/DotNetNuzzi/achievements/visualstudio) posee este logro y yo me pregunto:

¿Habrá conseguido el logro para tener puntos en este programa o REALMENTE UTILIZA LA SENTENCIA GOTO?

Ambos escenarios son igual de peligrosos. Otros logros que asustan son los siguientes

Finalmente, Hadi Hariri se encarga de terminar de rematar la mala implementación del programa en este post (http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/).

Yo creo que la idea es muy buena, que se trata de llevar adelante un poco de promoción de herramientas que complementan a Visual Studio 2010, como FxCop o las herramientas de profiling. Pero como dice Hadi, no podrían haber aprovechado la ocasión y pensar en logros que realmente promuevan un desarrollo limpio y basado en buenas prácticas.

 

Saludos @ Home

El Bruno

   

Download: http://visualstudiogallery.msdn.microsoft.com/bc7a433b-b594-48d4-bba2-a2f24774d02f

References: http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/