Buenas,

hace 2 días que se presentó la nueva XBox One, y una de las cosas que más nos tenía intrigados era QUE TENÏA EL NUEVO KINECT.

Si todavía no estás al tanto, te lo resumo en los puntos que yo considero que son los más importantes.

image

Hardware

Pues la nueva XBox One es más fea que morder arena. Y el nuevo Kinect no se queda atrás. Lo bueno es que detrás de la apariencia de gadget cutre de una película de los 80’s el nuevo kinect tiene

  • Más resolución en el sensor de profuncidad (pero mucha más), detecta hasta los botones de una camisa si estas suficientemente cerca
  • Mucha más resolución en la cámara, ahora tenemos una HD Video Camera, 1080p
  • Active IR, un sensor activo de InfraRojos que permite identificar objetos y personas en entornos con poca o nula luminosidad (nula es ZERO, con las luces apagadas)
  • No han dicho nada del motor y creo que no hay más. Ahora con el gran angular que posee el nuevo Kinect no hace falta moverlo hacia arriba o abajo para poder enfocar mejor

Y ahora vamos con las features …

Skeleton Tracking

Si hablamos del Skeleton tracking, el kinect ha pasado de una versión 1.0 a una version 2.0. Ahora se detectan mas Joints, se puede detectar la rotación de los mismos, se detectan dedos, etc. Vamos que es impresionante

image

Force detector

Otra feature interesante es la capacidad de analizar las fuerzas que actuan sobre cada Joint. La siguiente imagen muestra como al pasar el peso de un pie al otro, el mismo se pone de color rojo para indicar un exceso de la fuerza en el mismo (si che, suena a Jedi)

imageimage

Impactos = Muscle + Force

Aqui va otra de las buenas, analizando la aceleración de los elementos del cuerpo y cruzando esta información con la fuerza que se aplica en los mismos, es posible identificar y ver algo parecido a “impactos”. En el video de WIRED el periodista hace un … del Street Figther que es para morir de la alegría!

imageimage

Heart Rates

Si si si, parece un poco de ciencia ficción pero ahora puedes tener acceso a la información con los latidos del corazón de cada user. Analizando los cambios en la piel, se puede estimar las pulsaciones por minutos, etc. Imagino aplicaciones clínicas con esto delante :D

image

Expression platform

Reconocimiento facial avanzado

image

Varias

Inicio de sesión automático utilizando reconocimiento facial

Detección de hasta 6 jugadores

y mucho más !!!

image

 

Por cierto, esta información ES PUBLICA. Se puede ver en el siguiente video de los cracks de WIRED que me ha pasado el Edu.

Fuente: http://video.wired.com/watch/new-xbox-kinect-exclusive-wired-video-398878

Saludos @ La Finca

El Bruno

image image image
Publicado 23/5/2013 13:11 por El Bruno | con no comments
Archivado en:

image

Buenas

después de pasar unos 60 minutos increíbles con la gente de MSDN Latam hablando sobre cómo es posible trabajar con Visual Studio 2012 y Team Foundation Server 2012, me toca cumplir con lo prometido: compartir la presentación, algunos links, etc.

Definition of DONE


http://blogs.msdn.com/b/willy-peter_schaub/archive/2013/03/21/definition-of-done-and-knowing-when-it-is-safe-to-sleep-peacefully.aspx
Algo imprescindible que tiene que estar claro desde el día uno.

Libros

WebCast TFS Express


http://elbruno.com/2013/03/11/event-msdn-latam-webcast-msdn-todos-a-bordo-del-team-foundation-server-express/
https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-AR&EventID=1032547149&CountryCode=AR

Planning Poker Online


http://www.planningpoker.com/
Es gratis y pueden trabajar de forma distribuida sin ningun problema.

Y finalmente la presentación

 

Saludos @ Home

El Bruno

image image image

Publicado 22/5/2013 22:35 por El Bruno | con no comments
Archivado en: ,,

image

Buenas,

después de un par de días de oscurismo, por fin me puedo sacar las ganas y comentar como podemos trabajar de manera ÁGIL con Visual Studio 2012 y Team Foundation Server 2012. Los amigos de MSDN Latam me han dado un espacio de 60 minutos para comentar como es posible llevar adelante un equipo utilizando las herramientas de Visual Studio ALM. (como siempre muchas gracias!)

Si bien 60 minutos es poco tiempo, intentaré pasar por los temas básicos

  • organización del trabajo
  • planificación del trabajo
  • ejecución del trabajo
  • gestión de cambios

A qué ahora lo ves más claro, ¿no?

image

Registro: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032551090&Culture=es-AR&community=0

Saludos @ Home

El Bruno

image image image

ALM 03

Buenas,

cuidado que no voy a entrar en si AGILE, SCRUM o la muerte del modelo Waterfall. Hoy voy a algo más básico:

¿Porqué utilizamos metodologías durante el proceso de desarrollo de software?

¿Qué no te gusta la frase? pues a ver si esta te parece más adecuada

¿Porqué es recomendable aplicar buenas prácticas durante el proceso de desarrollo de software?

¿Sigue sin gustarte? me juego con la última

Te dedicas a hacer software y trabajas en modo Ninja, siguiendo solo tu instinto y reaccionando a los cambios a medida que surgen: Pues … ¡¡¡ morirás entre terribles sufrimientos !!!

Espero que después de esta introducción haya podido explicar el concepto: los llamemos metodologías, buenas prácticas o de alguna otra manera; todos seguimos una serie de normas cuando desarrollamos software. La pregunta inicial es porqué hacemos esto, y la respuesta es más que obvia

Para reducir el riesgo en nuestros proyectos

o si te gusta más

Para tener resultados más predictivos sobre los que trabajar

¿Parece simple no? Pues que sepas que han pasado más de 50 años desde que uno se dio cuenta de esto y lo formalizó. En primer lugar se crearon los procesos, que se encargaban de definir la forma en la que se debía trabajar. Lo bueno de los procesos es que eran 100% mesurables. Era muy fácil decir que como a esta tarea la hemos definido sobre estas bases, pues la misma debería tardar 6 meses. Si todas las personas respetaban esos procesos pues los resultados eran altamente predecibles.

Pero claro, las personas somos unos seres bastante impredecibles; y tanto desde el lado del cliente como del los programadores los cambios se sucedían constantemente. Es por esto, que un par de cracks se juntaron y crearon el manifiesto ágil; personas sobre procesos, respuesta al cambio sobre el seguimiento, etc. Vamos que ya lo conoces …

Y de nuevo, detrás de todo esto había un motivo más que simple: poder predecir los resultados y ser coherentes con lo que una persona o un equipo puede hacer. Así que ya sabes, si alguna vez te preguntas porqué un equipo trabaja con una serie de reglas, con una metodología, best practices o el nombre de moda, pues es probable que sea para mejorar el output del equipo y para ser más predecibles (entre otras cosas)

Aclaración: cuidado! que eso no quita que un equipo trabaje bajo unas premisas que no sirven absolutamente para nada, esos casos ya sabes la forma de arreglarlo: DOLOR !!!!

Y para cerrar una de Dilbert de regalo

image

Saludos @ Home

El Bruno

image image image

Publicado 20/5/2013 21:50 por El Bruno | con no comments
Archivado en: ,

image

Buenas,

gracias al gran Marino Posadas (@MarinoPosadas) veo un addin para Visual Studio 2012 que tiene buena pinta: “Image Comments

AddIn es simple, aprovechar la potencia de WPF en el editor de código para poder insertar imágenes en el mismo. Para esto se sirve de una sintaxis específica en los comentarios, por ejemplo:

/// <summary>
/// <image url="c:\rome.png" />
///…

Los puristas seguro que se arrancan los pelos de la cabeza, no solo estoy promoviendo poner comentarios, sino que además … estoy poniendo imágenes !!! Muerte al hereje !!! Pero les puedo asegurar que en algunos casos, un comentario ayuda mucho, y ni hablar una imagen. Los ejemplos del site son relacionados con fórmulas matemáticas, yo he aprovechado para completar un cliente “no oficial” de Lync en el que estamos trabajando, que tiene que además … bueno hacer algo con Skype sobre lo que no puedo hablar mucho.

Eso sí, en el código queda muy llamativo el ejemplo …

image

Ahora bien, si has prestado atención al código, verás que el path de las imágenes es absoluto. Esto es una feature que está en progreso, ya que los paths relativos se toman a partir del path de ejecución del AppDomain del IDE de Visual Studio. Si el AddIn soportara la siguiente sintaxis ya sería un #musthave

   1: /// <summary>
   2: /// <image url=".\samplecall.png" />
   3: /// </summary>
   4: private VideoChannel videoChannel;

Y yo como soy un pesado, pues lo he pedido : https://github.com/lukesdm/image-comments/issues/10

HomePage: https://github.com/lukesdm/image-comments#imagecomments-a-visual-studio-extension

Además de pedir que publique el AddIn en la Visual Studio Gallery: https://github.com/lukesdm/image-comments/issues/11

Saludos @ Home

El Bruno

image image image

ALM 03

Buenas,

los amigos de la edición avanzada de Outlook, es decir Microsoft CRM estarán más que contentos, ahora ya tienen un punto de partida para gestionar el ciclo de vida cuando se desarrollen aplicaciones para esta plataforma. Se ha liberado un whitepaper que describe como trabajar con los proyectos de CRM dentro de Visual Studio y como colaborar con los mismos utilizando Team Foundation Server.

Si bien el inicio de este post puede tener un tono de ironía, he de reconocer que MS CRM es un producto muy bueno. Olvidándonos del CRM propiamente dicho, la plataforma XRM provee una base robusta y completa para desarrollar aplicaciones sobre la misma. En días como los actuales, donde el TTM de las aplicaciones es fundamental, contar con una plataforma que nos de un quick start muy rápido es fundamental, y CRM lo hace.

Espero durante los siguientes días, poder contactar con la gente de CRM de Avanade para que me den su opinión al respecto. ;)

Fuente: http://blogs.msdn.com/b/aymerics_blog/archive/2013/05/17/new-microsoft-release-alm-for-microsoft-dynamics-crm-2011-crm-solution-lifecycle-management.aspx?utm_source=feedly

Saludos @ Home

El Bruno

image image image

ALM 03

Buenas.

El post de hoy empieza con una afirmación:

HOUSE es un crack

Alguno me podrá refutar que todos los capítulos son iguales, algo así:

  1. Paciente X tiene enfermedad desconocida
  2. Se lo dan a House que no lo quiere ver y lo acepta de mala gana
  3. Paciente X crea un vínculo con uno de los asistentes de House
  4. House se salta las normas para ver que tipo de enfermedad tiene el paciente
  5. El equipo la caga, casi se cargan al paciente
  6. A House le cae una buena de sus jefes
  7. En un momento de inspiración, House da con la enfermedad

… y siempre, o casi siempre, por el camino se descarta el Lupus o alguna enfermedad autoinmune.

Con este resumen te he ahorrado ver las 8 temporadas de House. Sin embargo lo mejor que tiene House, es que a lo largo de toda la serie, el protagonista tiene una mala leche / hostia que tiene hace que suelte unas frases que son sabiduría pura. Un excelente ejemplo y de las que más me gusta es:

Las mujeres nunca se equivocan, incluso cuando se equivocan, llega un momento dela discusión en la que sorprendentemente vuelven a tener razón.

Pues eso, el 3er capítulo de la primera temporada se titula “Occam’s Razor”, que traducido al spanglish es algo así como la navaja de Ockham. La navaja de Ockham es un principio de hace una pila de años (del siglo XIV) que dice algo similar a esto:

En igualdad de condiciones, la explicación más sencilla suele ser la correcta.

Esto es sabiduría pura, y sentido común al cuadrado. Cuando trabajas en informática y te enfrentas a problemas diariamente, te terminas dando cuenta de que esta es una verdad para enmarcar. Pero claro, como en toda verdad para enmarcar, hay que tener en cuenta el contexto de cada afirmación.

Hoy estoy muy grafico, así que veamos un ejemplo más claro:

image

¿Queda claro no?, espero que sí, las afirmaciones más simples tampoco suelen ser las correctas.

Y ahora si, ya podemos volver a House. En el capítulo que inspira este post, House da una vuelta más a la frase de Ockham, reformulando algo así como:

La explicación más sencilla es que casi siempre alguien metió la pata

Esto también es 100% aplicable al día a día de nuestro trabajo en informática. Muchas veces nos podemos a buscar problemas de redes, problemas de despliegues, actualizaciones, etc.; cuando lo 1ro que deberíamos hacer es hablar con la gente para ver que o quien ha tocado algo. Es increíble como una pequeña sesión de 5 minutos con las personas afectadas por un problema puede ayudar más que horas y horas de prueba y error frente a un problema.

Y para cerrar, el consejo de siempre: fomenta una cultura de comunicación en tu equipo de trabajo, esto es fundamental para el correcto funcionamiento del mismo.

Saludos @ Home

El Bruno

image image image

Publicado 17/5/2013 20:05 por El Bruno | con no comments
Archivado en: ,

image

Buenas,

el que diga que la vida no da vueltas como la sucesión de Fibonacci, es que nunca se ha saltado un semáforo en rojo y luego ha huido de la policía en una persecución de cine.

Yo por ejemplo, unos años después de haberlo dejado, me veo volviendo a C++ de una forma más que agresiva. (Agresiva: es la única forma de crear aplicaciones bien hechas para plataformas como Arduino.)

Ahora bien, cuando el output de tu aplicación es un programa de solo 8K de tamaño, tenes que tener en cuenta muchas cosas para hacer bien las cosas. Y en ese momento entra en juego el contar con buenas herramientas. En el caso de arduino, el editor de C++ que viene de fábrica es una mierda un poco pobre de capacidades. Lo bueno es que con ganas es posible utilizar Visual Studio 2012 para tirar líneas en C++.

Y, cuando me pongo a ver el IDE y lo que es posible e imposible en el mundo de C++, me encuentro con que …

En C++ tenemos soporte para NuGet !!!

Eso sí, solo con la versión 2.5 o superior, es posible actualizar la versión desde aquí.

Y claro, en un mundo donde cada sensor posee su propia biblioteca (o .h), donde cada escenario es similar al anterior; NuGet es imprescindible.

Fuente: http://blogs.msdn.com/b/vcblog/archive/2013/04/26/nuget-for-c.aspx

Download: NuGet Package Manager, http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c

Saludos @ Home

El Bruno

image image image

image

Buenas,

Los de Bing son unos cracks, desde hace un par de días han incorporado soporte para Klingon !!! Y sí, leiste bien, es Klingon (no tengo un derrame, ni tampoco me he pasado con los vinos ahora que estoy soltero, es Klingon!). Como lo estamos utilizando en un proyecto interno de Avanade, tendré que tirar de la API para verlo en tiempo real y por aquí solo poner mi post de ayer … pero traducido al KLINGON !!! (como mola decirlo no?)

Fuente: http://blogs.msdn.com/b/translation/archive/2013/05/14/announcing-klingon-for-bing-translator.aspx

PD: a ver el proceso automático que tengo de traducción que hace mañana con el Spanish + Klingon.

maj

majQa' Suq vI'Iprup Quch puS puq mach upDate Segh 'e' leghDI': chu' cholortlhul 'ej chu' layoutS 'ej team QutlhwI' 'oH jabwI' 2012 bebvo' jIH.

'IjmeH achchount team QutlhwI' 'oH chavmoH laH Dulegh chonayta', 'ej latlh Datoy'taHvIS brian harry nob naQ tetlh, upDate pa' choH 2 'ej QuQ ghaH potlh.

  • workitem Segh tHantlhS to cholor rap bachtlhlogh laH DaH DItlhtlherentIate . legh rur ta' nap, eQtremely lI' nuq. vaj Hop tHantlhS to yejquv edu ghew-moHaq lan nuq ta' 'e' Segh ghew chaH chev pbi Schope. je layout rIn moHaq tu'HomI'raH wis.

image

  • DaH tIj chapabIlIty ghaj
  • Qu' neH wa' nuv legh. 'e' neH mej vISIble nuv Qu'. mola
  • jIH QapHa'choH SprInt, pagh prevIouS wa' vIyajlaH. je apprechIateD 'oH ;)

image

reH naQmoH wanI'mey tetlh tlheatureS je Del brian poSt. Daj, mach upDate 'ach molon.

Hal: http://tfs.visualstudio.com/en-us/home/news/2013/may-13/

 

Saludos @ Home

El Bruno

image image image

Publicado 15/5/2013 20:10 por El Bruno | con no comments
Archivado en:

image

Buenas.

Herramientas para la creación de WireFrames hay muchas, tal vez demasiadas. Ahora bien, si me dicen que nombre una rápidamente seguramente la primera que me viene a la mente es Balsamiq. No es para WireFrames al 100% pero cumple el objetivo. Con la llegada de DEV11 (VS2012 y TFS2012), los amigos de Redmond hicieron un acercamiento muy tímido hacia las herramientas de prototipado con StoryBoards para PowerPoint. La idea estaba muy bien, pero se quedó en algo que promete mucho pero cumple poco.

Ahora bien, por otra parte tenemos una idea muy parecida pero exprimida al 100%: PowerStory. La base de PoweStory es simple; “utilizar PowerPoint para contar historias relacionadas con User Stories”. Lo que en definición ya es un golazo. Es usar PowerPoint para lo que ha sido creado. La idea es que las historias que se “pintan” en PowerPoint son el reemplazo de requerimientos, user stories, etc; ya que de una forma visual pueden representar las necesidades de un cliente.

Nota: Tema delicado este, al recoger una necesidad y plantearla en modo visual, tal vez estamos adelantando la implementación de la misma. Eso seguro que es una queja de los puristas, en mi caso prefiero esto a nada.

Retomo que me pierdo. Otro punto interesante que incorpora este modo de “contar historias” es que a partir de las mismas se generan los Test Cases necesarios para validar las mismas. Y si finalmente pensamos en este entorno 100% integrado con Team Foundation Server, pues es casi un nirvana (uno de los pequeñitos).

Esta semana lo tengo complicado pero veré de sacar un tiempo para probar y escribir sobre la idea. Un video para entrar en calor:

HomePage: http://power-story.com/index.html

PD: tengo la suerte de conocer al padre de la idea y solo decir que es un crack ;)

Saludos @ Home

El Bruno

image image image

Buenas,

el otro día estaba con el Víctor y me sorprendió que no conociese la feature “Introduce Variable” de ReSharper. Principalmente, porque el Víctor es un fanático de los atajos de teclados, que quieras o no, incrementan la productividad muchísimo.

Nota: que seas rápido con el teclado, no significa que seas un buen programador. El que escribe es un ejemplo de ello.

Volviendo al Introduce Variable, el objetivo de esta funcionalidad es crear un refactoring “interno” dentro de un método o función. Pensando en los casos más populares de refactoring, esto es como un Extract Method, pero interno. Veamos un ejemplo, paso a paso. Supongamos que tenemos el siguiente código:

   1: using System;
   2:  
   3: namespace ClassLibrary2
   4: {
   5:     public class Class1
   6:     {
   7:         public Class1()
   8:         {
   9:             string someValue = Guid.NewGuid().ToString() + " - valentino - " + Guid.NewGuid().ToString();
  10:         }
  11:     }
  12: }

y la línea 9 nos resulta un poco confusa. Si queremos implementar la suma de las 2 primeras partes en otra variable podemos hacer lo siguiente.

1. Seleccionar las partes a trabajar

image

2. Presionar CTRL+R, CTRL+V, o la opción Introduce Variable.

image

3. Tendremos esta parte de nuestro código en otra variable interna al ámbito donde estamos trabajando. Donde además podremos definir el tipo de dato, el nombre, etc. Simplemente genial !!!

image

Saludos @ Home

El Bruno

image image image

Publicado 12/5/2013 22:14 por El Bruno | con no comments
Archivado en:

image

Buenas,

hace ya bastante tiempo comenté que el Quick Launch de Visual Studio 2012 es una herramienta que nos permite trabajar de una forma más productiva. Presionas CTRL + Q y ya estás dentro de una ventanas con acceso a TODOS los elementos del IDE de Visual Studio 2012 (inclusive a los de Resharper). La siguiente imagen muestra el Quick Launch, con uno de los atajos que más utilizo > acceder al Source Control Explorer.

image

Ahora bien, una cosa que muchas personas no conocen es que es posible filtrar el tipo de elemento a buscar. Por ejemplo, el prefijo “@menu” solo muestra resultados con elementos de los menús del IDE. Así, la búsqueda de Source con @menu retorna estos resultados.

image

Si en cambio, queremos buscar elementos que sean opciones (de un dropdown), podemos usar el prefijo “@opt”.

image

Siguiendo con ese criterio hay varias opciones más, por ejemplo “@nuget”.

image

A los prefijos los podemos encontrar dentro de las opciones de Visual Studio 2012 (menú Tools // Options), en la seccion “Environment // Quick Launch”. Dentro de esta vista también podemos definir si queremos tener esta feature activa, si queremos incluir las últimas búsquedas, etc.

image

Saludos @ Home

El Bruno

image image image

Publicado 11/5/2013 19:49 por El Bruno | con no comments
Archivado en:

image

Buenas,

el SDK de Kinect está muy bien, pero muchas veces puede ser un coñazo / embole. Como SDK cumple con la premisa de tener una representación real de los elementos del sensor, pero carece de una sintaxis “moderna” para trabajar con los mismos.

Nota: cuidado que abstraer conceptos de Hardware para que sean “bonitos” es más difícil que morderse la espalda.

Aquí es donde entra el crack de Marcus Hohnert que ha creado una extensión para llegar a este modelo de código para la inicialización de un sensor Kinect.

   1: var sensor = KinectSensor.KinectSensors
   2:                          .FirstOrDefault(_ => _.Status == KinectStatus.Connected);
   3: if (sensor == null) throw new InvalidOperationException("No kinect connected");
   4:  
   5: sensor.EnableColorStream()
   6:       .EnableSkeletonStream()
   7:       .EnableDepthStream()
   8:       .Seated()
   9:       .NearMode()
  10:       .Start();

Impresionante !!!

Fuente: http://passiondev.wordpress.com/2013/05/03/fluent-kinect/

Saludos @ Home

El Bruno

image image image

Publicado 10/5/2013 19:22 por El Bruno | con no comments
Archivado en:

image

imageBuenas.

Los dichos populares son increíbles, por ejemplo dicen que “al que madruga Dios lo ayuda”, y es casi siempre cierto. Mi madre se ha despertado por más de 40 años antes de las 0600AM y le ha tocado un hijo de lo mejorcito. Hay otro que también es buenísimo “la práctica hace al maestro” y en el caso de los programadores, este si es 100% real. En mi caso durante los últimos años cada vez dedico menos horas reales a la programación y lo voy notando.

Sigo teniendo maratones quedándome hasta las 0200 AM para terminar algo, o para probar algo, pero no tengo el día 100% dedicado a programar. Esto se nota, muchas veces cuando me enfrento con un problema me doy cuenta de que me falta práctica, tal vez no para resolverlo, pero si velocidad para implementarlo. Por eso es que la frase “la práctica hace al maestro” es 100% cierta. Los mejores profesionales son los que realmente trabajan con una tecnología o herramienta.

Note 1: Aprovecho para aconsejar que desconfíes de los gurúes que escriben de temas que no conocen o que solo transcriben cosas que han leído por el internet ese. Las personas que más saben, son aquellas que están en las trincheras.

Note 2: También es importante destacar que si bien puedes estar delante de alguien que se tira 14 horas diarias con un martillo, en la mano, eso no significa que sea un experto en martillar. También hay mucho inútil por ahí che.

Volviendo al tema del músculo para programar; para practicar lo mejor es programar, programar y … programar. Como la base de la programación es resolver problemas, es tan importante saber encontrar una respuesta como conocer tus herramientas.  Yo intento dedicar mínimo un pomodoro diario a resolver un problema que no tenga nada que ver con mis tareas diarias del trabajo (tengo la suerte de que me gusta más mi trabajo que mis hobbies ;)

Lo mejor para esto son los Code Katas (Juan Carlos Quijano hizo una muy buena intro aquí), que son ejercicios para resolver problemas independientemente de la herramienta o el lenguaje. Yo semanalmente hago una búsqueda en internet para encontrar alguno interesante, o sino me voy directamente a http://codekatas.org/ e intento resolver el que esté de moda.

Otra técnica que encuentro que me ayuda es aprender un nuevo lenguaje de programación. Para esto desde hace unos meses me he apuntado a Code Academy (http://www.codecademy.com) y sitio excelente donde puedes seguir tutoriales interactivos para aprender nuevos lenguajes. En mi caso he optado por un lenguaje que seguramente no utilizaré nunca: RUBY, pero que me sirve para probar un sitio que posee algo parecido a un Code Kata: http://codegolf.com/

image

Nota 3: Hace un tiempo recomendaban aprender un lenguaje cada año para ser mejor programador. Actualmente pienso que es más importante aprender una nueva plataforma que un nuevo lenguaje … pero para gustos, colores.

Ahora bien y para finalizar, otra cosa que hay que hacer para ser mejor profesional es enseñar. Cuando comienzas a explicarle un tema específico a alguien, es un momento excelente donde tu cerebro comienza a hacer un análisis real del nivel de conocimiento que tienes sobre ese tema. En ese momento se disparan dudas internas que en otro momento no te plantearías, también se afianzan los conocimientos y es un ejercicio excelente para aprender a comunicar (durante 3 años pasé a máquina trabajos de estudiantes de psicología … tema para otro post). Es por eso que cierro el post con un consejo en forma de enseñanza:

CORTA LOS DEDOS A LOS PRACTICANTES DEL HARD CODE !!!

Voy a las bases, pero a las bases. Seguramente a muchos se les habrá escapado una constante o un string con un valor hardcodeado que luego en producción trajo bastantes problemas (a mi me ha pasado). Una forma de intentar evitar esto es con DOLOR. Si, el dolor ha resultado ser uno de los mejores métodos para la enseñanza desde hace años. Pero, ¿cómo logras infringir dolor en un developer? pues a través de los ojos con los siguientes pasos:

1. Accede a las opciones de Visual Studio. Menú “Tool // Options”

2. Selecciona la opción “Fonts and Colors”

3. Selecciona el item “String (C# @ Verbatim)” y cambia el color de fondo y del texto,  por algo que duela. En mi ejemplo es fondo Lima con color de fuente amarillo.

image

4. A partir de ahora el código hardcodeado se verá asi

image

5. ¿A qué duele?

Lecturas recomendadas

Saludos @ Home

El Bruno

image image image

Publicado 9/5/2013 18:44 por El Bruno | con no comments
Archivado en:

image

Buenas,

así llega el Update 2 de las Power Tools para TFS2012, sin ninguna novedad. Lo más importante es tal vez mencionar que no hay más la capacidad de “Restore / Backup” a nivel server, ya que se incorpora dentro del producto.

Pero si una cosa importante: ESTA VERSION FUNCIONA CON TFS012 Y VS2012 UPDATE 2

La versión anterior solo funcionaba con el Update 1, esta versión se actualiza para el Update 2 (por fin !!!!)

Descarga: http://visualstudiogallery.msdn.microsoft.com/b1ef7eb2-e084-4cb8-9bc7-06c3bad9148f

Fuente: http://blogs.msdn.com/b/bharry/archive/2013/05/08/tfs-2012-2-power-tools-update-available.aspx?utm_source=feedly

Saludos @ La Finca

El Bruno

image image image

image

Buenas,

los amigos de Synfusion han lanzado la versión 2.0 de Metro Studio. Esta aplicación es una colección EXCELENTE / AWESOME con más de 2500 íconos con estilo METRO Modern UI Apps. La aplicación es gratis como el código fuente del .Net Framework, y la puedes descargar desde http://www.syncfusion.com/downloads/metrostudio. Una vez que te registras, te envían un link de descarga y una clave de desbloqueo y ya puedes instalar la aplicación.

image

Una vez dentro de la aplicación, podemos navegar los íconos por categorías, o si realizamos una búsqueda ver el resultado en este formato

image

Luego, es posible crear colecciones de íconos, exportarlas, etc. La edición es tal vez la mejor parte, podemos definir el tamaño, el padding, los márgentes, el fondo, etc. y luego exportar el ícono a PNG

image

Aunque lo mejor es que tenemos el PATH de XAML de cada ícono !!!

image

Pues ya sabes a descargarlo Risa

Download: http://www.syncfusion.com/downloads/metrostudio

Saludos @ Home

El Bruno

image image image

Publicado 7/5/2013 18:53 por El Bruno | con no comments
Archivado en: ,

image

Buenas,

después de un par de minutos buscando en internet algún Code Snippet que me permita averiguar la dirección IP con la que estoy conectado a internet, me di cuenta que en realidad no tengo que buscar desde mi ordenador hacia afuera, sino desde afuera hacia adentro (tranquilo que todavía no he tomado nada).

Hay muchos sitios que cuando te conectas, te dicen la dirección IP con la que estas saliendo a internet, y algunos son tan simples como http://icanhazip.com/. Este site solo te da tu dirección IP, asi que podemos procesar su output con el siguiente código:

   1: public static string GetInternetIpAddress()
   2: {
   3:     var client = new WebClient();
   4:     var ip = client.DownloadString("http://icanhazip.com/");
   5:     return ip;
   6: }

Más simple imposible !!!

Disclaimer: hay otras formas lo se, sin embargo si estas bajo muchos niveles y capas de direcciones IPs, pues esta opción es la más rápida ;)

Saludos @ La Finca

El Bruno

image image image

image

Buenas,

recuerda, cada vez que pienses que una versión de Visual Studio + Team Foundation ya tiene todo lo que necesitas, se acercará un cliente con una pregunta que te rompe los esquemas. En este caso, la pregunta es irrelevante, lo importante es la respuesta:

La solución está en utilizar el protocolo VSTFS (vstfs://…..)

Esta característica existe desde hace un par de versiones y básicamente, lo que permite es acceder a un elemento de TFS directamente cuando se abre Visual Studio. Un ejemplo claro de esta funcionalidad lo podemos ver en el homepage de Team Foundation Service en la opción “Open new instance of Visual Studio”

image

La sintaxis de este link es la siguiente

vstfs:///Framework/TeamProject/<Tool Id>?url=https%3a%2f%2f<user Id>.visualstudio.com%2fDefaultCollection

Esta acción abre una nueva instancia del IDE y conecta al TP directamente. Utilizando la sintaxis del protocolo VSTFS, podemos además hacer muchas más acciones, por ejemplo

  • Abrir un WorkItem
  • Acceder al Source Control en un archivo determinado
  • etc

Todas las acciones disponibles se procesan utilizando el Linking Service de TFS. El LS es un servicio que basicamente permite a partir de identificador único de un elemento de TFS, conocer la URI completa para acceder al mismo. Y en el caso contrario a partir de una URI, conocer el id del artefacto que representa la misma.

Así que ya sabes, si por algún motivo extraño, necesitas que el IDE te ayude abriéndose en determinados elementos, el Linking Service junto con el protocolo VSTFS puede serte de ayuda.

Referencia: http://msdn.microsoft.com/en-us/library/bb130164(v=vs.90).aspx

Saludos @ Home

El Bruno

image image image

image

Buenas

me lo apunto en mi backup online el blog para no perderle el rastro: http://infogr.am/

Un excelente sitio para crear infografías en 4 golpes de ratón o de touch screen y de forma gratuita.

Detalle: el modo PRO (de pago) permite descargar y un par de cosas más, however con el modo gratis es suficiente

Saludos @ Home

El Bruno

image image image

Publicado 4/5/2013 22:50 por El Bruno | con no comments
Archivado en:

image

Buenas,

cuando tienes que instalar un entorno de colaboración con Team Foundation Server, siempre surgen dudas como

  • ¿Qué versión de TFS debo instalar?
  • ¿Me alcanza con una instalación Single Server, o debo separar servidor de datos y capa de aplicación?
  • ¿Necesito Sharepoint?, ¿o Reporting Services?
  • ¿Cómo debo dimensionar el hardware en cada capa?
  • ¿Creo uno o varios servidores dedicados de Build?

Además de estas preguntas, llega el momento de comenzar a definir una estrategia para la organización de Team Projects, aquí las preguntas son del estilo

  • ¿Creo un único Team Project Collection para toda la organización?
  • ¿Creo diferentes TPCs? separando por ejemplo, en áreas funcionales
  • Si separo los TPCs, ¿cómo organizo los módulos comunes a todas las áreas?
  • Si dejo un único TPC, ¿cómo aseguro el aislamiento del código entre diferentes Team Projects?

Comenzar con estos planteos puede ser algo que te consuma tiempo y que no tenga una respuesta simple. Es mas o menos como preguntarse qué debe hacer ahora el Barcelona para poder recuperar la calidad de años anteriores (ya más de un club quisiera tener “la crisis” del Barza, terminando entre uno de los 4 mejores clubes de Europa y con la liga de España en el bolsillo)

Pues bien, lo del Barza se lo podemos preguntar a Pep; y lo de Team Foundation Server lo podemos ver en la guía Visual Studio Team Foundation Server Planning Guide en CodePlex. Esta guía contiene una serie de recomendaciones para la instalación y organización de un entorno basado en TFS2012, que van desde los requerimientos de Hardware hasta la organización sugerida para entornos de test, training, etc. Como siempre una imagen vale más que 1001 palabras.

image

Download: http://vsarplanningguide.codeplex.com/

Saludos @ Home

El Bruno

image image image

Más artículos Página siguiente >