Git para usuarios de TFS

Los ALMRanges publicaron un pequeño libro para contarnos el uso de Git a usuarios acostumbrados a usar sistemas de control de versiones centralizados como TFS y subversion.

Me volví a armar de valor para traducirlo al castellano y aquí lo tenéis.

Espero que os guste.

Noticia en el blog de los ALM Rangers

Control de Versiones con TFS Parte 4 – Git para usuarios de TFVC

[Evento CartujaDotNet] ALMdeando

El próximo Miércoles 11 de Marzo de 2015, desde Cartuja .NET organizamos una sesión de charlas en las que veremos diferentes tecnologías para mantener y mejorar los procesos de desarrollo de software.

Dragon¿Te apuntas?

Fecha

El evento tendrá lugar el próximo Miércoles, 11 de Marzo de 19:00h a 21:00h. Las sesiones tendrán una duración de entre 30 minutos y 45 minutos con descanso intermedio de 5 minutos.

Lugar

Tendrá lugar en el Cloud Pointing de Sevilla situado en el Parque Empresarial Nuevo Torneo. Tenéis la información exacta del lugar a continuación:

c\ Biología, 12, Edificio Vilamar 2, 3ª Planta
Parque Empresarial Nuevo Torneo
41015 Sevilla

Agenda y Ponentes

Utilizando Integración continua con Apps Xamarin (Javier Suárez) (45 minutos)

En esta sesión Javier Suárez nos hablará de integración continua con Apps Xamarin. La integración continua es fundamental en el desarrollo de software, independientemente de la plataforma. Detectar problemas tan pronto como sea posible es una gran victoria, sobre todo en el mundo móvil. Veremos cómo ejecutar pruebas como parte del proceso de Build, que cubren las pruebas unitarias, etc.

Continuous Delivery con Release Management (Ibon Landa) (45 minutos)

En esta sesión veremos qué papel juega Release Management en el ciclo de vida de la aplicaciones y como lo podemos utilizar para implementar de principio a fin un pipeline de release para nuestras aplicaciones.

Después de una introducción a los conceptos más básicos de Continuous Delivery intentaremos ver de la forma más práctica posible la funcionalidad que aporta Release Management.

– Making better tests (Juan María Laó Ramos) (30 minutos)
En esta sesión Juanma nos contrará algunos trucos y buenas prácticas que ha aprendido arrastrándose por los barrizales de la programación, más que nada para evitar tener que poner muchas lavadoras después de llegar a casa y tener más tiempo para los suyos.

Más información

[Cartuja .NET] Quedada

Cartuja .NET

En CartujaDotNet vamos a realizar una quedada informal para charlar abiertamente sobre tecnologías Microsoft, herramientas utilizadas, intercambiar impresiones, etc. Además, se analizarán las próximas charlas ya planteadas y los eventos confirmados entre otros temas de interés.

No hace falta confirmar asistencia, y por supuesto será gratuito.

¿Te apuntas?

A continuación tienes disponible la fecha, hora y lugar:

Resumen de la Mesa redonda de TDD con Cartuja .NET

Ayer desde Cartuja .Net hicimos una mesa redonda sobre TDD y la conversación fue muy, pero que muy ilustradora sobre todo para mí.

Aquí mi resumen:

Tras hablar sobre las últimas novedades que habían aparecido en la comunidad .NET tras las presentaciones de #vsconnect y conseguir centrarnos, comenzamos con una explicación sobre qué es TDD muy corta, apenas 30 segundos:

“TDD consiste en que cuando vamos a escribir código, hacer primero un test que falle para el código que queremos escribir, luego el mínimo código que hace que el test se ponga verde, y refactorizar el código que hemos escrito”

Seguimos con la duda que yo tengo sobre ese ciclo, y es que, como ya comenté en otro post, el ciclo es incompleto, falta una primera fase de “pensar” antes incluso de escribir ese primer test.

Es decir, tomar muchas veces papel y lápiz, y dibujar la “arquitectura” que creemos debe ser. Una vez que tenemos separadas las responsabilidades que el sistema debe tener, cogemos una de esas clases y podemos empezar a aplicar TDD sobre esa clase.

Suele ocurrir que al escribir ese test y escribir el código se encuentran dependencias que antes no se habían tenido en cuenta. Es decir, responsabilidades ocultas y suele generar en otra clase que tendremos que mockear para poder seguir avanzando en el ciclo de TDD y avanzando en el nuestro trabajo.

Y aquí llego la primera disputa sobre el concepto de que “la arquitectura emerge“. Tras un rato de dialogo sobre eso, saqué la conclusión de que esa arquitectura que emerge no es la arquitectura del sistema completo, sino la arquitectura del contexto en el que está centrado ese test.

Mi conclusión particular sobre este punto, es que aplicando TDD nos obligamos a pensar en responsabilidades, nos obligamos a seguir el principio de una única responsabilidad y esto, paso a paso, test a test, nos ayuda a averiguar si aquella arquitectura que teníamos en la cabeza, que dibujamos con papel y lápiz en un primer momento es adecuada o no. Como corolario podemos decir que si nos resulta difícil seguir avanzando en ciclos cortos de test-code-refactor, hay que replantearse esa arquitectura ya que parece que esa elección no es adecuada, y eso es bueno, ya que al menos hemos encontrado una forma de no hacerlo.

Tras unas cuantas experiencias que compartimos, buenas y malas, continuamos con la conversación sobre las bonanzas del testing, integración continua, TFS, Team City, programación defensiva, y un largo etcétera. Todos estamos de acuerdo sobre las ventajas, sabemos que es bueno hacer test. Hasta que alguien nos hizo caer en la cuenta de que desde hacía un buen rato no estábamos hablando sobre TDD sino de testing. Así que recondujimos la conversación con el tema de la práctica y la maestría.

Obviamente no es lo mismo empezar a aplicar TDD que llevar tiempo aplicándola. La famosa curva de aprendizaje es en realidad así:

Tenemos un nivel de productividad (verde) y cuando empezamos hay una bajada de productividad importante y empezamos el camino de la práctica hasta que volvemos a alcanzar el mismo nivel de productividad que teníamos antes. En realidad esto pasa con todas las tecnologías y técnicas que aprendemos a lo largo de nuestra carrera, y es en esa parte de la curva cuando optamos por abandonar o seguir con el camino que hemos iniciado.

El problema con TDD es que para mentes como yo, ese proceso es duro y es muy fácil desistir y abandonar, el lado oscuro siempre nos tienta, es más fácil, más rápido y más seductor no seguir por el camino de TDD.

Continuamos con la pregunta de ¿hay que hacer TDD siempre? En el camino del aprendizaje, nos vamos dando cuenta de que es descabellado hacer TDD en todo. En ese camino se aprende a ser pragmático y a ajustarse a las necesidades del proyecto y del momento en el que estamos trabajando. Pero sobre todo, se aprende en ese camino a diseñar. TDD no es sólo una herramienta de testing, es mucho más, es una herramienta de diseño. En el camino de maestría de TDD se aprende sobre todo a diseñar, y con el tiempo se consigue empezar a acertar en esa primera “arquitectura” que pintamos en un papel. Normalmente los problemas que resolvemos suelen ser parecidos, y vamos mejorando esa arquitectura que dibujamos al principio.

Como última ventaja que le veo a TDD es que cuando no tenemos claro cómo solucionar un problema, TDD ayuda a encontrar una solución, empezando a escribir ese primer test de aquello que queremos programar pero no tenemos claro cómo hacerlo. Conseguimos tener un diseño desacoplado, abierto a la extensión y cerrado a la modificación, etc.… De esta forma cuando averiguamos qué es lo que hay que hacer nos es más sencillo modificar esa arquitectura.

Después de todas las experiencias que vimos, es curioso que siempre los que suelen ir a este tipo de eventos, y tu que estás leyendo esto, son siempre profesionales que buscan formas de hacer mejor su trabajo.

Quiero dejaros algunos nombres y libros que surgieron en la conversación, se que me falta alguno, así que si te acuerdas déjamelo en los comentarios:

Muchas gracias a Cartuja .NET por reunir a todos los que allí nos juntamos, ha sido una tarde muy agradable y tengo la sensación de que todos nos quedamos con ganas de más.

Estoy deseando ver la visión de cada uno que asistió, bien en los comentarios de este humilde blog o con referencias a los blogs de los que allí nos juntamos. No quiero señalar http://javiersuarezruiz.wordpress.com/, http://www.variablenotfound.com, http://cartujadotnet.es/

Se me olvidó comentar que mañana es el de Global CodeRetreat http://globalday.coderetreat.org/

En Madrid lo tienen preparado: http://madridcoderetreat.wordpress.com/

Si podéis verlo seguro que os gustará.

[ebook] Guías de Visual Studio Version Control [ALMRangers]

ALMRangers

Los Visual Studio ALM Rangers ofrecen una guía profesional, experiencia práctica y proporcionan soluciones a la comunidad ALM. Son un grupo especial compuesto por miembros del grupo de producto de Visual Studio, de Microsoft Services, Microsoft Most Valuable Professionals (MVP) y Visual Studio Community Leads. La información sobre sus miembros está disponible aquí online.

Hace un tiempo me lancé a traducir una guía que escribieron que me pareció muy interesante: Testing Unitario con Microsoft Fakes. (Hace poco lanzaron la segunda revisión y también actualicé la versión que traduje.

En estas últimas semanas he estado trabajando en otras traducciones de otras guías sobre Visual Studio Version Control y todas sus funcionalidades:

EstrategiasDeBranching JoyasTFVCGestionDependenciasNuGet

Espero que os resulten interesantes.

[Updated]

Aquí tenéis los enlaces directos a los pdfs a las traducciones:

Post en el blog de Willy-Peter Schaub

Juan María Laó Ramos

[Mindcamp 2014] How I met testing

En Mayo me invitaron a la Mindcamp 2014, Un evento que se viene celebrando de año en año.

Quería compartir la charla que di sobre cómo conocí el mundo del testing y cómo desde entonces duermo mejor.

Espero que os guste y no dejéis de ver los videos de las demás charlas de la Mindcamp, hay auténticas joyas

[Cartuja .NET] Sevilla Mobility Day

Hola amigos del bit y el byte.

El próximo Sábado 5 de Julio en Sevilla será un día especial: el Sevilla Mobility Day organizado por el grupo de usuarios Cartuja.NET.

SevillaMovilityDay

En este día veremos multitud de cosillas relacionadas con el desarrollo para dispositivos móviles y no las enseñaran varios grandes personajes de este mundillo:

  • Javier Suárez, nos contará las bondades de las nuevas aplicaciones universales para Windows Phone 8.1 y Windows, que nos permiten compartir código en nuestras aplicaciones.
  • Josué Yeray nos contará los secretos de los behaviors, animaciones y visual states en aplicaciones WP 8.1, Windows Store y universales.
  • servidor os contaré cómo podemos crear videojuegos multiplataforma con Wave Engine.
  • Mis compis, Juan Cano y Marcos Cobeña nos enseñaran algunos de los secretos más ocultos de Xamarin. Estos dos personajes se han pegado bastante con la plataforma, a ver qué nos cuentan.

Cuándo: Sábado 5 de Julio 2014, de 9:30h a 14:00h

Dónde: Microsoft Clouding Point de Sevilla (C/Biología 12, Edificio Vilamar 2, planta 3, Parque Empresarial Nuevo Torneo).

Web oficial del evento: http://cartujadotnet.es/sevilla-mobility-day/

Regístrate aquí.

Geomotion: integración entre coche y dispositivos inteligentes Made in Spain

En los últimos años hemos ido viendo cómo la tecnología crece a pasos agigantados y cómo se va involucrando en casi cualquier actividad que hacemos en nuestro día a día.

En el caso de los móviles, ya no es sólo que lo usemos como reproductor de mp3 o cámara de fotos, incluso nos los llevamos pegado al brazo cuando salimos a correr o de ruta con la bicicleta. Y además, ahora tenemos tablets, relojes inteligentes o incluso gafas y pulseritas que nos hacen de asistente personal.

Sin embargo, en la industria del automóvil, a pesar de que ya disfrutamos de verdaderos sistemas multimedia, o de que podemos configurar muchísimos parámetros de nuestro vehículo, o de que cada vez es más asequible llevar integrado un navegador GPS en el salpicadero… todavía echamos en falta cierta tecnología que es más que viable desde hace muchos años. Nos referimos al hecho de que un coche registre todo lo que hacemos con el mismo; cosas como destinos alcanzados, viajes realizados, itinerarios seguidos, consumo de combustible y un largo etcétera.

¿Cómo puede ser que un coche de hoy en día, que puede costar 10.000€, 20.000€ o incluso 50.000€, salga de fábrica sin llevar a bordo un localizador/rastreador GPS? Hablamos de un accesorio que podría tener un costo inferior a 100$ para los fabricantes, probablemente mucho menos de lo que cuesta un faro completo. ¿Y lo que ganaríamos en calidad de vida si nuestro coche actuara como nuestra memoria, nuestro consejero, nuestro gestor financiero…? Pero el objetivo no estaría cumplido si tuviéramos que montarnos en el coche para revisar toda esta información, es importante que la información se integre en la nube y la disfrutemos con nuestros smartphones, tablets y ordenadores.

Precisamente en esta línea están trabajando los chicos de Geomotion. Han lanzado un producto todo en uno con el que poder saber todo lo que hacemos con nuestro vehículo, tocando además temas tan interesantes como la seguridad o la posibilidad de enseñarle a alguien por dónde va nuestro vehículo. Se trata de un localizador GPS con una tarjeta SIM incorporada que nos instalan en nuestro coche y nos da acceso a una serie de apps para PC, Tablet y Smartphone.

La aplicación nos permite hacer un seguimiento en tiempo real de nuestro vehículo si, por ejemplo, lo compartimos o lo hemos prestado, mostrando la calle por la que va circulando o, en caso de estar aparcado, el tiempo que lleva estacionado y la ruta óptima para volver a pie desde nuestra posición.

También nos permite revisar por donde hemos circulado en el pasado, de forma gráfica, en un mapa coloreado con trayectos independientes, para poder confirmar si tiene sentido el itinerario seguido, o descubrir rutas alternativas viendo las carreteras colindantes desde otra perspectiva.

Captura de pantalla de Geomotion
Captura de pantalla de Geomotion

Se puede consultar en detalle toda la información asociada a cada trayecto, como direcciones de origen y destino, horas de partida y llegada, velocidades, etc. Además podemos guardar esos trayectos como rutas favoritas o, simplemente para compararlas sobre el mapa cuando hablemos de dos o más itinerarios diferentes que hayamos hecho para alcanzar el mismo destino (ideal cuando cambiamos de trabajo).

Para los que les guste eso de ahorrar, o para los amantes de las matemáticas, hay una sección de estadísticas, en la que se puede consultar, no sólo tiempos y distancias totales o velocidades máximas diarias, sino conceptos tan interesantes como el dinero gastado en combustible; datos que nos pueden ayudar a cambiar nuestros hábitos para mejorar nuestra economía doméstica o, por qué no, permitir que un padre o madre de familia numerosa pueda justificar que le ocupa demasiado tiempo o dinero llevar y recoger a los niños de las actividades extraescolares durante toda la semana.

Además de una pequeña sección de configuración, existe la posibilidad de “dormir” o “despertar” el vehículo. Supongamos que estamos haciendo turismo en una ciudad que no conocemos, ya no sólo nos viene bien no preocuparnos de dónde dejamos el coche y consultar más tarde el camino de vuelta en el móvil, sino que además podemos activar los avisos para que Geomotion nos diga si se lleva el vehículo la grúa, por ejemplo, porque hayamos aparcado en una zona prohibida sin saberlo, o ya no digamos que nos lo roben. Si el vehículo se mueve mientras está “dormido” nos mandan un email con bastante información al respecto y con un enlace a una página web (que podemos compartir con la policía o la aseguradora) en la que se puede monitorizar el vehículo en tiempo real, como en las películas americanas, así será más fácil recuperarlo o incluso tener la seguridad de que se lo han llevado a un depósito de vehículos en concreto de todos los existentes en la ciudad.

Entre toda esta funcionalidad seguro que encontramos un motivo para interesarnos por Geomotion, además, no olvidemos que está disponible para cualquier plataforma (iPhone, Android, Windows Phone, Windows 8/7/Vista) y que además hay versiones para tablets, con lo que la comodidad es máxima.

Para más información, visita www.dondeestamivehiculo.es

[Evento CartujaDotNet] Wave Engine

Wave EngineImagina que quieres hacer un juego, pero sólo quieres programarlo una vez y desplegarlo en la mayoría de plataformas posibles.

Deja de soñar y aprende a usar Wave Engine y podrás desplegar tus juegos en iOS, Android, Windows 8 y Windows Phone.

Los grandes Marcos Ligthyear y David Woody nos enseñarán todo lo necesario (y quizás algo más … ) para empezar a sacarle partido a Wave.

¿Dónde y cuando?

En el Cloud Pointing de Sevilla.

c\ Biología, 12, Edificio Vilamar 2, 3ª Planta
Parque Empresarial Nuevo Torneo
41015 Sevilla

El Jueves 23 de Mayo de 19:30 a 21:30.

Aquí tenéis juegos reales hechos con Wave Engine. Y estas son  unas cuantas demos tecnológicas.

¿Te lo vas a perder? Pues regístrate aquí