viernes, 13 de mayo de 2011
Video: Programando de a pares con Carlos Peix
Con este post comienzo una serie de entrevistas que tenía en mente desde el comienzo de este blog el año pasado, pero a la que no le encontraba el formato definitivo, hasta hace poco.
En realidad, me di cuenta que no quería hacer entrevistas convencionales, y me parece que lo mejor para nosotros desarrolladores es ver a otros en la práctica, así que estoy comenzando a grabar sesiones de programación de a pares.
La idea es aprovechar la excusa para darme el gusto de programar con amigos y conocidos de la industria regional. Algunos, como este primer caso con Carlos, serán sentados a la misma mesa, y algunos serán remotos, a distancias diversas según la ocasión. Como es tradición de este blog, tengo en mi backlog sentarme a programar en diferentes lenguajes, tecnologías, y en algunos casos tal vez no sea código sino diagramas en un pizarrón, o alguna charla más tradicional, pero siempre que pueda, será a código limpio.
Para iniciar la serie entonces, recurrí a varios amigos, y la primer víctima fue Carlos Peix. Nos conocemos desde hace más años de los que puedo recordar, a través de la comunidad Microsoft. Carlos es un desarrollador independiente con muchos años de experiencia y una actitud abierta a nuevas ideas, pero que no se deslumbra fácilmente con las nuevas modas y prefiere centrar su atención en las técnicas de diseño e implementación más perdurables. Es reconocido sobre todo como especialista en desarrollo web y el mundo .NET, pero siempre está mirando y practicando un poco de Java, Ruby o Smalltalk.
Carlos también participa activamente en la comunidad Agiles.org localmente y en la organización de Agiles 2011. Tiene un blog con varios videos muy interesantes que graba por iniciativa propia y al participar en otras comunidades, como Alt.Net Hispano, donde es presentador habitual.
En el video que grabamos (unos 20 minutos en total), Carlos trajo un ejemplo extraído de un caso real que le tocó, sencillo pero ya algo avanzado y con unas pruebas unitarias, y entre ambos hicimos una sesión de refactorización. El ejemplo es en C#, y usamos Visual Studio 2010 con ReSharper. Para quienes quieran ver el código con más detenimiento, dejo la solución al inicio del ejercicio, y la solución al final.
viernes, 6 de mayo de 2011
Videos: Run Web Camp Buenos Aires (marzo 2011)
A mediados de marzo Microsoft realizó en Buenos Aires una edición de su gira internacional Web Camp, en el que participamos varios oradores locales junto a los dos invitados "oficiales", Phil Haack (Program Manager de ASP.NET MVC) y Drew Robbins (Technical Evangelist), como anuncié por entonces en este post.
El evento se transmitió en vivo a través de UStream, pero por algún motivo no se dejó que quedara disponible directamente a posterior, como esta plataforma permite, y recién ahora están disponibles los videos en YouTube.
Es bueno mencionar que este evento va a replicarse (siempre con adaptaciones, actualizaciones y oradores alternativos) a lo largo de varas provincias argentinas. Más información en la página de Facebook del tour.
Haciendo honor al tono hispano de este blog, les dejo la página donde están los links a todos los videos, pero dejo incrustados debajo los de las sesiones en español, en el orden en que (creo) se dieron ese 15 de marzo:
Bienvenida y tendencias, con Edu Mangarelli y Migue Sáez
Seguridad y Front-End de la nube, con Chema Alonso
Acceso a datos con Entity Framework, con Dani Laco y Martín Salías
Aplicaciones AJAX con MVC, con Rodo Finochietti y Zaiden
Internet Explorer 9 y HTML5, con Mati Woloski y Johnny Halife
Espero que los disfruten.
Paper: Desarrollo ágil de software
Los amigos Juan Gabardini y Ricardo Colusso han publicado de manera abierta este extenso y detallado trabajo que presenta "Una introducción a las metodologías ágiles de desarrollo de software".
Creo que este es uno de los documentos introductorios más completos sobre métodos ágiles en español, y además generado por dos personas que no sólo son divulgadores constantes sino practicantes intensivos, lo que aporta una alta dósis de realidad al trabajo, además de la base conceptual.
Veamos el contenido general:
Desarrollo del Software
Plantea la problemática general del desarrollo y anticipa la posición del Manifiesto Ágil.
Desarrollo “tradicional” de software
Vuelve a revisar el proceso tradicional, usualmente en cascada, con sus problemas usuales.
Características del Desarrollo Ágil
Comenta las características principales (en la práctica) de este estilo, enfocándose en el empowerment de los equipos y los mecanismos de feedback permanente.
Por qué y cuándo conviene usar Desarrollo Ágil de Software
Es uno de los puntos más interesantes, y ataca algunas de las dudas más frecuentes de la gente acercándose al modelo ágil. Hablan del Cono de Incertidumbre, y cómo se trata de ir reduciéndolo en los distintos estilos de administración de proyectos, y su impacto en el desarrollo de Productos.
Beneficios de usar Desarrollo Ágil
Cubren en detalle el Desarrollo guiado por valor, mejor manejo de riesgos y mejoras de productividad.
Aplicabilidad del Desarrollo Ágil
Revisa en líneas generales casos diversos y también la relación entre agilidad y procesos como CMMI.
Experiencias directas
Plantea un caso en detalle, planteando la solución, la realización, resultados y comparación entre la visión de Producto y Proyecto.
Métodos, Prácticas y Herramientas
Describe rápidamente Scrum, Programación Extrema (XP), Desarrollo de Software Lean, Kanban y prácticas como programación de a pares, TDD, proceso continuo, transparencia y visibilidad.
Finalmente el trabajo deja punteros a cómo continuar profundizando, incluyendo comunidad, bibliografía, material gratuito y otras.
jueves, 5 de mayo de 2011
Novedades de SADIO
Como cada tanto tiempo, compilo las últimas novedades de la Sociedad Argentina de Informática, algunas de las cuales pueden ser de interés en el resto de Latinoamérica ya que algunos eventos son de alcance regional o internacional.
Homenaje a Clementina
Exactas y la Fundación Sadosky celebrarán los 50 años de la primera computadora científica argentina.
Con el fin de conmemorar los cincuenta años de la puesta en funcionamiento de la primera computadora científica argentina, conocida como “Clementina”, el Departamento de Computación de la Facultad de Ciencias Exactas y Naturales (FCEN) de la UBA y la Fundación Sadosky, organizarán un amplio programa de actividades.
La Clementina era una computadora a válvulas, que medía 18 metros de largo y que requería de un gran equipo de refrigeración. La entrada de datos y programas se hacía a través de cintas de papel perforadas parecidas a las de los teletipos de la época. Inicialmente no tenía impresora. La memoria de trabajo era de 1K (si, "un" K) y tenía 4 "tambores" de memoria (el equivalente al disco duro) de 8K cada uno. Esa computadora, sin embargo, fue el sostén de un proyecto de vanguardia: el Instituto de Cálculo de la FCEN que, encabezado por Sadosky, se convirtió durante la década del ’60 en un programa innovador para nuestro país, con una triple misión: investigación, docencia y servicio.
El 12 y 13 de mayo se llevarán a cabo las Jornadas “Manuel Sadosky”, con los pioneros de la computación científica nacional. En las jornadas participarán investigadores, ingenieros, programadores, usuarios y referentes de la época, los cuales expondrán en diversos paneles temáticos:
- El Instituto de Cálculo como proyecto de la Universidad de los años 60 - Pablo Jacovkis (Profesor de la FCEN).
- ¿Cómo era esa primera computadora?: hardware, software, operación - Ernesto García Camarero (Jefe de Programación y Profesos de los
- Cursos de Formación 1961/63) y Jonás Paiuk (Jefe del Grupo de Ingeniería Electrónica).
- El Instituto de Cálculo y su misión de servicio - Julián Araoz (Responsable del Grupo de Investigación Operativa).
- La aventura de programar a Clementina. Trucos, trampas y complicaciones de esos primeros lenguajes: del Autocode al Comic - Wilfred Durán (Responsable del desarrollo del lenguaje COMIC), Violna Eandi, Victoria Bajar y Cristina Zoltan (Programadores).
- Cometas y Telefonía: Cómo se calculó la órbita del cometa Halley y se armaron protocolos de comunicaciones con la vieja máquina. - Víctor Pereyra (Investigador del Instituto de Cálculo –Mecánica Celeste) y Juan Carlos Angio (Encargado del Proyecto de la telefónica ENTEL con el Instituto de Cálculo).
- Modelar la sociedad argentina. Modelos macroeconómicos y experimentación numérica: los proyectos de Oscar Varsavsky. - Arturo O’Connell (Economista e investigador del Instituto de Cálculo).
- Otras miradas: el Instituto de Cálculo visto desde otras empresas e instituciones de la época. - Alfredo Perez (Profesional de UNIVAC) y Horacio Reggini (Fundador de la Sociedad Argentina de Informática e Investigación Operativa -SADIO-).
Al mismo tiempo se inaugurará un museo interactivo que reunirá la escenografía con mobiliario de la época, partes originales del equipo y documentos que testimonian la llegada de la computadora al país.
Las Jornadas tendrán lugar el jueves 12 de mayo a partir de las 17 hs. y el viernes 13 de mayo desde las 15 hs. en el Departamento de Computación de Exactas, Pabellón I de Ciudad Universitaria, C.A.B.A.
40 JAIIO - Extensión de fecha límite para el envío de trabajos
Como comenté en un post anterior, SADIO organiza la edición 40 (si, llevan cuarenta años) de las Jornadas Argentinas de Informática.
La fecha límite de recepción de trabajos se ha extendido según el siguiente cronograma:
- 13 de Mayo: fecha límite de presentación para ASAI, ASSE, CAI, HPC, JII, JSL, JUI, SID, SIE, SIO, SSI, WSegI, EST.
- 16 de Mayo: fecha límite de presentación de trabajos para AST
- 30 de Mayo: fecha límite de presentación de trabajos para CAIS
Ya está disponible el Open Conference System para comenzar con el envío de trabajos.
Las 40 JAIIO se realizarán en la Ciudad de Córdoba, del 29 de Agosto al 02 de Septiembre de 2011, en la UTN - Facultad Regional de Córdoba. La información completa en el sitio de las jornadas.
Día Mundial de Internet
El 17 de mayo es el Día Mundial de Internet, y por eso SADIO y otras organizaciones realizarán en forma virtual las Jornadas Día de Internet y se darán a conocer los ganadores de la edición 2011 del premio mate.ar que, consolidado como el máximo reconocimiento a lo mejor de la web de nuestro país, refleja desde hace más de una década la evolución de internet en Argentina.
miércoles, 4 de mayo de 2011
CoffeeScript: el libro (más un video)
Ya hablé antes en este blog sobre CoffeeScript y las ediciones de Pragmatic Programmers, y hoy quería combinar ambas cosas comentando el nuevo libro de Trevor Burnham que ya está disponible en Beta, y comencé a leer ayer.
Por supuesto, el libro está en inglés, y no está terminado, pero me parece otro indicio, junto con la decisión de incluir CoffeeScript por omisión en Rails, del auge que está tomando este dialecto simplificado para JavaScript.
Pero vamos al libro. En el prologo, Jeremy Ashkenas, el creador de CoffeeScript, explica entre otras cosas (la traducción es mía):
..."Afortunadamente para nosotros, el JavaScrit de hoy disfruta de un merecido renacimiento. Gracias al incansable esfuerzo de los implementadores de los navegadores, es actualmente el más rápido de los lenguajes dinámicos populares; está presente en todos lados, desde servidores hasta Photoshop; y es el único lenguaje que se puede usar para programar desde todos los ángulos de la web.
CoffeeScript es un pequeño lenguaje que apunta a brindar fácil acceso a las partes buenas de JavaScript: las funciones de primer clase, los objetos como hash, incluso la poco comprendida cadena de herencia por prototipos. Si hacemos bien nuestro trabajo, ustedes terminarán escribiendo un tercio del código para escribir el mismo JavaScript que hubiesen escrito de otra forma. CoffeeScript pone un alto valor a la legibilidad del código y a eliminar mucho del ruido sintáctico.Al mismo tiempo, hay una correspondencia prácticamente uno-a-uno entre CoffeeScript y JavaScript, lo que significa que no hay degradación de rendimiento -de hecho, muchas biblitoecas JavaScript terminan corriendo más rápido después de ser migradas a CoffeeScript debido a algunas optimizaciones que el compilador puede realizar."
El prólogo termina elogiando al autor del libro por sus colaboración con CoffeeScript desde los primeros días, lo que asegura que el tema está tratado desde un profundo conocedor.
El libro recorre el lenguaje y compilador en detalle, incluyendo instalación y ejecución, integración en otros ambientes e interoperabilidad con bibliotecas populares como jQuery. Y a medida que recorre los diversos capítulos, utiliza como ejemplo la construcción de un juego sencillo para dos jugadores, llamado 5x5, del que puede verse la interfaz a la derecha.
Comparto el índice general para que se den una idea del alcance:
- Prólogo y Agradecimientos
- Prefacio (historia, audiencia y organización del libro, proyecto de ejemplo y comunidad)
- Comenzando (instalación, editores, ejecución y depuración)
- Funciones, alcance y contexto
- Colecciones e Iteraciones
- Módulos y clases
- Interactividad web con jQuery
- Aplicaciones del lado del servidor con Node.js
- Respuestas a los ejercicios
- Maneras de ejecutar CoffeeScript (consolas web, dentro de una aplicación web, en Rails, via middleware, en Node.js, usando Middleman, en scripts del sistema operativo)
- Cartillas
- Bibliografía
Para terminar, dejo un video de Ashkenas presentando (en inglés) CoffeScript en la JSConf de hace un año. Es interesante ver la presentación de parte del propio padre de la criatura, pero tengan en cuenta que los doce meses transcurridos han cambiado la situación (para mejor) y ampliado las características del compilador.