June 2012 - Artículos

image

Buenas,

hace un tiempo hablé de la posiblidad de configurar WinMerge para utilizarlo como herramienta por defecto para Diff y Merge dentro de Visual Studio 2010. Con Visual Studio 2012 se ha incorporado una nueva herramienta de Diff y Merge que la verdad es que funciona muy bien (algo hablé aquí sobre esta nueva herramienta)

Ahora bien, si queremos comparar 2 archivos de manera simple, pues el IDE no es para nada intuitivo para encontrar esta opción. Por suerte, la línea de comandos nos da la respuesta con el siguiente formato:

devenv.exe /diff    Compares two files.  Takes four parameters:
    SourceFile, TargetFile, SourceDisplayName(optional),
    TargetDisplayName(optional)

Y luego de lanzar un comando del estilo

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE>devenv.exe /diff
"e:\source.txt" "e:\target.txt" "SOURCE" "TARGET"

veremos algo similar a lo siguiente

image

 

Saludos @ La Finca

El Bruno

image image image
Publicado 28/6/2012 17:08 por El Bruno | con no comments

image

Buenas,

El próximo martes 3 de julio, vuelvo como todos los años con los amigos de SecondNug esta vez para hablar de Team Foundation Service (nombre que no me convence pero es lo que hay!).

Hoy lo pongo fácil fácil un repaso por las nuevas características de esta versión y haremos una comparativa con la versión TFS que ya conocemos. Eso sí, si puedo cuelo un robot, un poco de realidad aumentada o un Kinect en la sesión !!!

Url Evento: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032516251&Culture=es-AR

foro_tfs11

Saludos @ Home

El Bruno

image image image

image

Buenas,

el próximo jueves 28 de junio, Pablo Carballude (Microsoft) nos explicará un poco como sacarle provecho al SDK de publicidad cuando creamos aplicaciones para Windows 8. Claro, él viene a explicarnos eso, pero nosotros aprovecharemos que es un crack de Windows 8 para preguntarle otro monton de cosas Open-mouthed smile

Así que ya sabes, si quieres pasar un buen rato, nos vemos en 2 días por La Finca.

registro: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032515449&Culture=es-ES

Saludos @ La FInca

El Bruno

image image image

Publicado 26/6/2012 19:06 por El Bruno | con no comments

image

Buenas,

hoy gracias a David (compi de Avanade) me dí una vuelta por el site de Team Foundation Service y me quedé sorprendido con el detalle y simplicidad de los materiales de formación que se presentan allí.

Por ejemplo, en la sección Getting Started with Visual Studio, podemos ver como conectarnos a TFS, como subir código, crear una build, etc. de una forma muy simple.

image

Además del estilo METRO que aparece hasta en la sopa en MSDN, aquí también podemos ver los contenidos en el formato que más me gusta a mi: step by step. Los contenidos de por ahora estan en inglés, pero son bastante completos.

El índice completo es el siguiente:

Getting Started with Visual Studio

Connect Visual Studio to TFS

Setup a Build in Visual Studio

Connect Microsoft Test Manager to TFS

Invite Team Members to your Project

Saludos @ Home

El Bruno

image image image

image

Buenas,

dato de apunte para no perderme y poder descargar las nuevas máquinas virtuales para probar Visual Studio 2012 y Team Foundation Server 2012. En el entorno completo podemos encontrar:

  • Microsoft Windows Server 2008 R2 Standard Edition
  • Microsoft SQL Server 2008 R2
  • Microsoft Visual Studio Ultimate 2012 RC
  • Microsoft Visual Studio Team Foundation Server 2012 RC
  • Microsoft SharePoint Foundation 2010
  • Microsoft Project 2010
  • Microsoft Office Professional 2010 (Word, PowerPoint, Excel, Outlook)
  • Sample users and data required to support hands-on-lab scripts which accompany this download and exercise 18 ALM scenarios, including 7 new capabilities from Visual Studio 2012 and 11 capabilities which were introduced in the Visual Studio 2010 release.

Y el link de descarga se puede encontrar en: http://blogs.msdn.com/b/briankel/archive/2011/09/16/visual-studio-11-application-lifecycle-management-virtual-machine-and-hands-on-labs-demo-scripts.aspx

Saludos @ Home

El Bruno

image image image

ALM 03

Buenas,

hoy toca también una noticia que no es tan nueva pero si da mucha visibilidad del excelente trabajo que está haciendo la gente de aquí en Redmond con las herramientas de ALM. Los super ultra mega predictores de futuro de Gartner han posicionado a las suite de herramientas de Microsoft de ALM en la mejor posición posible, frente a sus competidores, en su clásico magic quadrant.

Entre otras partes del análisis completo, yo recalcaría:

By virtue of its position in the market as a provider of key platforms and development tools, Microsoft acts as an overall thought leader in the ALM market”

“Unlike all of the other tools in this Magic Quadrant, Microsoft's is the only one that tightly binds its versioning system to the rest of the ALM planning tool.”

“..the company has made good strides with support for Eclipse and the ability to extend TFS with Java code.”

image

Fuente: http://www.gartner.com/technology/reprints.do?id=1-1ASCXON&ct=120606&st=sb

Saludos @ Redmond

El Bruno

image image image
Publicado 20/6/2012 21:59 por El Bruno | con no comments
Archivado en:

image

Buenas,

los datos y la forma de interpretar la cobertura de código es un tema bastante delicado de tocar, pero al igual que los preservativos; es preferible tenerlos a mano y no necesitarlos, que necesitarlos y no tenerlos.

En Visual Studio 2012 y Team Foundation Server 2012 tenemos la oportunidad de configurar nuestras definiciones de compilación para que tengan en cuenta (o no) la cobertura de código.

Por ejemplo, si editamos una definición de Team Build en Team Foundation Service, podremos ver also similar a lo siguiente en la ventana de configuración:

image

Si accedemos a los detalles de los tests a ejecutar podemos elegir en las opciones de esta secciones, si queremos dejar de lado las opciones, habilitar la cobertura de código o interpretar más información a través de un archivo de configuración.

image

Por ejemplo, si habilitamos la opción de CC veremos en el resultado de una compilación información similar a la siguiente. En la que podemos ver que tenemos solo un 21% de CC, por más que nuestros tests ejecutan un CC bastante alto sobre nuestro codigo.

image

El problema viene dado, ya que dentro de la definición por defecto de “habilitar CC” también se tienen en cuenta todos los ensamblados de .Net que se utilizan durante el proceso. Asi que, ¿cómo solucionar este escenario?

Pues muy simple.

1. Agregar un archivo de tipo “test settings” a la solución en la que estamos trabajado.

2. Dentro de estas settings, definimos los ensamblados que queremos analizar.

3. Configuramos este archivo para que sea el que “dirija” la ejecución de nuestros tests.

4. Protegemos este archivo dentro de nuestro TFS

5. Editamos la definición de nuestra Team Build y accedemos a la sección de detalles de tests.

6. En las opciones de test, seleccionamos la opción “custom” y seleccionamos el archivo “test settings” que creamos y protegimos en pasos anteriores.

image

7. Lanzamos la build y ..done!

Un detalle, este escenario también es utilizable cuando trabajamos con clientes de Visual Studio 2010 o en escenarios mixtos.

Saludos @ Home

El Bruno

image image image

image

Buenas,

una noticia simple y rápida desde Redmond, se ha liberado una actualizacion para el ToolKit para desarrolladores en el Kinect SDK. Contiene entre otras cosas una actulización importante para Kinect Studio (del que hablé aquí) y mejoras en la documentación, etc.

Vale la pena descargarlo y actualizarlo

Fuente: http://blogs.msdn.com/b/kinectforwindows/archive/2012/06/18/kinect-for-windows-developer-toolkit-update-v1-5-1.aspx

Saludos @ Home

El Bruno

image image image
Publicado 18/6/2012 19:05 por El Bruno | con no comments
Archivado en:

image

Buenas,

todos los que desarrollamos aplicaciones con Kinect sabemos que lo más pesado de este tipo de desarrollos es el modo prueba/error al que te ves enfrentado. Es decir, si bien el Kinect es una cámara que detecta personas, cada una de las pruebas que deseas hacer requiere que te pongas de pie delante del sensor y hagas la rutina de turno. En ocasiones donde la cosa no va tan fluida como te gustaría, pues te toca levantarte de la silla varias veces por hora.

Con la llegada de la versión 1.5 de Kinect SDK, tenemos una nueva herramienta llamada Kinect Studio que llega para ahorrarnos este problema. La forma de funcionamiento que posee es muy simple: te permite grabar una sesion frente al kinect y luego reproducir la misma las veces que sea necesario.

Para esto lo primero que vemos en su interfaz es una barra de grabación y reprodución.

image

Cuando lanzamos la aplicación o si presionamos en el botón conectar veremos que tenemos un listado con todos aquellos procesos que están accediendo al sensor. El siguiente paso es conectarnos a este proceso y ya podremos comenzar a grabar.

image

Una vez que hemos grabado una sesion frente a nuestro sensor podremos ver la misma en la aplicación. Veremos el tiempo que posee la grabación y podremos guardala para utilizarla nuevamente. Un dato a tener en cuenta es que las grabaciones son un tanto grandes de tamaño, por ejemplo una grabación de ~10 segundos se almacena en un archivo de aproximadamente 350 MBs.

image

Pues bien, ahora llega lo mejor. Si queremos reproducir la prueba nuevamente en nuestra aplicación, solo debemos conectar la misma (en la status bar inferior vemos que ya está conectada) y al darle al play veremos como nuestra aplicación recibe datos del Kinect, sin que nadie haga el mono frente al sensor.

image

En cualquier momento podemos pausar la reproducción, detenerla o inclusive poner un modo repetición que nos permitirá fundir los tiempos de proceso de nuestra aplicación.

Y otro detalle a tener en cuenta, en todo momento tenemos la posibilidad de ver la vista de la cámara, del sensor de profundidad y de un visor 3D muy vistozo para ver los datos que está procesando el Kinect.

image

Pues bien, hoy no tengo tiempo, pero para la próxima prometo un video mostrando el Kinect Studio.

Saludos @ Home

El Bruno

image image image
Publicado 12/6/2012 19:15 por El Bruno | con no comments
Archivado en: ,

image

Buenas,

hoy tenía otras cosas de las que escribir pero este post de Brian Harry hace que cambie la dirección por unos minutos. La noticia es muy rápida de comprender

Team Foundation Service (TFS on the Cloud) ahora está disponible para que cualquier persona pueda probarlo. Asi que ya sabes, entras a http://tfspreview.com/ y te sacas una cuenta de prueba por ahora que es gratis.

Como alguno se preguntará si esto será gratis for ever, pues la respuesta es no. Todavía no está cerrado el modelo de licencias pero inicialmente habrá un modelo de licenciamiento gratuito y a medidad que se agreguen features, pues se requeriran más €uros para pagar los mismos.

Yo estoy bastante contento con Team Foundation Service, ahora que además podemos conectarnos también desde VS2008 pues mira, la familia cada vez más grande cabe en un salón no tan apretado.

Pues bueno, en la home hay muchos accesos directos a material de formación, preguntas, etc. que ayudan y mucho a comenzar a trabajar.

Fuente: http://blogs.msdn.com/b/bharry/archive/2012/06/11/team-foundation-service-preview-is-public.aspx

Saludos @ Home

El Bruno

image image image
Publicado 11/6/2012 18:50 por El Bruno | con no comments

image

Buenas,

pues más claro que el agua. Hasta ahora podíamos conectarnos a TFS11 o a Team Foundation Service (TFS on the cloud) utilizando Visual Studio 2012 o Visual Studio 2010. Ayer el gran Brian Harry, nos comenta en este post que ya podemos hacer lo mismo desde Visual Studio 2008. Para esto tenemos que aplicar esta actualización sobre Visual Studio 2008 SP1.

Descarga; http://support.microsoft.com/kb/2673642

Referencia: http://blogs.msdn.com/b/bharry/archive/2012/06/09/update-for-vs-2008-and-tfs-11.aspx

Saludos @ Home

El Bruno

image image image

image

Buenas,

pequeño tip de Sábado. Si lo segundo que te hace mal a la vista en Visual Studio 2012 son los menúes en mayúscula, aqui tienes un truco para cambiar los mismos

image

Simplemente hay que agregar una entrada en el registro. En [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General] crear una entrada de tipo DWord (32 bits) con el nombre [SuppressUppercaseConversion] y con valor = 1

image

Una vez agregada la entrada, y reiniciado Visual Studio ya solo te dolerá el ícono del mismo.

image

Saludos @ Home

El Bruno

image image image
Publicado 9/6/2012 20:35 por El Bruno | con no comments

image

Buenas,

ahora que ya he hecho funcionar (casi in extremis!) el reconocimiento facial para Windows Phone pero con Visual Studio 2010, me toca volver a Visual Studio 2012 y hablar un poco sobre las mejoras que tenemos en este caso cuando hacemos un CheckIn.

Una de las cosas más molestas que teníamos al momento de hacer un CheckIn es la asociación con WorkItems, y digo molesta porque si tenemos muchos elementos de trabajo, pues acertar de entrada al que buscamos era un poco complicado hasta ahora.

Ahora con VS2012 los amigos de Redmond le han dado un poco la vuelta y lo han mejorado un poquillo. Ahora tenemos la capacidad de marcar consultas de WorkItems como favoritas y tenerlas más a mano dentro del Team Explorer.

image

Luego al momento de cambiar a la vista de Pending Changes tenemos las siguientes opciones para elegir el o los WorkItems correspondientes:

  • Ingresar el ID del mismo
  • Arrastrar y soltar desde el resultado de una consulta

Para la 2da opción teníamos que volver a la vista de WorkItems, seleccionar la consulta, etc. Ahora ya tenemos en el desplegable Queries nuestros favoritos más a mano y listo! en 2 segundos ya podemos llegar al WorkItem que querramos.

image

Por cierto, esto no está sujeto a ninguna versión de TFS, funciona como parte del IDE de Visual Studio 2012 con lo que se puede utilizar también con TFS2010.

Saludos @ Home

El Bruno

image image image

Saludos @ Home

El Bruno

image image image

image

Buenas,

Disclaimer: cuando escribí este post no estaba al 100% de lo mío (es lo que tiene ser así… así…). Gracias a @wasat ahora tengo más información al respecto y le daré mi voto de confianza a VS2012 y WP.

no entiendo muy bien que se les pasa por la cabeza a nuestros amigos de MS con respecto a las herramientas de desarrollo de Windows Phone, Windows 8 y Visual Studio 2012. En las versiones VS11 Developer Preview y VS11 Beta, medio que entendía que no existiesen las extensiones para desarrollar para WP pero frente a una version final, que no estén … me asusta un poco.

Una vez más tendré que tener instalados Side-By-Side VS2010 y VS2012 RC para poder tirar unas líneas sobre WP … Lo peor, es que tampoco parece haber mucha información oficial sobre fechas de lanzamiento, roadmap, etc. Salvo este thread de StackOverflow y un par de artículos más, no hay nada de nada …

Menudo cabreo tengo … Angry smile

Saludos @ Home

El Bruno

image image image

image

Buenas,

Después de lo bien que lo pasamos en nuestro primer dojo y antes de que lleguen las vacaciones, os traemos la seguda edición en la que subiremos un poquito el nivel. Para esta ocasión haremos la modalidad Randori:
El problema se intentará solucionar programando en pareja. (Pair Programming).
Todos los asistentes pueden a ayudar a la pareja.
Cada pareja dispondrá de unos 10 minutos para avanzar en la solución de la kata haciendo uso de TDD.
Al finalizar los 10 minutos, el conductor de la pareja vuelve al público, el copiloto se convierte en conductor y entra alguien del público como copiloto.
Como siempre lo más importante es para pasar un rato divertido, y para ello te necesitamos.
Lo único que debes traer contigo es tu portátil y ganas de aprender y particpar.

Registro: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032515429&Culture=es-ES

Saludos @ Home

El Bruno

image image image
Publicado 6/6/2012 22:35 por El Bruno | 1 comment(s)
Archivado en: ,

image

Buenas,

hay varias personas que me han pedido el código fuente de la aplicación de pantalla verde con Kinect, así que aquí está http://sdrv.ms/KuC9Uz

Y claro los post anteriores

image

Saludos @ Home

El Bruno

image image image
Publicado 5/6/2012 20:56 por El Bruno | con no comments

image

Buenas,

esta es la 2da parte del post donde muestro como utilizar a la cámara de Kinect como una pantalla verde para plantar la imagen de nuestro cuerpo … pues donde queramos.

En el post anterior quedaba una parte importante de analizar que era el proceso de cada frame del skeleton, cámara y sensor de profundidad.

   1: void SensorAllFramesReady(object sender, AllFramesReadyEventArgs e)
   2: {
   3:     if (_sensor == null) return;
   4:     var hasDepth = false;
   5:     var hasColor = false;
   6:     hasDepth = GetDepthFrame(e);
   7:     hasColor = GetColorFrame(e);
   8:     ProcessDepthFrame(hasDepth);
   9:     ProcessColorFrame(hasColor);
  10: }

Como veremos en el siguiente código, las funciones GetDepthFrame y GetColorFrame validan que poseamos información correcta de la cámara y del sensor de profundidad, antes de dar como válido el proceso.

A continuación la función ProcessDepthFrame se encarga de realizar un mapeo de los puntos del array de la cámara y del array del sensor de profundidad que nos da como resultado un array donde en cada punto sabemos, la información de la cámara, la distancia de la misma al sensor, si está relacionada con un player y además podremos relacionarla también con un joint del skeleton.

Con toda esta información, en la 2da función ProcessColorFrame ya podremos pintar sobre el mapa de bits de la imagen de fondo, solo el cuerpo de cada player y dejar los otros bits en modo transparente.

   1: private void ProcessColorFrame(bool hasColor)
   2: {
   3:     if (!hasColor) return;
   4:     // Write the pixel data into our bitmap
   5:     _colorBitmap.WritePixels(new Int32Rect(0, 0, _colorBitmap.PixelWidth, _colorBitmap.PixelHeight), _colorPixels,
   6:                              _colorBitmap.PixelWidth*sizeof (int), 0);
   7:  
   8:     if (_playerOpacityMaskImage == null)
   9:     {
  10:         _playerOpacityMaskImage = new WriteableBitmap(_depthWidth, _depthHeight, 96, 96, PixelFormats.Bgra32, null);
  11:         imgMask.OpacityMask = new ImageBrush
  12:                                   {
  13:                                       ImageSource = _playerOpacityMaskImage
  14:                                   };
  15:     }
  16:  
  17:     _playerOpacityMaskImage.WritePixels(new Int32Rect(0, 0, _depthWidth, _depthHeight), _greenScreenPixelData,
  18:                                         _depthWidth*((_playerOpacityMaskImage.Format.BitsPerPixel + 7)/8), 0);
  19: }
  20:  
  21: private void ProcessDepthFrame(bool hasDepth)
  22: {
  23:     if (hasDepth)
  24:     {
  25:         _sensor.MapDepthFrameToColorFrame(DepthImageFormat.Resolution320x240Fps30, _depthPixels,
  26:                                           ColorImageFormat.RgbResolution640x480Fps30, _colorCoordinates);
  27:  
  28:         Array.Clear(_greenScreenPixelData, 0, _greenScreenPixelData.Length);
  29:  
  30:         for (var y = 0; y < _depthHeight; ++y)
  31:         {
  32:             for (var x = 0; x < _depthWidth; ++x)
  33:             {
  34:                 var depthIndex = x + (y*_depthWidth);
  35:                 var depthPixel = _depthPixels[depthIndex];
  36:                 var player = depthPixel & DepthImageFrame.PlayerIndexBitmask;
  37:                 if (player <= 0) continue;
  38:  
  39:                 var colorImagePoint = _colorCoordinates[depthIndex];
  40:                 var colorInDepthX = colorImagePoint.X/_colorToDepthDivisor;
  41:                 var colorInDepthY = colorImagePoint.Y/_colorToDepthDivisor;
  42:                 if (colorInDepthX <= 0 || colorInDepthX >= _depthWidth || colorInDepthY < 0 ||
  43:                     colorInDepthY >= _depthHeight) continue;
  44:                 var greenScreenIndex = colorInDepthX + (colorInDepthY*_depthWidth);
  45:                 _greenScreenPixelData[greenScreenIndex] = OpaquePixelValue;
  46:                 _greenScreenPixelData[greenScreenIndex - 1] = OpaquePixelValue;
  47:             }
  48:         }
  49:     }
  50: }
  51:  
  52: private bool GetColorFrame(AllFramesReadyEventArgs e)
  53: {
  54:     bool hasColor;
  55:     using (var colorFrame = e.OpenColorImageFrame())
  56:     {
  57:         if (colorFrame != null)
  58:         {
  59:             colorFrame.CopyPixelDataTo(_colorPixels);
  60:             hasColor = true;
  61:         }
  62:     }
  63:     return hasColor;
  64: }
  65:  
  66: private bool GetDepthFrame(AllFramesReadyEventArgs e)
  67: {
  68:     bool hasDepth;
  69:     using (var depthFrame = e.OpenDepthImageFrame())
  70:     {
  71:         if (depthFrame != null)
  72:         {
  73:             depthFrame.CopyPixelDataTo(_depthPixels);
  74:             hasDepth = true;
  75:         }
  76:     }
  77:     return hasDepth;
  78: }

Ahora si que lo han simplificado Risa

 

Saludos @ Home

El Bruno

image image image

image

Buenas,

hoy me hago eco de algunas noticias que están dando vuelta por allí. Por un lado la salida de Windows 8 Release Preview y por otro el tan esperado cambio de nombre de Visual Studio 11 a Visual Studio 2012 y la salida de la versión RC del mismo.

Sobre el nuevo icono de Visual Studio tendré que escribir un post al respecto, porque si bien pienso que es más feo que pegarle a la madre, no creo que cumpla para nada con los criterios de METRO … en fin.

Aquí los links de descarga (gracias a este post)

Visual Studio 2012 Ultimate RC

Visual Studio 2012 Ultimate RC is the comprehensive ALM offering for organizations developing and operating highly scalable software applications and services.

Web installer http://go.microsoft.com/?linkid=9810263

ISO Image http://go.microsoft.com/fwlink/?LinkId=247147

Visual Studio 2012 Premium RC

Visual Studio 2012 Premium RC offers an integrated ALM solution to bring together stakeholders, users, and software development functions to deliver compelling applications as a unified team.

Web installer http://go.microsoft.com/?linkid=9810243

ISO Image http://go.microsoft.com/fwlink/?LinkId=247144

Visual Studio 2012 Professional RC

Visual Studio 2012 Professional RC is a unified development experience that enables developers to create multi-tier applications across the web, cloud, and devices.

Web installer http://go.microsoft.com/?linkid=9810223

ISO Image http://go.microsoft.com/fwlink/?LinkId=247141

Visual Studio 2012 Test Professional RC

Visual Studio 2012 Test Professional RC is ideal for testers, business analysts, product managers, and other stakeholders who need team collaboration tools, but not a full development IDE.

Web installer http://go.microsoft.com/?linkid=9810304

ISO Image http://go.microsoft.com/fwlink/?LinkId=247152

Visual Studio 2012 Express RC for Windows 8

Microsoft Visual Studio 2012 Express RC for Windows 8 provides the core tools that are required to build compelling, innovative Windows Metro style apps. It include a fully featured code editor, a powerful debugger, a focused profiler, and rich language support that you can use to build apps that written in HTML5, JavaScript, C++, C# or Visual Basic. Visual Studio 2012 Express RC for Windows 8 also includes a device simulator that you can use to test Metro style apps on multiple form factors.

Web installer http://go.microsoft.com/?linkid=9810150

ISO Image http://go.microsoft.com/?linkid=9810160

Saludos @ Home

El Bruno

image image image
Publicado 1/6/2012 14:20 por El Bruno | con no comments
Archivado en: