martes, 6 de septiembre de 2011

CodeCamp 2011, 15 de octubre en Buenos Aires

imageCodeCamp, el evento anual de desarrollo sobre tecnología Microsoft más grande del mercado local, llega este año el 15 de octubre, el sábado siguiente a la realización de Agiles 2011.

Aunque no está anunciado en el sitio la sede (aún) la sede será la UAI (Universidad Abierta Interamericana), en Av. San Juan 951, Capital Federal.

El evento, como siempre, será gratuito, pero requerirá inscripción previa, la que aún no está abierta, así que a estar atento al sitio web, o al twitter oficial.

Para que vayan teniendo una idea del contenido posible de la conferencia, les anticipo los títulos y presentadores de las propuestas presentadas. Obviamente, queda por delante el proceso de selección, así que no todas quedarán en el programa final, pero pueden darse una idea general de los temas que están dando vueltas, e ir preparándose para ver y preguntar.

  • Construyendo servicios web con WCF Web Apis - Por Pablo Mariano Cibraro
  • Introducción a Node.js - Por Pablo Mariano Cibraro
  • SQL Denali (El futuro aqui) - Por Maximiliano Accotto
  • Herramienta para desarrollo Juneau (el reemplazo de Visual Studio for Database) - Por Maximiliano Accotto
  • Tunning de base de datos - Por Maximiliano Accotto
  • Desarrollando Social Games en Azure - Por Angel J Lopez
  • Jugando con Kinect desde .NET - Por Nicolas Padula
  • Mangos y Ventanas - que hay de nuevo en WP7.1 - Por Jonas Stawski, Miguel Angel Saez
  • Windows 7+1 on the rocks - Por Miguel Angel Saez, Mariano Rempel
  • Clean Code - Por Eric Delahaye
  • Introducción a las Comunicaciones Unificadas - Por Pablo Vernocchi
  • Exchange 2010 - Hardware virtualizado vs Hardware físico - Por Pablo Vernocchi
  • Exchange 2010 High Availability y Site Resilience - Por Pablo Vernocchi
  • Además de tirar código - Por Martin Salías
  • Mono: .NET en todas partes - Por Martin Salías, Carlos Paez
  • Windows Phone 7 "Mango" y los sistemas empresariales - Por Carlos Alejandro Pérez
  • El regreso de SQL Server CE a los móviles - Por Carlos Alejandro Pérez
  • Introducción a SharePoint 2010 como Plataforma de Colaboración - Por Pablo Alejandro Fain
  • Implementación de SharePoint Server 2010 para humanos - Por Pablo Alejandro Fain
  • Entity Framework 4.1 - Code First desde las trincheras. - Por Mariano Sanchez
  • Knockout JS: simplificando el desarrollo de UIs dinámicas con javascript y ASP.NET MVC - Por Ruben Altman, Adrián Eidelman
  • Desarrollo y testeo modular de interfaces HTML5 / MVC - Por Santiago Bustelo
  • Automatizando el testing en .NET - Por Adrián Eidelman, Ruben Altman
  • Pasado, presente y futuro de C++ - Por Rodolfo Finochietti
  • Mobile Web Sites - Por Rodolfo Finochietti
  • Web Sites 100% en JavaScript - Por Rodolfo Finochietti
  • Una vuelta por la nueva plataforma de Desarrollo que se viene! - Por Johnny Halife
  • Juega con HTML5 - Por Matias Iacono, Patricio Santiago Marrone
  • Generación espontánea con T4 - Por Matias Iacono
  • Mirando el espejo - Por Matias Iacono, Boris Angonoa
  • Usando MongoDB desde C# - Por Ruben Altman, Román Gorojovsky Sánchez
  • Un entorno práctico de desarrollo ágil - Por Carlos Peix
  • Desarrollo de soluciones geo-espaciales con SQL - Por Andrés Aiello
  • Gestionando grandes volúmenes de datos con SQL 2011 - Por Pablo García
  • Creando aplicaciones a la velocidad de la luz: desarrollo con Visual Studio 2010 Lightswitch - Por Diego Fidel Ferreyra
  • Desarrollo de Videojuegos Movilizados - Por Sebastian Miserendino
  • El Escritorio del futuro - Por Augusto Alvarez, Alberto Ortega
  • FX para tu escritorio con Remote Desktop Services - Por Augusto Alvarez, German Lagomarsino
  • Estandarización de servidores Windows Server 2008 R2 + herramientas gratuitas - Por Augusto Alvarez, Alejandro Barrionuevo
  • ¡A mover el cuerpo con Kinect! - Por Diego Sisto, Fernando Kahan
  • Tu primer webpart en Sharepoint 2010 - Por Alan Scheinkman
  • Que no te ataquén!!! Desarrollando código seguro en SQL - Por Jose Mariano Alvarez, Andrés Aiello
  • Gestión de la configuración con NuGet y Git - Por Dario Seminara, Nicolas Paez
  • Todo sobre FileStream y FileTable (SQL Denali) - Por Maximiliano Accotto
  • De 0 a 100 con Windows Phone 7 - Por Federico Lois, Daniel Rodolfo Iglesias
  • NoSQL, Map-Reduce y otras yerbas! Programando con RavenDB. - Por Daniel Rodolfo Iglesias, Federico Lois
  • Configuración y Escenarios de Client Access Server en Entornos de Migración - Por Rodrigo de los Santos
  • Microsoft e IPV6 - Por Rodrigo de los Santos
  • Mitos y Leyendas de Windows Phone 7: Sacale el jugo a tu Smartphone - Por Brian Litwak, Ignacio Raffa, Federico Boerr
  • Seguridad en aplicaciones Web - Por Carlos Peix
  • TDDeando Aplicaciones JavaScript - Por José Fernando Romaniello
  • REST: Cómo ordenar café utilizando las nuevas WCF Web API? - Por José Fernando Romaniello
  • Realidad Aumentada: De qué se trata y, ¡manos a la obra! - Por Boris Angonoa, Matias Iacono
  • Windows Azure AppFabric o cómo desarrollar aplicaciones para la nube y conservar el pelo - Por Leandro Boffi
  • Implementando soluciones Sharepoint 2010 en el mundo real - Por Soledad Pano
  • Enamorándose de Knockout.js - Por Leandro Boffi
  • Haciendo WCF simple - Por Mauricio Gentile
  • Desarrollando buenas prácticas con NuGet - Por Mauricio Gentile
  • Conoce las mejores prácticas en el uso de la API de SharePoint - Por Santiago Giovannini
  • Consejos para organizar el contenido en tu aplicación de SharePoint siguiendo las mejores practicas - Por Santiago Giovannini
  • Paseando por Denali, la nueva versión de SQL Server - Por Adrian Gabriel Lopez
  • Haciendo BI rápido y flexible - Por Adrian Gabriel Lopez
  • Aplicaciones ricas en datos sacándole el jugo a SQL Server Denali - Por Adrian Gabriel Lopez
  • Sharepoint 2010, manual para programadores - Por Hernán Veiras
  • Dirigiendo la Orquesta con WF 4.0 - Por Hernán Veiras
  • Compilando en la UI con S# - Por Hernán Veiras
  • Mi primer juego XNA para WP7 y XBOX 360 - Por Pablo García
  • Extendiendo las fronteras de SharePoint 2010: Cómo Windows Phone 7 puede ser un perfecto aliado de SharePoint. - Por Nicolas Ibarra Salazar
  • Creando aplicaciones móviles para la nube: Windows Phone 7 + Windows Azure - Por Nicolas Ibarra Salazar
  • Desarrollando aplicaciones asincrónicas en .Net. - Por Silvio Massari
  • Integrando SharePoint 2010 con Windows Azure: Un nuevo mundo de posibilidades para soluciones empresariales - Por Nicolas Ibarra Salazar
  • MongoDB a todo pulmón - Por Silvio Massari
  • Patrones de diseño NoSql - Por Silvio Massari
  • Agile Automation Testing con BDD: un poco de Cucumber, Specflow, Watin y estamos! - Por Patricia Coronel
  • SharePoint 2010 en la nube: Introducción a Office 365 y desarrollo sobre SharePoint Online - Por Nicolas Ibarra Salazar
  • Mejor MVC – Movilizándote con jQuery Mobile - Por Ignacio Baumann Fonay, Fernando Antivero
  • Microsoft Media Platform Content Manager (open source) - Por Ignacio Jonas, Ezequiel Aranda
  • El futuro de Parallel Programming en Microsoft .NET Framework - Por Christian Carnero
  • A developer overview of Windows Phone 7.1 - Por Christian Carnero
  • Soy un desarrollador .NET pero tengo un IPhone - Por Christian Carnero
  • Como conseguir pareja en una tarde de sábado con HTML5 - Por Pablo Zaidenvoren, Mauro Gandelli, Maximiliano Garcia Rozado
  • Wordpress en Windows Azure - Por Alejandro Banzas
  • Integrando redes sociales en proyectos corporativos - Por David Balogh
  • Reactive Extensions en el Mundo Real - Por Gustavo Javier Machado
  • Introduccion a Windows Azure AppFabric Service Bus - Por Gustavo Javier Machado
  • REST Services "a la carta" - Por Gustavo Javier Machado
  • Una vuelta por F#, Un lenguaje funcional en .NET - Por Gustavo Javier Machado
  • MVC3 Tips y buenas prácticas para el mundo real - Por David Balogh
  • RavenDB, No solo una base de documentos para .NET - Por David Balogh
  • Ya sé, es solo NHibernate compilado, pero me gusta - Por David Balogh
  • Full text search en 60 minutos - Por David Balogh
  • Testeo, luego existo - TDD desde cero - Por David Balogh
  • Creando sitios de internet con SharePoint 2010 - Por Mariano Escurra, Soledad Pano
  • Mejores prácticas utilizando Javascript y JQuery en SharePoint 2010 - Por Soledad Pano, Mariano Escurra
  • Escalabilidad para sitios de alta demanda en Cloud Computing - Por David Balogh
  • Datos en la nube: colas, caché, topics y otras yerbas - Por Leandro Adrián Díaz Guerra
  • Explotando el verdadero potencial de IIS con Windows Server AppFabric - Por Leandro Adrián Díaz Guerra
  • Haciendo inteligencia en tiempo real con StreamInsight - Por Leandro Adrián Díaz Guerra
  • Una Web en pocos minutos con Nuget y Scaffolding - Por Moisés Rivas, Sebastián Henzenn
  • Comunicaciones Unificadas - Por Matías Alfaro
  • TRANSPHONERS te llevamos al futuro! - Por Guillermo Bellmann, Ivana Tilca

lunes, 5 de septiembre de 2011

Smalltalks 2011, los días 3, 4 y 5 de noviembre en Quilmes (+video del 2010)

imageUna vez más, la imparable Fundación Argentina de Smalltalk (FAST) organiza la conferencia internacional del lenguaje decano de la orientación a objetos: Smalltalks 2011.

El año pasado se realizó en Entre Ríos, y este año le toca alojar el evento a la Universidad Nacional de Quilmes (Roque Saenz Peña 352, Bernal, Buenos Aires, Argentina).

La llamada a ponencias para el Track de Investigación cierra hoy mismo (lamento no haber publicado esto antes) pero aún se pueden proponer Sesiones Técnicas hasta el 3 de octubre (queda casi un mes).

Por ahora el único invitado especial confirmado es Ian Piumarta, pero seguramente la lista de celebridades se incrementará a medida que se acerque la fecha, como siempre sucede.

 

Como regalo, les dejo la sesión del Maestro Angel “Java” López (a la sazón, oriundo de Quilmes) durante Smalltalks 2010. Como la conferencia es internacional, las sesiones se presentan en inglés, aunque en este caso se presentó en “Anglish”, como el orador explica al comienzo, antes de sumergirse de lleno en AJTalk, su intérprete del lenguaje Smalltalk sobre el CRL de .NET. Altamente recomendable:

Unable to display content. Adobe Flash is required.

Unable to display content. Adobe Flash is required.

martes, 30 de agosto de 2011

Versión completa de Python Tools for Visual Studio

imageLa versión 1.0 de estas herramientas para programar Python en Visual Studio finalmente está disponible (gracias a @masaez por el aviso).

Este conjunto de herramientas es gratuito y de código abierto (bajo licencia Apache 2.0), y convierten a Visual Studio (que no es gratuito ni abierto) en una IDE muy completa para Python, soportando tanto CPython (la distribución estándar, no incluida en el paquete) como IronPython, la implementación de Python sobre el runtime de .NET.

Algunas de las características principales que hace atractivo el uso de estas herramientas es que agrega al editor básico con coloreo de sintaxis un buen soporte de Intellisense sobre miembros y firmas, navegación sobre el código como encontrar todas las referencias a un miembros, ir a su definición, o inspeccionar objetos. También soporta depuración local y remota, y perfilamiento para análisis de rendimiento.

Integra por supuesto una consola de comandos que puede usarse, al igual que el resto del entorno, también en entornos de clusters HPC y MPI, lo que permite trabajar interactivamente con infraestructura de procesamiento paralelo.

De hecho, sospecho que estos entornos son el motivo principal de la inversión de Microsoft en desarrollar estas herramientas, aún después de haber dejado el desarrollo de IronPython en manos de la comunidad. Python es uno de los lenguajes más utilizados (junto con C/C++) en el mercado de Computación de Alto Rendimiento (HPC), donde Microsoft está creciendo progresivamente a partir del lanzamiento hace unos años de Windows HPC Server. Sobre todo por bibliotecas clásicas en los mercados científicos, financieros e ingenieriles como NumPy o SciPy, y por el hecho de que programar resolución de problemas complejos en arquitecturas masivamente paralelas en C es bastante complejo, Python se ha establecido como una excelente opción.

Microsoft supo aprovechar el trabajo del equipo de IronPython para soportar su implementación en Visual Studio y la generalizo para muchas más áreas, lo que es en general una buena noticia, aún cuando lo cierto es que en la mayor parte de los contextos los programadores Python no solemos necesitar una IDE completa y preferimos la liviandad de un buen editor. En contextos complejos como HPC o uso de Interfaz de Paso de Mensajes (MPI) en ambientes distribuidos, es bueno al menos tener un buen soporte de depuración y algunas herramientas extra.

Debajo una pequeña muestra de las herramientas en acción:

Visual Studio Tools for Python

jueves, 18 de agosto de 2011

Scrum Guide 2011 en español (+ video en inglés)

Jeff Sutherland (arriba) y Ken Schwaber (abajo)Recientemente Scrum.org, la organización detrás de la difusión de la metodología, publicó la versión actualizada de la guía escrita originalmente por Jeff Sutherland y Ken Schwaber y revisada este año: Scrum Guide 2011.

En la misma página se encuentran disponible traducciones de la guía a muchos idiomas, incluyendo la versión en español (PDF, versión del 2010).

Para quienes no conocen más que lo anecdótico de Scrum, dejo un brevísimo resumen de este framework que se basa en tres pilares:

  • Transparencia
  • Inspección
  • Adaptación

El equipo de Scrum está compuesto por:

  • El Product Owner (PO, dueño del producto), que se ocupa de maximizar el valor del producto y el trabajo del equipo de desarrollo. Por eso es el responsable principal del Backlog de producto, y debe asegurarse que esta lista está siempre priorizada, de manera que nadie trabaje en lo que no es la máxima prioridad en cada momento.
  • El Equipo de Desarrollo es el grupo que se encarga de entregar incrementalmente un producto funcional al fin de cada Sprint (iteración). La guía agrega un poco más de detalle incluyendo la composición y tamaño.
  • El Scrum Master se encarga de que las reglas y principios de Scrum se mantengan y de que los bloqueos potenciales se eviten o eliminen cuanto antes. La guía detalla un poco más los servicios que el Scrum Master proporciona al PO, al Equipo de Desarrollo y a la Organización.

Los eventos de Scrum son:

  • El Sprint (o iteración) durante el que el compromiso asumido por el equipo y consensuado por el PO no debe cambiar, y se ejecuta manteniendo el orden de prioridad para el negocio, de manera de que al terminar el límite de tiempo impuesto (entre una semana y un mes) lo que quedó completo e incluido en el incremento de producto es siempre lo más importante. Dentro del Sprint se producen:
    • La planificación del Sprint, en el inicio, donde el Equipo y el PO acuerdan el compromiso para la iteración, tomando los ítems de máxima prioridad en el Backlog de Producto, en orden descendente, hasta donde el equipo estima que puede terminar dentro del límite de tiempo.
    • El Scrum Diario (o stand-up), donde el equipo se reúne (de pie, para evitar prolongar la reunión más de unos minutos) y cada miembro del equipo expone:
      • Qué terminó desde el último stand-up
      • Qué planifica terminar antes del próximo stand-up
      • Qué obstáculos puede llegar a tener (y que el Scrum Master deberá evitar que bloqueen al equipo)
    • El Sprint Review, en el que el equipo muestra el resultado del trabajo al PO y los interesados que éste considere apropiado para ayudarlo a continuar ajustando el Backlog de producto.
    • La retrospectiva en que el equipo reflexiona sobre la manera en que se desarrolló el trabajo, teniendo en cuenta relaciones, técnicas, herramientas y demás, y determina algunas medidas para mejorar en el siguiente Sprint.

Los artefactos de Scrum son muy pocos:

  • El Backlog de Producto, que el PO se encarga de construir y mantener priorizado en base al valor para el negocio a través del tiempo.
  • El Backlog del Sprint, que el Equipo y el PO determinan al comienzo de cada Sprint y cuyo seguimiento determina el nivel de avance dentro del Sprint.
  • El Incremento de producto es la entrega que el equipo realiza a final de cada Sprint, y que debe ser funcional desde el inicio, de manera que esté potencialmente en condiciones de usarse y agregar valor.

En la guía terminan volviendo a la importancia de la definición de cuándo una tarea está “terminada”, lo que debe convertirse en un contrato entre el Equipo, el PO y la Organización, de manera de ajustar las expectativas y evitar discusiones y problemas al respecto.

La guía amplía un poco este resumen, pero sólo tiene 17 páginas, incluyendo algunas con índice, historia, agradecimientos, etc. El framework es muy sencillo de describir, lo que no implica que sea fácil de implementar. Suele decirse que se parece en eso a un deporte: las reglas son sencillas, pero ser un buen jugador es típicamente un gran desafío y el secreto está en la práctica y la dedicación.

Video

Como final, dejo este video de una charla de Schwaber en el 2006 dentro de las oficinas de Google, que me parece que explica bien muchos de los principios, y aunque está en inglés, vale la pena escuchar esto desde uno de sus iniciadores.

miércoles, 17 de agosto de 2011

Video: Agiles @ Buenos Aires–Lean Startup, por Fernando Parra

Ágiles 2011El pasado 19 de julio el grupo Agiles.org de Buenos Aires realizó su ya tradicional reunión mensual, y en esta oportunidad el facilitador fue Fernando Parra (de MicroStrategy), quien contó un poco sobre los conceptos de emprendimiento alrededor del modelo Lean Startup, más basado en el foco en el diseño de producto y en el piloto inicial empujado por los mismos emprendedores más que el clásico modelo de buscar inversores para desarrollar una idea.

Este estilo de desarrollo de negocios está muy basado en una mezcla de métodos ágiles, software gratuito de código abierto, iteraciones cortas y extremo foco en el cliente final.

Algunos links adicionales:

Y como personalmente no pude quedarme a la sesión, agrego las notas tomadas por mi amigo Ricardo Colusso:

La presentación se centró en emprendimientos de desarrollo de producto.

¿Porqué muchos emprendimientos fallan? Algunas razones: Optimismo infundado, foco 100% en el producto antes que pensar en quienes lo van a usar, resultado: el producto no encuentra mercado.

Proceso propuesto: Concepto de producto mínimo viable (MVP). Por ejemplo el primer teléfono de Apple que no permitía copiar y pegar.

Ver http://pathfindersoftware.com/2011/01/exploring-customer-validation/

Hablamos del Lean Canvas: http://leancanvas.com/ - Forma Lean de presentar información de startups.
Puede bajarse gratis y usarlo/adaptarlo a lo que necesitemos (licencia Creative Commons)

La charla luego de la presentación fue por el lado de pensar cuan útil es un plan de negocios para un Llean Startup. Si quiero un subsidio de algún organismo oficial seguro que necesito hacer un plan de negocios, pero se habla de que probablemente me convenga no pedir plata y arreglarme inicialmente con lo que tenga. Se habla también sobre "burbujas" (como las punto com en 2001) que son vistas como oportunidades en el momento, pero que no tienen un sustento firme a nivel ganancias por cliente nuevo obtenido. Después estuvimos analizando en más detalle en que consiste el lean canvas, y encaramos un caso específico.

Nombres y fuentes de información mencionadas en la sesión:

Agradezco a Rick por las notas y les dejo la serie de videos (5 en total, cubriendo unos 80 minutos). Los últimos 10 minutos de la parte 5, aproximadamente, quedaron ocupados por el inicio de una actividad posterior que no tuve oportunidad de editar.