lunes, 23 de mayo de 2011

Video: Programando de a pares con Martín Alaimo

Martín Alaimo

En este segundo video de la serie de sesiones de programación de a pares le toca el turno a Martín Alaimo, de Kleer.

Conocí a Martín en los comienzos de la comunidad Agiles.org en Argentina, cuando él todavía trabajaba en Accenture, y seguimos en contacto desde entonces, compartiendo varios eventos, viajes y peripecias del mundo del desarrollo.

Martín tiene algunas certificaciones más tradicionale como PMP (Project Management Professional) o Certified Java Developer, y varias dentro del campo ágil, como Certified Scrum Master Practitioner (la variante más concreta de esa certificación algo cuestionada) y más complejo aún, es uno de los pocos entrenadores certificados del curso de Scrum Development en América Latina (el único en Argentina y alrededores, hasta donde yo se).

Pero lo más importante no son los títulos sino la larga experiencia que demuestra desarrollando o enseñando, y la buena disposición para compartir esos temas con la comunidad, que lo han llevado a organizar los Yoseki Coding Dojo (de los que hablé en otro post) y asumir la responsabilidad de co-dirigir la organzación de Agiles 2011.

En esta sesión lo que tratamos de recorrer con Martín es el camino del diseño basado en dos prácticas complementarias pero que a veces parecen solaparse: TDD (Test-Driven Development) y ATDD (Acceptance Test-Driven Development).

Para el ejemplo, que codificamos en Ruby, usamos Cucumber para las pruebas de aceptación (ATDD) y RSpec para las unitarias (TDD).

Espero que les resulte interesante, y como siempre, esperamos feedback para saber por dónde continuar o qué temas tratar en más profundidad.

 

viernes, 20 de mayo de 2011

Salió PET #2 beta, la revista Python Entre Todos

PET #2

Apareció en estos días el segundo número de la revista que edita la comunidad Python ArgentinaPET (Python Entre Todos). La revista en sí se descarga como un PDF para leer como a uno más le guste.

El número está en Beta por ahora, y creo que lo que más le falta es revisar bien la ortografía, pero igual el contenido es excelente, y siempre mantiene ese ambiente descontracturado pero bien técnico que es la marca de agua de esta comunidad.

La revista se publica bajo licencia Creative Commons (específicamente CC-by-nc-sa-2.5), por lo que se puede distribuir y derivar en forma libre, manteniendo la atribución a la fuente original, sin usarla comercialmente, y manteniendo la licencia en las derivaciones.

El contenido incluye:

  • ¿Qué es PyConAr?
  • Cómo se hizo PyConAr2010
  • Charlas relámpago en PyConAr 2010
  • Fotos de las Keynotes
  • El Asado de PyConAr2010
  • Entendiendo Decoradores en Python
  • Introducción a Django
  • PyAfipWs: facilitando, extendiendo y liberando los Servicios Web de AFIP (Factura Electrónica y otros)
  • InfoPython - Midiendo el Valor de la Información de Mass Media con Python.
  • Como generar archivos .exe e instaladores para una aplicación python
  • Depuración y defragmentación de memoria
  • NINJA-IDE, Un IDE Pensado para Python
  • Usando librerías adicionales y virtualenv
  • Desafío PET
  • xkcd

Advierto que son muchas páginas de contenido variado, y recuerden que está en beta, con lo que es bueno estar atento a la aparición de la versión final.

¡Felicitaciones al equipo editorial por otro número terminado!

 

miércoles, 18 de mayo de 2011

dotPeek - El descompilador .NET gratuito que faltaba

dotPeek

Recientemente escribía sobre una situación que se generó en la comunidad a raíz de un cambio de política en .NET Reflector de Red Gate, un producto famoso en la comunidad .NET que pasó de ser gratuito a pago.

En ese artículo recorría varias alternativas gratuitas (de código abierto o no) y sobre el final comentaba que JetBrains, la empresa que produce IntelliJ IDEA (mi IDE favorita para Java) y ReSharper (mi plugin favorito para Visual Studio), estaba lanzando dotPeek, un descompilador gratuito, del que aún no había nada para probar.

En los últimos días, el producto ya está en Beta y disponible para probar, y como se anunció, cuando se libere la versión final seguirá siendo gratuita. El último release que lanzaron de hecho, ya funciona en Windows XP e incluso sin Visual Studio instalado.

Según el sitio del producto, aquí están las características principales:

  • Descompila ensamblados de .NET 1.0 hasta 4.0 a C#
  • Permite ir rápidamente a un tipo, ensamblado, símbolo o miembros dentro de un tipo
  • Navega a las declaraciones de símbolos, implementaciones, símbolos base y derivados, etc.
  • Permite buscar con precisión el uso de símbolos determinados, presentando todos los resultados
  • Muestra cadenas de herencia
  • Soporta descargar código de los servidores originales
  • Colorea la sintaxis
  • Puede operarse sólo con el teclado
  • Y es gratis

Queda una pantalla de muestra, y para más detalles, pueden ir al sitio y descargar el producto.

Ejemplo de DotPeek

 

martes, 17 de mayo de 2011

Libros: aprendiendo Objective-C y Cocoa

Para los programadores que usan Mac y siempre tuvieron ganas de desarrollar algunas aplicaciones nativas, o aquellos que quieren desarrollar aplicaciones para el iOS de iPhones, iPods y iPads, es fundamental aprender Objective-C (el lenguaje) y Cocoa (el framework).

Incluso si uno opta por usar entornos que nos permiten desarrollar en otros lenguajes, como MonoMac, MonoTouch ó MacRuby, siempre es importante tener una buena base del entorno original de Apple, porque ninguna de estas abstracciones evita que necesitemos un entendimiento general del entorno subyacente, el manejo de recursos, eventos, etc.

Por suerte hay algunas opciones de libros gratuitos para empezar en el tema:

Become an X Coder

BecomeAnXcoder

Es un libro gratuito disponible dentro del sitio Cocolab que incluso puede leerse en español, aunque ésta y otras versiones traducidas están una o dos versiones atrasadas con respecto la versión del sistema operativo de Mac, mientras que la versión en inglés está al día.

Una característica de este libro es que está orientado a gente sin conocimiento previo de programación, por lo que puede resultar demasiado básico, aunque siempre se puede acelerar la lectura e ir a los detalles específicos que nos importan.

Cubre una introducción general a la programación, el uso de las herramientas Xcode de Apple, funciones, compilación, condicionales y bucles, interfaz de usuario, métodos, punteros, strings y arrays, accesores y propiedades, manejo de memoria, y deja muchas fuentes posteriores para seguir aprendiendo.

 

Objective-C Essentials

Objective-C 2.0 Essentials

Este libro sólo está disponible en inglés pero está orientado a programadores con cierta experiencia, y es muchísimo más detallado. La versión gratuita es la que se lee en línea, y puede comprarse en PDF y ePub a un precio económico.

Cubre la historia de Objective-C (que nació como un intento de fusionar la sintaxis de C con el modelo de objetos de Smalltalk, unos pocos años después de la aparición de C++, y antes de su popularización), la instalación de Xcode y el proceso de compilación en Mac OS X, como usar GNUStep y Objective-C en Windows y Linux, los tipos de datos del lenguaje, uso de variables y constantes, operadores y expresiones, comentarios, control de flujo y bucles, orientación a objetos incluyendo métodos, encapsulamiento, accesores, herencia, punteros e indirección, vinculación dinámica, funciones, enumeradores, y manipulación de strings, números, arrays, diccionarios, directorios, archivos, carpetas, y muchísimo más.

Notarán que es muchísimo material.

 

David Chisnall

Objective-C for Java Programmers

También en inglés, pero en este caso se trata de un artículo de David Chisnall en InformIT, en 7 partes (breves) orientado a introducir el lenguaje a desarrolladores Java (también es útil para quienes conocen .NET).

Recorre las diferencias filosóficas entre los lenguajes, objetos y primitivas, archivos y unidades de compilación, modelos de objetos, comportamiento estático, diferencias de sintáxis, etc.

 

lunes, 16 de mayo de 2011

Mono: de Novell a Xamarin

Xamarin

A fines del año pasado comentaba en este blog la venta de Novell a Attachmate, una compañia de servicios de infraestructura.

Una preocupación desde ese momento, aunque al principio no parecía pasar nada, es qué valor iba a darle el nuevo dueño al proyecto Mono (una implementación de código abierto de .NET), liderado por Miguel de Icaza.

Las cosas empeoraron recientemente, y el 2 de mayo comenzaron los despidos de los equipo de EEUU y Candá, seguidos en la semana por el resto en Europa, Brasil y Japón.

Lejos de romper en llanto, el equipo original de Mono, con Miguel a la cabeza, pronto avanzó con un viejo plan que ya había discutido anteriormente y fundaron Xamarin, una companía con la que piensan mantener el servicio de soporte de Mono y el resto de los proyectos abiertos, y generar dos nuevos proyectos similares a Mono for Android y MonoTouch (para iOS). Al igual que los productos que generaron en Novell, éstos últimos serán productos pagos, con los que esperan mantener al equipo funcionando.

Conociendo la calidad y capacidad de producción del equipo, estoy seguro que pronto tendremos novedades al respeto. Miguel estima que en 3 meses pueden tener la versión preliminar para iOS, y en 4 la de Android, y seguramente en ambos casos, al empezar de cero, incorporarán mejoras y aprendizajes por sobre los productos que quedaron en Novell.

Vale recordar que Mono en si y sus otros derivados como Moonlight, MonoMac y MonoDevelop son gratuitos y de código abierto, por lo que no hay riesgos al respecto.

Mientras tanto, la conferencia Monospace sigue programada para el 23 al 25 de julio en Boston, Massachussets, EEUU, en el NERD (New England Research & Development) Center de Microsoft en esa ciudad.

Y de paso, el jueves 19 de mayo, estaré presentando un Webcast para MSDN Latinoamérica, en una serie que empiezo sobre Interoperabilidad, llamado "Mono lleva .NET a todas partes".

Desde este humilde blog aprovecho para expresar mi admiración y apoyo a Miguel y su increíble equipo en esta nueva etapa, y quedo a la espera de las novedades que seguramente producirán a mansalva, como siempre.