Otra de frikis + mensajes navideños (con PowerShell)

Me he animado a participar en el reto friki-navideño-hexadecimal iniciado por Pablo e impulsado por Rodrigo y Octavio.

Siempre me ha gustado la potencia que te dan los lenguajes de script para trabajar con texto. En el caso de PowerShell además tenemos a nuestra disposición toda la funcionalidad de la biblioteca de clases de .NET. He intentado aprovechar estas dos ventajas para descifrar el mensaje de Pablo; mis conocimientos de PowerShell son todavía un poco precarios, pero aún así he llegado a una solución que creo que es bastante compacta:

 

$message = "%46%65%6C%69%63%65%73%20%46%69%65%73" +
      "%74%61%73%2C%20%63%61%63%68%6F%20%66" +
      "%72%69%6B%69%21%20%41%68%6F%72%61%2C" +
      "%20%64%65%6A%61%74%65%20%64%65%20%74" +
      "%6F%6E%74%65%72%69%61%73%20%79%20%76" +
      "%65%74%65%20%61%20%65%6D%62%6F%72%72" +
      "%61%63%68%61%72%74%65%20%75%6E%20%70" +
      "%6F%71%75%69%6E%21%21%20%4B%65%65%70" +
      "%20%52%6F%63%6B%69%6E%27%21%21"
 
Measure-Command{$message.Split('%', [System.StringSplitOptions]::RemoveEmptyEntries) |
    % {[Convert]::ToInt32($_, 16)} |
    % {[Char] $_} |
    % {$result += $_}}; $result

 

De todas formas yo no paso de friki aficionado; creo que los auténticos frikis deberían ser capaces de entender el mensaje sólo con leerlo en hexadecimal 😉

 

Un saludo!!!

TFS Branching Guide 2.0

Ya tenemos disponible en Codeplex la nueva versión de la guía de branching para TFS: TFS Branching Guide 2.0.

La nueva versión de la guía consta de nada menos que de nueve documentos organizados en cinco grupos (aunque si contamos el material que viene en distintos formatos o está casi repetido en realidad tenemos seis documentos). A lo largo de los documentos se hace un recorrido muy amplio por las distintas opciones que tenemos para afrontar desarrollos en los que tengamos que mantener en paralelo varias versiones de la misma base de código… ¿hay algún proyecto hoy en día en el que no nos tengamos que enfrentar a esto?

El material incluido es el siguiente:

 

  • Un documento llamado «Main» que hace una descripción de los conceptos generales manejados durante la definición y el uso de una política de branching. Se centra sobre todo en el escenario básico de ramas Desarrollo – Integración – Producción (Development – Main – Release) el cual sirve como punto de partida para adaptarlo a múltiples casos que nos podemos encontrar en nuestros proyectos. También introduce las premisas básicas para integrar nuestro código entre distintas ramas, y para establecer el conjunto de builds a mantener sobre nuestro código y que aseguren la calidad del mismo

 

  • Un documento llamado «Scenarios» que hace un recorrido por tres políticas de branching que aparecen con mucha frecuencia. Es un documento muy útil porque nos ayuda no sólo a definir las distintas ramas y la forma de combinar el código entre ellas, sino que también incluye el mapeo con los distintos entornos (desarrollo, testeo, preproducción, producción…) y el establecimiento de las builds correspondientes. Los ejemplos incluidos son:
    • Dar soporte a un sólo equipo de desarrollo que vaya teniendo que liberar y mantener versiones sucesivas de una aplicación
    • Dar soporte a un producto que reciba hot fixes y service packs mientras se sigue trabajando en la siguiente versión del mismo
    • Sacar todo el partido de trabajar con etiquetas en combinación del trabajo con ramas. Ojo, digo «en combinación» y no «en lugar de»; esto último es una práctica frecuente sobre todo en equipos procedentes de SourceSafe, que no permite aprovechar al máximo las posibilidades que ofrece el branching & merging

 

  • Una recopilación de preguntas (y respuestas) frecuentes que todos nos hemos encontrado al trabajar con el control de versiones en general y con ramas en particular: dónde encajan los work items, qué es el baseless merge, uso correcto de las etiquetas…

 

  • Un par de Labs que muestran paso a paso cómo implementar una política de branching para un equipo de desarrollo que se ocupa también del mantenimiento de la aplicación. Los ejemplos se pueden seguir perfectamente utilizando alguna de las máquinas virtuales de prueba que tenemos disponibles. Como pequeña crítica a los autores, indicar que los dos Labs son prácticamente iguales y perfectamente podrían haber liberado sólo uno de ellos, o incluir algún otro ejemplo distinto

 

  • Un conjunto de gráficos relacionados, incluyendo un póster que muestra de un sólo vistazo diversos escenarios (en formatos pdf, jpg y visio), y un powerpoint que nos va a ser muy útil como plantilla para definir y documentar nuestra propia política de branching

 

En general supone una magnífica actualización de la anterior versión de la guía, que en un sólo documento ya contenía información muy útil para afrontar la definición de una política de branching que permita el mantenimiento de nuestra base de código.

Además, aunque una parte de la guía es de aplicación sobre todo en Team Foundation Server (sobre todo los Labs), gran parte de la información recogida puede ser de gran utilidad sea cual sea el sistema de control de versiones que estemos utilizando, mientras permita la utilización de ramas y la combinación posterior de cambios.

 

Que lo disfrutéis y un saludo!!!