martes, 14 de diciembre de 2010

13 cosas que todo Programador debería saber

Portada del libro

A principio de este año O'Reilly publicó este libro que compila 97 cosas que todos en esta profesión deberíamos saber, expresadas por una serie de profesionales de diferentes orígenes, algunos muy famosos, otros no tanto.

Lo que no me había enterado es que el libro completo surgió de un proyecto colaborativo y abierto, y que todo el contenido está disponible en línea en forma gratuita, además de muchos otros consejos que quedaron fuera del libro, pero pueden ser leído y evaluados.

En la Wiki pública del proyecto puede accederse todo este contenido, proponer colaboraciones y muchos más.

Aunque el contenido principal está en inglés, creo que es un material interesante para revisar.

Una de las preguntas más frecuentes alrededor del proyecto es ¿por qué 97? La respuesta es que apuntaban a alrededor de 100 consejos, pero no querían caer en los obvios 99 o 101, por lo que decidieron tomar el número primo más cercano: 97. Toda una muestra del espíritu nerd detrás del proyecto.

Siguiendo ese tono, traduzco los primeros 13 puntos, con sus respectivos links a la wiki (cuyos textos siguen en inglés, lamentablemente; si alguien conoce alguna iniciativa para traducir el contenido, por favor, avísenme).

  1. Actúa con Prudencia por Seb Rose

  2. Aplica Principios de Programación Funcional por Edward Garson

  3. Pregúntate: "¿que haría el usuario?" (tu no eres el usuario) por Giles Colborne

  4. Automatiza tus estándares de código por Filip van Laenen

  5. La belleza está en la simplicidad por Jørn Ølmheim

  6. Antes de refactorizar por Rajith Attapattu

  7. Cuidado al compartir por Udi Dahan

  8. La regla de los Niños Exploradores por Uncle Bob

  9. Verifica tu código antes de buscar otro a quien culpar por Allan Kelly

  10. Elige tus herramientas con cautela por Giovanni Asproni

  11. Programa en el lenguaje del dominio por Dan North

  12. Codificar es Diseñar por Ryan Brush

  13. El formato del código importa por Steve Freeman

lunes, 13 de diciembre de 2010

Biblioteca open source de algoritmos y estructuras de datos para .NET

Frans Bouma

Frans Bouma, reconocido en la comunidad por su O/RM LLBLGen Pro, ha publicado recientemente en CodePlex una biblioteca open source para .NET cubriendo una cantidad importante de algoritmos y estructuras de datos clásicas que la Base Class Library no tiene, o cuya implementación podía mejorarse.

Algunas de las estructuras y algoritmos asociados son:

  • Comandos (y su administración): con soporte de undo/redo y grupos de comandos.
  • Grafos: directos y no-directos, sub-grafos, clausuras transitivas y ordenamiento topológico, etc.
  • Heaps
  • Colas prioritizadas
  • Ordenamiento
  • Bolsa de Propiedades
  • Implementaciones mejoradas de IEditableObject/IDataErrorInfo
  • Filtro de eventos
  • y otras utilidades menores

Esta biblioteca, llamada Algorithmia, se suma a las BCLExtensions, un conjunto de extension methods sobre varios tipos de la Base Class Library, para propósitos generales.

Ambos proyectos están disponibles en CodePlex, utilizando el soporte de código fuente de Mercurial y licenciados bajo BSD2.

Como Frans ya ha aclarado varias veces, no importa si a alguien le gusta más GIT que Mercurial o GitHub que CodePlex. Esas elecciones corresponden al autor, y sólo tienen importancia si uno está decidido a colaborar con el proyecto (para usarlo basta con un download plano de los fuentes), cosa que pocos hacen en la práctica, y quienes realmente quieren contribuir nunca tienen problemas en utilizar un cliente u otro de control de código.

 

viernes, 10 de diciembre de 2010

Finalmente está aquí: Chrome Web Store

Chrome Web Store

Como se venía anunciando desde hace tiempo, esta semana abrió al público la Chrome Web Store.

La idea de esta tienda en línea es brindar el mismo tipo de experiencia de búsqueda de aplicaciones con calificaciones y comentarios de usuarios, categorías, descripciones, y opciones pagas o gratuitas que los usuarios de teléfonos inteligentes disfrutan desde el éxito del AppStore del iPhone, y que fue replicado en Android, Windows Phone 7, la iPad y demás.

Hay bastante discusión en línea acerca de que esta tienda no es más que maquillaje sobre el concepto de links y favoritos, pero veamos un poco sus características:

Lo primero que notará quien la acceda desde un navegador que no sea Chrome será que las aplicaciones sólo funcionan en ese browser. La imagen a continuación está capturada desde mi Firefox.

Web Store Home

¿Porqué sólo funciona en Chrome? En principio porque las aplicaciones pueden ser de varios tipos.

El nivel más básico puede ser un sitio web tradicional al que se le agrega sólo algo de metadata que usa la tienda para identificarla. Pero también puede ser una extensión para Chrome o un tipo de aplicación web más específico que puede descargarse y correr incluso offline dentro del sandbox de Chrome. Estos dos tipos de aplicaciones pueden utilizar además el API de Chrome para brindar funcionalidad específica más integrada al browser mismo.

Desde el punto de vista de nosotros como desarrolladores, lo más importante es el Developer Dashboard, que permite publicar cualquiera de estos tipos de aplicaciones, sin restricciones específicas, ya que Google ha decidido dejar la tarea de evaluar las aplicaciones a los usuarios mismos. Para poder publicar cualquier cosa, debe realizarse un pago por única vez de 5 dólares, más orientado a verificar la identidad asociada a la cuenta utilizada que a otra cosa.

Más que ninguna otra cosa, este es un nuevo mecanismo para dar a conocer aplicaciones y sigue empujando el mercado de empresas pequeñas de desarrollo que pueden alcanzar una alcance global con facilidad.

El principal problema que veo a todo esto es que crea un nuevo silo en lugar de ser algo abierto, pero es un experimento interesante.

jueves, 9 de diciembre de 2010

Video: Virtual Alt.Net sobre Ruby on Rails

El pasado 20 de noviembre se realizó otra de las reuniones que organiza semanalmente la comunidad Alt.Net Hispano, esta vez dedicada a por completo a Ruby on Rails, y a cargo de Mario Chávez (Twitter: @mario_chavez).

Unable to display content. Adobe Flash is required.

Durante la sesión Mario recorre una serie de recursos interesantes que dejo detallados aquí para quienes quieran accederlos directamente:

  • Rails Hispano es un podcast sobre RoR en español, que se publica mensualmente, de media hora de duración.
  • Ruby on Rails Tutorials, de Michael Hartl: son varios tutoriales en video y texto, en inglés, y aunque hay parte del contenido pago, mucho es accesible en línea en forma gratuita.

Finalmente, agrego una noticia de color sobre Ruby. Para los fanáticos del Ratón Mickey puede ser interesante el anuncio de la primer conferencia Magic Ruby, a realizarse del 4 al 5 de febrero de 2011 en Disney's Contemporary Resort de Orlando, Florida, que conecta via monorail con los parques temáticos. Lo interesante de la conferencia es que es gratuita (aunque hay que pagar el pasaje y la estadía, claro).

 

martes, 7 de diciembre de 2010

Android 2.3 (Gingerbread) recién salido del horno

Siguiendo la tradición de ponerle nombres de cosas dulces a las versiones de sus sistema operativo para dispositivos, Google lanzó Android 2.3, conocido como Gingerbread, y su correspondiente Kit de Desarrollo.

Como curiosidad, estos son los nombres de las versiones anteriores:

1.51.62.0/2.12.22.3
CupcakeDonutEclairFroyoGingerbread

Cupcake

Donut

Eclair

Froyo

Gingerbread

Las mejoras principales de esta versión se enfocan en:
  • Mejoras para desarrollo de juegos Principalmente a través de mejoras en el tiempo de respuesta gracias a retoques en el garbage collector y manejo de eventos, y exponiendo más APIs nativas que permiten acceder a bajo nivel las entradas y sensores (incluyendo giróscopos), EGL/OpenGL ES, OpenSL ES, etc.
  • Más riqueza multimedia La plataforma soporta ahora estándares de video abiertos como VP8 / WebM, audio y voz AAC y  ARM-wideband, y agrega efectos como reverb, ecualización, virtualización de audífonos y mejora de bajos.
  • Más formas de comunicación La plataforma soporta múltiples cámaras, típicamente para una frontal utilizada en video chats, soporte de llamadas via internet via SIP/VOIP,  y NFC (Near Field Communications) para permitir que los dispositivos se comuniquen con otros dentro de un rango de proximidad de unos 10 centímetros.

Aquí dejo el video promocional:

Y la liberación de la nueva versión se cristaliza con la aparición en conjunto de un primer dispositivo que trae esta versión de fábrica, el Nexus S, que Google desarrolló en conjunto con Samsung. Dejo también el video promocional para que se entretengan:

 

Videos de SmallTalk 2010 disponibles

Smalltalks 2010

Como comenté hace casi un mes, la última conferencia internacional Smalltalks 2010 se realizó en Concepción del Uruguay, en la provincia de Entre Ríos, Argentina.

Esta conferencia atrajo profesionales de esta comunidad de Ameríca del Sur, del Norte y de Europa, incluyendo figuras famosas del ambiente de lenguajes de programación como Gilad Bracha.

En los últimos días, los organizadores han publicado los videos de todas las sesiones, con buena calidad de audio y video en general, para que todos podamos disfrutarlas. Tratándose de una conferencia internacional, las sesiones fueron en inglés, pero debido a la procedencia variada del público, es casi siempre un inglés pausado y fácil de seguir.

Una excepción es la charla final presentada por el Maestro Angel "Java" López, hablada en Anglish (Angel's English) que él mismo describe en el comienzo. La sesión está dedicada a AjTalk, su máquina virtual de Smalltalk implementada en C# sobre el CLR de .NET, pero además de los detalles técnicos es muy entretenida y recomendable.

AjTalk: an Smalltalk-like Virtual Machine written in C#

Primera Parte

Unable to display content. Adobe Flash is required.

 

Segunda Parte

Unable to display content. Adobe Flash is required.

lunes, 6 de diciembre de 2010

Videos: Crockford habla sobre JavaScript

JavaScript: The Good Parts

Javascript sigue creciendo en relevancia. Hace bastante tiempo, hablaba sobre este tema en otro blog, aunque todavía este lenguaje no se había afianzado tanto del lado del servidor, cosa que está sucediendo ahora gracias a Node.js.

Así que siempre vale la pena conocer más sobre Javascript, incluyendo detalles acerca de su historia. Y quien mejor para esto que Douglas Crockford, actual Javascript Architect de Yahoo!, autor del excelente libro "Javascript: The good parts", y las herramientas indispensables JSLint (un verificador de prácticas) y JSMin (un minificador de código).

A principios de este año y a lo largo de varia semanas, Crockford dio una serie de seis charlas sobre Javascript que quedaron registradas en video (en inglés). El temario completo es:

  • Volume One: The Early Years
  • Chapter 2: And Then There Was JavaScript
  • Act III: Function the Ultimate
  • Episode IV: The Metamorphosis of Ajax
  • Part 5: The End of All Things
  • Scene 6: Loopage

Reproduzco aquí la primera de las charlas, que además de reveladora es muy divertida.

La serie completa está disponible en un sitio completo dedicado a las charlas, que incluye versiones de los videos para descarga en diferentes resoluciones, o la posibilidad de verlos online, y las transcripciones completas de las charlas para quienes les cuesta más escuchar el inglés que leerlo.

Finalmente, para quienes prefieren material estrictamente en castellano, les dejo enlaces a algunos de los trabajos de Corckford traducidos por distintas personas de la comunidad:

 

viernes, 3 de diciembre de 2010

Rust: un nuevo lenguaje experimental desde los labs de Mozilla

Mozilla Labs

La gente de Mozilla Labs publicó recientemente en GitHub su proyecto Rust, un lenguaje experimental.

Según la wiki con preguntas frecuentes, estos son los puntos importantes del lenguaje:

Seguridad

  • Manejo de memoria seguro. Sin punteros nulos o huérfanos, y con administración automática.
  • Control de mutabilidad. Inmutable por omisión. No hay estado mutable compartido entre tareas.
  • Seguridad en ejecución dinámica. Permite atrapar, loguear y procesar fallas en general.
  • Sistema de estado de tipos. Permite definir invariantes complejas sobre estructuras de datos.

Concurrencia y Eficiencia

  • Control de memoria explícito, sobre alocación y disposición.
  • Tareas (corutinas) livianas, de muy bajo costo al dispararlas de a miles o millones.
  • Iteradores de pila (bloques lambda sin alocación en el heap)
  • Compilación estática y nativa.
  • Interfaz simple y directa con código C

Pragmatismo

  • Multiparadigma: puramente funcional, concurrencia/actores, procedural/imperativo, orientado a objetos.
  • Multiplataforma: Windows, Linux, OS X.
  • Strings UTF8 y tipos a nivel de máquina
  • Permite romper reglas declarándolo explícitamente

Como explican en la Wiki, el proyecto, aunque tiene algunos leves puntos de contacto, se inició mucho antes que Google publicara su lenguaje Go, y aunque su sintaxis (por ahora, ya que no es el foco del proyecto todavía) también huele a C (usando llaves, punto y coma, etc).

Para variar, desde este blog no dejamos de celebrar novedades en el ambiente de lenguajes e programación, que aún cuando no llegan a popularizarse siempre aportan conceptos e ideas interesantes que se aprovechan tarde o temprano en otro lado.

 

      jueves, 2 de diciembre de 2010

      ¿Python más rápido que C?

      Entre los videos de las 6tas jornadas de Software Libre que mencioné en el último post, encontré este que me resultó muy interesante y divertido, a cargo de Facundo Batista (uno de los sospechosos de siempre en la comunidad Python local) en el que cuenta una serie de ejercicios desarrollados junto a Lucio Torre para comparar en contextos y situaciones diferentes los tiempos de ejecución de ambos lenguajes.

      Sobre el inicio Facundo aclara que el código C fue escrito en todos los casos por Lucio y el código Python por él mismo, y ambos tienen aproximadamente el mismo nivel de experiencia y familiaridad con cada lenguaje. Cualquiera en la comunidad iría más allá y diría que ambos son reconocidos expertos en el suyo.

      Obviamente hay mucho material para discutir (aún cuando no hay intento alguno de mostrar Python realmente más rápido que C en crudo), pero el objetivo de la charla es reflexionar sobre el proceso, y se habla bastante de la forma en que aplicamos diferentes niveles de optimización. De fondo, incluso, utilizar un lenguaje de bajo o alto nivel, uno estático o dinámico, suelen ser decisiones que optimizan tiempo de desarrollo/mantenimiento, o de ejecución.

      La sesión es corta y divertida, así que la reproduzco aquí debajo, pero antes quiero replicar una frase que Facundo destaca en uno de los slides, y que coincide con algo en lo que insisto hace años, pero nunca había escuchado con esas palabras:

      "Es más fácil optimizar código correcto que corregir código optimizado"

      Disfruten el video:

      Videos de las 6tas Jornadas de Software Libre - Junín 2010

      Sextas Jornadas de Software Libre

      El 5 y 6 de noviembre pasados se realizaron en la localidad de Junín, Buenos Aires, Argentina, las 6tas Jornadas de Software Libre.

      Hubo charlas de Python, Debian, Ubuntu, Linux en general, programación y administración, como pueden ver en el Cronograma completo.

      Durante el evento se pudieron grabar las charlas y ahora ya están disponibles para quienes no pudieron asistir.

      Pueden ver muchos de los videos en esta página:

      http://unnoba.blip.tv/posts?view=archive&nsfw=dc

      Y les dejo a mano este del amigo Juan Gabardini charlando sobre la relación entre Software Libre y Métodos Ágiles. Espero que la disfruten.

      Miguel de Icaza: Más sobre Mono para OS X y iOS

      Mac OS X

      Miguel lanzó un nuevo blog personal especializado en el sistema operativo de Mac y el de iPhone/iPod/iPad, visto por supuesto, desde la perspectiva de Mono.

      Como explica en el post inicial, las razones principales para tener un blog separado del suyo personal de siempre, exclusivamente dedicado a este tema, son dos:

      • Mientras que su blog está dedicado más que nada a novedades generales del proyecto Mono, éste está orientado a documentar sus experiencias específicas con estos ambientes de Apple, en un nivel de detalle más granular, que puede molestar a quien no tiene interés específico en el tema.
      • Estos sistemas operativos son propietarios y están bastante alejados de los ambientes abiertos usuales para gran parte del público anterior.

      En cualquier caso, es muy interesante tener un buen recurso técnico con detalles sobre MonoTouch, la implementación de Mono y herramientas de desarrollo para programar aplicaciones para iOS en lenguajes .NET, que es un producto comercial (sobre todo por temas de licenciamientos varios), y MonoMac, que si es un producto abierto y gratuito para hacer lo mismo sobre Mac OS X (que sí es un sistema propietario).

      Lo que ambos proyectos brindan, fundamentalmente, es la posibilidad de programar en C# y utilizar las librerías de la BCL, pero con bindings agregados para interactuar con el entorno de Apple en Objective-C y la interfaz de usuario Cocoa, lo que es una buena alternativa para quienes están interesados en desarrollar para estos dispositivos pero no tanto en aprender todos los detalles y lenguajes específicos.

      martes, 30 de noviembre de 2010

      RHoK: escribiendo código por los demás

      Random Hacks od Kindness

      La iniciativa RHoK (Random Hacks of Kindness), según describen sus organizadores, es "acerca de utilizar la tecnología para hacer del mundo un lugar mejor construyendo una comunidad de innovación. RHoK reúne a ingenieros de software con expertos en administración de riesgos de desastre para identificar desafíos globales y desarrollar software para responder a ellos. Los eventos RHoK Hackaton agrupan a los mejores hackers de todo el mundo, que voluntariamente aportan su tiempo para resolver problemas de la vida real."

      Detrás de esta singular campaña trabajan en común organizaciones tradicionalmente antagónicas o disímiles como Google, Microsoft, Yahoo!, la NASA y el Banco Mundial.

      Este fin de semana, sábado 4 y domingo 5 de diciembre, se realizará la segunda RHok Hackaton a nivel mundial, incluyendo los siguientes puntos de América Latina:

      Comparto con ustedes este interesante video hecho con post-its para promocionar el programa:

       

      lunes, 29 de noviembre de 2010

      Keynote de RubyConf 2010 de Matz (el creador de Ruby)

      Yukihiro 'Matz' Matsumoto

      Encontré publicadas las keynotes de la última Ruby Conference ocurrida hace unos días en New Orleans.

      Quienes quieran escuchar el divertido acento de Matz hablando en inglés, pueden ver el video, que lamentablemente no está disponible para embeber en este post.

      Durante la presentación habló entre otras cosas sobre las novedades planificadas para Ruby 2.0 y algunos proyectos como Rite, la implementación que está diseñando para correr embebida en dispositivos pequeños como relojes, teléfonos o televisores inteligentes.

      Para quienes quieran simplemente revisar el material de la presentación, si ubiqué los slides que incluyen todo el contenido, incluyendo algunas bromas, y si pude embeber aquí abajo:

       

       

      PyPy 1.4: ¡más rápido, más furioso!

      PyPy

      PyPy es una implementación de Python 2.5 (por ahora) escrita en Python, a diferencia de la implementación CPython de referencia. Más específicamente, PyPy es una arquitectura orientada a implementar fácilmente lenguajes dinámicos mediante dos componentes básicos: un intérprete y un framework de traducción.

      Obviamente, implementar Python mismo fue el primer paso, y lo que impulsa el proyecto principal. Y con esta nueva versión han alcanzado un hito sumamente importante. En la mayoría de las pruebas estándar de velocidad de ejecución populares dentro de la comunidad Python, ¡PyPy es más rápido que CPython!

      ¿Suena increíble, verdad? Veamos los resultados de las últimas pruebas (aquí puede verse el análisis completo):

      Comparación entre PyPy y Cpython

      Para comprender cómo es posible, hay que entender un poco más la manera en que funciona el compilador JIT (just in time, ó a demanda) de PyPy. Que el lenguaje esté implementado sobre sí mismo no quiere decir que se trate de un intérprete sobre otro. PyPy está escrito en Python, pero lo que hace el intérprete es analizar el árbol de expresiones del programa, y a través de su framework de traducción, generar el código ejecutable a nivel de la plataforma objetivo, a medida que va necesitando hacerlo (esta es la parte a demanda).

      Por ahora hay disponibles traductores para diferentes sabores de Intel, con los de ARM en camino, para IL de .NET (que a su vez compila a una serie de plataformas) y está en etapa de pruebas el soporte para la máquina virtual de Java.

      Otras características PyPy son la capacidad de Sandboxing, es decir, la ejecución en un espacio controlado, lo que permite por ejemplo recibir scripts Python en forma anónima o semi-anónima y ejecutarlos en un servidor restringiendo algunas operaciones, como acceso al file system, comunicaciones de red, etc. Esto es muy útil para permitir crear soluciones extensibles sin generar problemas graves de seguridad.

      PyPy también está disponible en versión Stackless que soporta el uso de micro-threads y otras características que permiten una enorme eficiencia en soluciones de muy alta concurrencia.

       

       

       

       

      viernes, 26 de noviembre de 2010

      Reunión Alt.Net en Buenos Aires

      Alt.Net Hispano

      Después de bastante tiempo, finalmente se organizó una nueva reunión de Alt.Net en Buenos Aires, programada para el próximo sábado 11 de diciembre, de 9:00 a 18:00. Un día completo entre geeks de alta gama.

      Ya está abierta (y concurrida) la registración, y el evento será nuevamente en las oficinas de Microsoft Argentina, remodeladas recientemente, casi un estreno para la comunidad local.

      El movimiento Alt.Net es totalmente independiente y distribuido, sin una organización institucional ni jerarquías, y agrupa a quienes utilizan la plataforma fuera y dentro de las ofertas corporativas, haciendo mucho énfasis en buenas prácticas de diseño y desarrollo, métodos ágiles, proyectos de código abierto y colaboración entre pares y entre la comunidad.

      Más detalles pueden leerse en español en esta traducción de un artículo de Jeremy Miller, o con mucho más sabor local en este post del amigo Jorge Gamba. Es Jorge casualmente quien más trabaja en América Latina para mantener funcionando el movimiento Alt.Net Hispano, con el que se organizan las reuniones VAN (Virtual Alt.Net) semanales (una o dos por semana) desde hace meses, como comentábamos en un post reciente. Ya llevan casi 60 sesiones y todas están disponibles en video para verlas a demanda.

      IMPORTANTE: Si van a asistir a la reunión en Buenos Aires, no dejen de revisar y agregar propuestas en la wiki del evento. Eso permitirá agilizar la votación y armado de la agenda durante el evento.

       

      Como muestra del contenido de las VAN, reproduzco aquí esta fantástica sesión sobre Patrones de Diseño a cargo del Maestro Angel "Java" López, en la que hasta se da el lujo de mencionar algunos patrones en la música y ¡tocarlos en guitarra!

      Unable to display content. Adobe Flash is required.

      Videos de TDD en acción

      Recién descubro esta excelente serie de videos de James Shore, autor del libro "The Art of Agile".

      En la serie, James captura 10 o 15 minutos de sesiones de una aplicación que construye utilizando TDD en Java, sobre Eclipse. Los videos están narrados en inglés, pero más allá de la explicación, puede verse cómo va escribiendo el código y son muy ilustrativos, incluso cuando podemos no compartir algunos de los criterios que toma en determinado momento.

      Comparto aquí el primer video de la serie, pero no dejen de ver la lista completa, que ya lleva 55 episodios, y últimamente involucra además a algunos invitados con lo que se puede ver no solo el ejercicio de TDD sino también el de programar de a pares.

      jueves, 25 de noviembre de 2010

      Cartilla visual de GIT

      Para todos los que están todavía acostumbrándose a GIT o no recuerdan operaciones que no hace  frecuentemente, Matt Harrison comenzó a armar esta guía visual (cheatsheet), con la que se puede colaborar como explica en su post.

      GIT Cheat Sheet

      Pueden obtener la imagen a tamaño completo, para imprimirla y pegarla cerca de sus monitores.

       

      S4: manejando flujos continuos de datos

      S4: distributed stream computing platform

      S4 es un nuevo proyecto Java abierto generado por los laboratorios de Yahoo!, orientado al procesamiento masivo de información.

      Ya están establecidas como práctica corriente para este tipo de escenarios tecnologías como MapReduce o su implementación abierta Hadoop, pero hasta ahora casi todas ellas trabajaban por lotes (en batch), iniciando el procesamiento a raíz de un proceso interactivo (como una búsqueda) o programado con cierta frecuencia.

      S4 está diseñado para procesar los datos a medida que van llegando (en forma de stream), sin almacenamiento intermedio. La arquitectura se basa en el modelo de actores, retomando una tendencia impulsada últimamente por AkkaIo y SALSA, e implementada localmente por el ubicuo Angel "Java" López en AjAgents.

      Las características principales que busca S4 son proveer un servicio indefinidamente escalable en función a agregar nodos al cluster, descentralizado en la medida en que todos los nodos son iguales, parcialmente tolerante a fallas donde los eventos pueden volver a enrutarse en caso de fallas en cualquier nodo, elástico en la medida en que la carga se distribuye automáticamente a través de los nodos, expansible a través de un API simple y orientada a objetos, donde la comunicación entre nodos se escribe utilizando POJOs (plain Java objects).

      Hay un tutorial basado en una aplicación que procesa mensajes de Twitter.

       

       

      miércoles, 24 de noviembre de 2010

      Decoradores en Python (video de Juanjo Conti en el PyDay 2010 Rafaela)

      Me encontré este post de Juanjo Conti, de la comunidad Python, donde publica el video de su charla sobre Decoradores, grabada hace unos meses atrás en el PyDay Rafaela.

      Lo comparto porque me parece interesante para aquellos que no usan mucho este recurso en Python (o lo usan sin saber cómo se implementa por debajo), y también para la gente de otros lenguajes (usualmente estáticos) que no entiende aún lo grandioso que es el Monkey Patching en lenguajes dinámicos.

      entendiendo decoradores from Orfx Sch on Vimeo.

      Como complemento ideal par quien quiere repasar el tema en más detalle, están esta serie de artículos donde Juanjo explica el tema en detalle.

      Decoradores en Python:

      Muy buenos recursos y una explicación muy detallada.

      martes, 23 de noviembre de 2010

      Resultados del CloudCamp Buenos Aires, 2da edición

      En pleno unpanel

      El viernes pasado, 19 de noviembre, se realizó finalmente la 2da edición del CloudCamp Buenos Aires, en el auditorio del Microsoft User Group de Argentina.

      Esta des-conferencia arrancó con una serie de charlas relámpago de 5 minutos introduciendo rápidamente algunos temas para abrir el apetito de los asistentes:

      Detrás de esta avalancha de mini-presentaciones, pasamos a un un-panel, en el que se invitó a todos los asistentes que se sintiesen expertos en el tema a pasar al frente para recibir preguntas abiertas de la audiencia, sin ningún filtro. Como suele ocurrir, quedamos como panelistas casi los mismos que presentamos las charlas relámpago, más Carlos Peix, de Praxia. Esta etapa, de todas maneras, siempre es mucho más colaborativa, y la audiencia participa más activamente, no sólo con preguntas, sino también aportando experiencias dentro o fuera de la nube.

      Al terminar el un-panel, y mientras reponíamos el nivel de cafeína en nuestras venas, se seleccionaron los temas para el resto de la jornada, constituida por open spaces. Los temas finales fueron:

      • Cómo migrar a la web, facilitada por Guada
      • Arquitectura de Amazon Web Services, facilitada por Matías
      • Patrones y antipatrones en el uso de NoSQL, facilitada por Miguel Sáez de Microsoft Argentina
      • 10 cosas que hay que evitar para estar preparados para la nube, facilitada por mi

      No hay registro de esta parte, pero como se tratan de debates abiertos más que de presentaciones regulares, no es algo que se pueda grabar fácilmente. Para quienes estén interesados en esos temas, les recomiendo seguir los blogs o twitters de los presentadores, recorrer los sitios de los proveedores de servicio, y tratar de organizar un evento como estos a nivel regional.

      Finalmente, gracias al equipo de JRapid tenemos una buena cantidad de fotos del evento que pueden ver en Flickr.

      Se confirma la venta de Novell mientras liberan MonoDevelop 2.4.1

      Novell

      Las noticias no están directamente relacionadas, pero fortuitamente ambos anuncios ocurrieron ayer.

      Novell anunció haber sido adquirida por Attachmate, una compañía de servicios de tecnología, en 2.200 millones de dólares. Attachmate espera potenciar su portfolio de soluciones con las marcas y productos Novell y SUSE, pero un detalle muy interesante es que como parte de la misma operación, CPTN Holdings LLC, un consorcio de empresas de tecnología lideradas por Microsoft compró por 450 millones de dólares en efectivo un paquete de 882 patentes de tecnología de Novell.

      Antes de ponerse muy nerviosos pensando en Microsoft tomando control de patentes alrededor de Linux, hay que tener en cuenta que Novell sigue teniendo un montón de tecnología de recursos de red, incluyendo un directorio de autenticación que es uno de los principales competidores de ActiveDirectory, y toda una suite de interoperabilidad entre el mundo Windows y Enterprise SUSE. Y por supuesto, Novell es el anfitrión del proyecto Mono y otros relacionados como Moonlight (la implementación abierta de Silverlight para Linux).

      MonoDevelop

      Casualmente, Miguel de Icaza anunció ayer la disponibilidad de la versión estable de MonoDevelop 2.4.1, la IDE para Mono que corre en Linux, Mac OS y Windows.

      Esta versión aumenta soporte para xbuild (la versión Mono de msbuild), soporte a proyectos .NET 4, y mejoras generales en Mac OS X.

       

      viernes, 19 de noviembre de 2010

      Atención Zombies: Ruby on Rails los espera

      Rails for Zombies

      La gente de EnvyLabs acaba de presentar su última poducción: Rails for Zombies.

      Bajo este título que juega con el reciente rebrote de zombies en el cine, la televisión y la sección de política de los diarios, el sitio es en realidad un excelente recurso para aprender Ruby on Rails.

      Para los que no conocen bien Ruby, es recomendable pasar primero por el tutorial en línea TryRuby, para tener una base mejor, aunque el contenido de este curso es realmente básico.

      El material está realmente bien producido, con introducciones en video y prácticas dentro del browser donde se presentan problemas que uno tiene que resolver escribiendo código que es validado en el momento (y funciona mejor que TryRuby, que a veces tiene algunos problemas).

      No esperen convertirse en expertos con este recurso, pero es una buena introducción a este framework de desarrollo web que muestra su simplicidad y elegancia, y adicionalmente dentro de un contexto divertido.

       

      miércoles, 17 de noviembre de 2010

      Python 3.2 alpha 4 disponible

      Python

      Hace unos días se liberó esta nueva versión preliminar de Python 3.2, que continúa manteniendo el foco en estabilizar Python 3.x y -como se decidió en el PEP 3003, mantener la moratoria en cuanto a cambios en la sintáxis y semántica del lenguaje (hasta la versión 3.3 aproximadamente). El objetivo de la moratoria es dar tiempo a las implementaciones alternativas a CPython, como PyPyJython, IronPython o Unladen Swallow para ponerse al día con el core de Python 3.x.

      El foco principal de trabajo en Python 3.2 es entonces, las librerías y la implementación, en áreas como:

      • La re-escritura del cuestionado GIL (Global Interpreter Lock) para optimizar el manejo de threading y concurrencia en general.
      • Mejoras en logging
      • El módulo concurrent.futures
      • Resolución de problemas con múltiples intérpretes y los repositorios PYC (al cachear extensiones C)
      • Mejoras en email

      Es bueno ver como Python puede avanzar en muchísimas áreas manteniendo el compromiso de colaboración con múltiples equipos implementando intérpretes alternativos, sin detenerse y aportando valor continuo a toda la comunidad.

      Revista de Pragmatic Programmers de Noviembre

      PragPub de Noviembre 2010

      Una publicación gratuita de excelente nivel para todos los desarrolladores (en inglés solamente, cabe aclarar) es PragPub, otra creación del los Pragmatic Programmers, Andy Hunt y Dave Thomas (autores de uno de los libros fundamentales para todo desarrollador -si no lo leíste, apurate).

      La revista es mensual, contiene artículos sobre la profesión en general, tecnologías y protocolos, metodologías, lenguajes y frameworks, etc.

      Además de estar disponible para leer online como HTML, al igual que todos los libros de la editorial, se puede descargar como PDF, epub o mobi, para leer en nuestras notebooks o en lectores como el Kindle, Sony Reader o Nook.

      Muy recomendable.

      Tras la despedida de OpenSolaris, llega Solaris 11 Express

      Oracle

      Después de liquidar OpenSolaris, Oracle lanza la nueva (y definitivamente propietaria) versión preliminar de Solaris 11, orientada a desarrolladores.

      Algunas de las mejoras principales en esta versión se centran en virtualización de redes, más integración con el portal de soporte online de Oracle y refinamientos en el ZFS (el poderoso combo de file system y adminitrador de volúmenes).

      Hace sólo un par de meses que OpenSolaris quedó cancelado como proyecto abierto, tras la decisión de Oracle de volver a un estilo de desarrollo propietario, aunque anunciaron que los fuentes pueden liberarse tiempo después de la salida de las versiones corporativas. Inmediatamente después el OpenSolaris Governing Board renunció en masa y el proyecto pasó a la historia.

      lunes, 15 de noviembre de 2010

      Comparación de TDD entre entornos estáticos y dinámicos

      Hernán Wilkinson, uno de los integrantes de 10pines, publicó recientemente en su blog estos interesantes videos (que republicamos) comparando la práctica de TDD en Java y Smalltalk.

      Más allá de algunas objeciones que se han hecho a la comparación, como estilos en uno u otro lenguaje, el ejercicio es interesante. En líneas generales se puede coincidir en que los lenguajes dinámicos tienen algunas ventajas a nivel de ejecución para este tipo de prácticas.

      De paso, también es un ejemplo interesante para ver un brevísimo ejercicio de TDD y de Smalltalk para quienes no están familiarizados con ellos.

      Gracias a Hernán por contribuir a la comunidad con este contenido.

      Alt.Net Hispano - Charlas semanales sobre desarrollo

      Alt.Net Hispano

      El grupo Alt.Net Hispano es la versión regional de un movimiento que se inició tratando de agrupar alternativas más allá de las oficiales respecto al desarrollo en la plataforma .NET.

      A nivel mundial se discute mucho acerca de proyectos de código abierto y algunos otros propietarios, pero fuera de las herramientas oficiales, incluyendo productos como Mono, NHibernate, Resharper y montones de otros proyectos, incluyendo cosas oficiales.

      La comunidad a nivel regional, liderada por el amigo Jorge Gamba, de Colombia, un auténtico motor comunitario, ha logrado un efecto increíble, generando una o dos reuniones virtuales semanales, de alrededor de dos horas cada una, sobre enorme variedad de temas, a veces más parecidas a presentaciones a cargo de un orador principal, y otras en plan de debate entre varios participantes.

      Como el interés del grupo rompe los límites naturales de la plataforma, hay mucho contenido interesante incluso para quienes no utilizan .NET ni nada parecido, y todas las sesiones están disponibles en video para poder mirarlas a demanda. A hoy hay disponibles la friolera de 57 sesiones en video. Para participar de las sesiones en vivo, por ahora hay que utilizar LiveMeeting (lo que implica lamentablemente utilizar Windows, aunque es una limitación que se está tratando de superar), y hay un calendario de las próximas sesiones.

      Como muestra, incluyo algunas de las últimas reuniones VAN (Virtual Alt.Net):

       

      FechaTipoTítuloPresentadorDuración
      572010/10/26VANIntegración ContinuaCarlos Peix Andrés Vettori José Romaniello Vicenç García2:09
      562010/10/23VANPrincipios de Diseño SOLIDCarlos Peix2:31
      552010/10/16VANPatrones de DiseñoAngel "Java" López2:19
      542010/10/02VANCQRS, CQS y Event MessagingCristian Prieto1:57
      532010/09/25VANDesarrollando el equipo SCRUMHeitor Roriz1:49
      522010/09/18VANADFS & WIFEugenio Pace Carlos Peix1:58
      512010/08/27ALT.NET CaféLa Inmortalidad de la Medusa - Arquitectura1:59
      502010/08/21VANHaciendo BDD con MSpecJorge Gamba2:23
      492010/08/20VANESB con NServiceBusCristian Prieto1:25
      482010/08/14VANMastering User StoriesHeitor Roriz2:18
      472010/08/06ALT.NET CaféLa Inmortalidad de la Medusa - Arquitectura2:04
      462010/07/31VANReSharperHadi Hariri2:14
      452010/07/30VANASP.NET MVC 3 y RazorCristian Prieto1:39
      442010/07/24ALT.NET CaféAltNetHispano.Vale - Parte 4Fabio Maulo1:50
      432010/07/17VANOData (Open Data Protocol)Pablo Castro1:53

       

      ¿Adiós, SOA, adiós?

      WS-I

      La semana pasada la Web Services Interoperability Organization (más conocida como WS-I) anunció en un comunicado de prensa que da por cumplida su labor con la reciente aprobación de las versiones ginales de los estándars Basic Profile 1.2 y 2.0, y el Reliable Secure Profile, e inicia la transición de su labor de difusión y soporte de estos temas a OASIS.

      El comunicado y algunos saludos de parte de los integrantes de este comité de parte de la industria suenan a un final laudatorio, pero personalmente me suena más a un final realista de un cuerpo cuyo impacto fue mayor en los presupuestos invertidos por algunas empresas que en el avance general de la industria.

      La Arquitectura Orientada a Servicios (SOA) ha cumplido muy pocas de sus promesas, y como muchas otras de estas iniciativas de estilo comité entre varios participantes, siempre pareció llegar u poco tarde. Mientras tanto, fuera de los confines de los sectores más corporativos, los web services han dejado el complejo y problemático camino de SOAP y sus descendientes y se han volcado ampliamente al paradigma REST, donde la interoperabilidad nunca fue un problema, y unos pocos principios fundamentales y su aplicación práctica definieron el camino sin necesidad de organizaciones especiales.

      Irónicamente, la WS-I se despide haciendo gala de un pobre entendimiento de la web, publicando este comunicado como PDF, casi como evitando que los buscadores ayuden a divulgar sus últimos pasos.

      CloudCamp Buenos Aires, 2da Edición

      CloudCamp

      Este viernes, 19 de noviembre, se realiza la segunda edición del CloudCamp en Buenos Aires, y esta vez me toca el rol de facilitador.

      Para quienes no lo conocen, CloudCamp es una "des-conferencia" que se realiza alrededor del mundo sobre el tema Cloud Computing.

      En mayo de este año se llevó a cabo por primera vez en Argentina, y pueden ver este post de resumen para darse una idea de lo que sucedió.

      Esta segunda edición se llevará a cabo en el auditorio del Microsoft User Group de Argentina, enfrente a la Plaza Congreso, y los interesados pueden registrarse en la página oficial del evento. El evento es gratuito pero las vacantes son limitadas, por lo que es importante no demorar en la registración.

      Vista de la primer edición en Buenos Aires

      El evento inicia con una bienvenida repasando el formato, una serie de charlas relámpago (5 minutos sobre un tema puntual), un anti-panel en el que quienes se consideran a si mismos expertos en el tema contestan dudas del resto de la audiencia, y finalmente una serie de open spaces tratando en más profundidad los temas que los asistentes seleccionan.

      Para quienes no están acostumbrados, vale la pena aclarar que hay mucha experiencia en este tipo de eventos y los resultados son muy buenos; en general los asistentes terminan en muchos casos más satisfechos que en eventos con una programación tradicional, donde no tienen capacidad de influir en la temática.

      viernes, 12 de noviembre de 2010

      Java con problemas, pero siempre relevante

      Java

      Los problemas en el mundillo institucional de Java continúan.

      Después del reciente anuncio de Apple de que descartará el runtime de Java a partir del futuro Mac OS X Lion, dejando la responsabilidad de continuar el soporte y librerías para Mac OS a terceros (la comunidad u Oracle), ahora es nada más ni nada menos que la Apache Software Foundation la que amenaza con retirarse del JCP (Java Community Process) si Oracle no cambia unas cuantas actitudes que han complicado el ambiente desde la compra de Sun.

      En esta nota pública, la ASF comienza anunciando que ha sido ratificada en el JCP por tres años más. Pero pronto abunda en detalles de un conflicto alrededor del Java SE TCK (el Testing Kit que se utiliza para validar las implementaciones y librerías de Java) licenciado para poder certificar apropiadamente Apache Harmony, la implementación abierta de Java.

      Sobre el final, la fundación amenaza con abandonar el JCP, lo que puede pre-anunciar una escisión definitiva de la comunidad Java, alejándose de Oracle.

      Todas estas peleas complican el panorama de Java como lenguaje, mientras la JVM (la máquina virtual de Java) sigue siendo un terreno fértil sobre el que siguen creciendo nuevos lenguajes como Clojure, Scala, Groovy y muchos otros.

      A la vez, nada más ni nada menos que Microsoft sigue ampliando soporte para Java en su plataforma. Después de adquirir Teamprise y convertirlo en Microsoft Visual Studio Team Explorer Everywhere 2010 (como ven, extendiendo al menos el título) para dar soporte completo a Eclipse, en el reciente PDC10 se anunció un soporte más amplio para Java (y otros lenguajes) en Windows Azure. Información muy detallada sobre Java en Azure se puede leer en este post de Rob Blackwell.

       

      miércoles, 10 de noviembre de 2010

      VIDEOS - Code & Beyond Talk: Programación Funcional

      La audiencia del evento

      El pasado jueves 4 de noviembre realizamos el primer evento en vivo de Code & Beyond, en una serie de "Talks" que esperamos realizar con cierta frecuencia, en diferentes lugares.

      Este primer evento lo hicimos en el auditorio de Southworks, donde trabajo la mayor parte de mi tiempo, y donde seguramente haremos otros, aunque también esperamos recorrer auditorios y salones de otras organizaciones.

      El tema principal del evento fue Programación Funcional, y lo dividimos en cuatro partes que registramos además en videos, y compartimos con ustedes aquí abajo:

      Introducción a Programación Funcional (Martín Salías)

      El Maestro Angel 'Java' López

      Lisp y Clojure (Angel "Java" López)

      Martin Salias

      F# (Martín Salías)

      Rodo Finochietti

      C# Funcional (Rodo Finochietti)

      Las fotos son obra de Julian Scopinaro.

      UbuCon Argentina 2010

      Ubuntu

      UbuCon 2010 es la primer conferencia de Ubuntu en español, organizada por Ubuntu-Ar, el grupo de usuarios de Ubuntu en Argentina, y se realizará en la Universidad de Palermo, en Mario Bravo 1050 (esquina Códoba), Buenos Aires, el 19 y 20 de Noviembre de 2010.

      La conferencia propone un estilo relajado, con un mix de presentaciones, charlas relámpago, open spaces, y amplios espacios de tiempo para socializar.

      La conferencia es gratuita pero requiere registración, y quienes quieran un certificado, pueden obtenerlo por un monto muy bajo que ayuda además a financiar el evento.

       

      Mas apertura de Microsoft en la Web

      Desde hace un tiempo, el grupo a cargo de las herramientas de desarrollo de Microsoft está avanzando en un ciclo de entregas más ágil, con más feedback directo y temprano por parte de la comunidad, e incluyendo más componentes dentro del espacio de código abierto y herramientas gratuitas.

      En ese contexto, en estos días se lanzaron varios productos interesantes:

       

      ASP.NET MVC 3 (Release Candidate)

      Razor View Engine

      Esta es la versión final a nivel de características (puede cambiar algún detalle en el empaquetado final, pero no mucho más), y agrega a as versiones previas de MVC estas novedades:

      • Intellisense para Razor en Visual Studio Razor es un nuevo motor de vistas que permite embeber expresiones y código en forma bastante liviana dentro del markup (aunque me quedan mis reservas sobre la idea), y ahora tiene soporte completo en el editor.
      • Cache parcial dentro de las páginas Aunque MVC ya soportaba el manejo de caching en páginas completas, ahora puede controlarse a niveles parciales.
      • Javascript y Validación no intrusivos Esto significa que se mejora el soporte a ambas cosas sin tener que inyectar scripts inline dentro del HTML, dejando código mucho más prolijo y óptimo en ejecución. Las validaciones en MVC 3 además, usan jQuery Validate por omisión.
      • Mejoras y extensibilidad para crear nuevos proyectos, vistas, etc.

      Detalles completos en el clásico post de Scott Guthrie.

       

      NuGet Community Technical Preview 2

      NuGet

      NuGet (hasta hace poco llamado NuPack, pero renombrado por voto de la comunidad cuando se descubrió que había otro proyecto previo con ese nombre) es un administrador de librerías y dependencias para .NET, al estilo de las Gem de Ruby. Notablemente, los componentes cliente y servidor son gratuitos y de código abierto, mantenidos por Microsoft y la comunidad.

      Esta versión de NuGet puede obtenerse desde el sitio en CodePlex (binarios o fuentes), está incluida en ASP.NET MVC 3 RC (anunciado más arriba), o a través de la Visual Studio Gallery desde dentro de la IDE.

      Sobre NuGet en detalle pueden ver este post de Phil Haack, o este video de Scott Hanselman en PDC10.

       

      WebMatrix Beta 3

      WebMatrix

      Finalmente, también se anunció la disponibilidad de este paquete gratuito de Microsoft para desarrollo web.

      Se trata de una cominación de IDE con herramientas de publicación, IIS Express (una versión de desarrollo del web server, gratuita y liviana, que no requiere privilegios de administrador local) y SQL Server Compact (un motor de bases de datos relacionales que corre embebido, al estilo SQL Lite).

      Lo interesante de WebMatrix es que además de ASP.NET, incorpora soporte directo para integrar Umbrado, Wordpress, Joomla, DotNetNuke y otras plataformas.

       

      Smalltalks 2010 en Concepción del Uruguay, Argentina

      Smalltalks 2010

      La gran conferencia anual de Smalltalk empieza mañana en la provincia de Entre Ríos, organizada por FAST, la Fundación Argentina de Smalltalk. Se extiende del 11 al 13 de noviembre en la UTN de Concepción del Uruguay.

      Como siempre, han convocado gente sensacional. Entre los internacionales (menciono sólo algunos):

      Y entre las figuras locales:

      Como siempre, el nivel de la conferencia es altísimo, lo que mantiene a Argentina como uno de los países, junto con Francia y USA, a la cabeza de la comunidad internacional de Smalltalk.

      lunes, 8 de noviembre de 2010

      Blackberry Developer Day 2010 (Buenos Aires)

      Blackberry DevDay 2010.jpg

      Sobre la fecha, pero no podíamos dejar de avisar de este evento para desarrolladores en la plataforma Blackberry organizado por la gente de RIM mañana, en el Hotel Sheraton de Buenos Aires.

      El seminario es gratuito y apunta a cualquier desarrollador que enfrenta el desafío de integrar sus aplicaciones a esta plataforma de comunicaciones, o a quienes quieren aprovechar sus características para ampliar los servicios de aplicaciones existentes.

      La plataforma cuenta con servicios PUSH y con BES (Blackberry Enterprise Server) del lado del servidor, y puede complementarse con aplicaciones en los dispositivos utilizando Java y Widgets específicos.

      En el evento se presentarán los kits para desarrollo propios y plugins para otros entornos.

      Novedades acerca de F#

      Visual F#

      La última ha sido una semana excitante para la pequeña pero vibrante comunidad F#.

      Este nuevo lenguaje funcional generado por Microsoft e incorporado en la última versión de Visual Studio junto a los tradicionales C# y VB, es una implementación actualizada de OCaml, con una sintáxis alternativa más ligera y corriendo sobre el Commom Language Runtime, lo que significa que puede interoperar con cualquier otro lenguaje que ejecute sobre .NET (o Mono) y utilizar todas las librerías disponibles por parte de Microsoft o terceras partes, incluyendo abundantes ofertas de código abierto.

      Las novedades principales tienen que ver con el F# in Education Workshop llevado a cabo en Cambridge, estado de Massachusetts, USA, en el Centro de R&D de Microsoft Research de esa ciudad.

      En este evento académico, además de discutirse el uso del lenguaje en diferentes programas educativos, hubo un par de anuncios muy interesantes:

      El primero es el anuncio de que el último drop del código fuente del compilador y las librerías de F# se han publicado bajo la licencia Apache 2.0, dentro del proyecto F# PowerPack en CodePlex. Esto significa que el lenguaje completo, que ya estaba de código abierto, pero cuya licencia permitía un reuso académico, permite ahora cualquier tipo de uso comercial, sin restricciones. El anuncio oficial puede ser leído en este post del mismo Don Syme.

      El otro es el avance del proyecto FsXplat en CodePlex, que está orientado a facilitar el uso de F# en diversas plataformas como Unix y Mac OS, basándose en Mono, e incluyendo además de unas cuantas demos de interoperabilidad, soporte para editores populares como Emacs (disponible) y próximamenteMonoDevelop (el binder está pendiente de algunos detalles, aunque los valientes pueden acceder al código fuente e intentar construirlo para probar un poco).

      jueves, 4 de noviembre de 2010

      Agile Open Buenos Aires 2010 - Seguridad

      Agile Open BA - Seguridad

      Los buenos amigos de Agiles.org siguen con sus eventos Agile Open, que duran medio día o día completo, y a veces, como en este caso, se enfocan en un tema específico.

      La estructura usual de los Agile Open es una apertura y presentación rápida, algunas Lightning Talks (charlas de 5 minutos exponiendo rápidamente un tema puntual), y el resto del tiempo se sigue el formato Open Space, en el que los participantes mismos proponen temas para debatir o presentar, los votan y distribuyen en sesiones de acuerdo al tiempo y la cantidad de espacios disponibles para hacer varios tracks en paralelo.

      Toda la información en la página oficial de este Agile Open, incluyendo inscripción y detalles.

      El evento es en las oficinas de Teracode, Callao 410, 4 piso (en el centro de Buenos Aires) el Viernes 12 de Noviembre 2010, a las 14:45.

      miércoles, 3 de noviembre de 2010

      Cloud9: La IDE de Javascript en Javascript

      Cloud9 IDE

      Hace un par de años escribí un post en mi blog personal sobre el avance de Javascript en general, y en el lapso desde ahora, el panorama no cambió tanto, pero la adopción de Javascript no se detuvo. Por otro lado, vengo esperando desde hace tiempo que las IDEs migren del escritorio a la nube, y aunque ya hay varios casos, no es algo que haya explotado aún.

      El proyecto Cloud9 tiene un aire parecido al Bespin de Mozilla, recientemente rebautizado Skywriter. Ambos proyectos apuntan a brindar una IDE utilizable online, aunque Skywriter es más maduro. La diferencia de Cloud9 es que en lugar de utilizar Canvas de HTML 5 para hacer la presentación del código, utiliza el DOM. Ambos métodos tienen sus ventajas y desventajas, como siempre, pero es bueno que se exploren ambas alternativas.

      La otra gran diferencia de Cloud9 (que por ahora está disponible para uso local) es que está diseñado siguiendo el estilo de Eclipse, en que la mayor parte de la funcionalidad se obtiene mediante un sistema de plugins.

      La mejor noticia es que ambos proyectos (Cloud9 y Skywriter) han decidido colaborar, inicialmente en áreas como el sistema de plugins, configuración, coloreo de sintáxis, comandos y temas.

       

      Sesiones de Microsoft PDC 10 (online o descarga)

      PDC 10

      Como suele hacerlo todos los años, Greg Duncan ha publicado en su blog la lista completa de todas las sesiones del principal evento de Microsoft para desarrolladores, con links para ver los videos en línea o descargarlos en varios formatos éstos o las presentaciones Powerpoint.

      Es interesante el comentario al pie del post, donde menciona que esta año le resultó muchísimo más sencillo por haber tenido las sesiones expuestas como un feed OData, y comenta cómo integrarlo.

      martes, 2 de noviembre de 2010

      Google DevFest en Buenos Aires (Día 1)

      Tim Bray habla de Android

      En el coqueto auditorio de la Universidad Católica Argentina arrancó el Google DevFest de este año.

      El primer día estuvo dedicado exclusivamente a Android. Por la mañana hubo un evento previo al que no asistí, destinado a que los participantes instalaran el SDK y desarrollaran su primer aplicación Android.

      Los comentarios fueron variados, pero al parecer sirvió como una primer experiencia, aunque algunos decían que se perdió mucho tiempo instalando (algo que se suponía que los asistentes debían hacer previamente).

      Por la tarde, el evento principal estuvo compuesto por cuatro charlas:

      Un vistazo a Android SDK y lo nuevo en Froyo, que debía presentar Billy Rutledge pero presentó Tim Bray, como puede verse en la foto.

      Bray es un gran presentador, aunque me pareció un desperdicio dando esta introducción.

      Construcción de Aplicaciones de Alto Desempeño fue la siguiente charla de Bray, que mantuvo el nivel básico, y era en realidad como hacer aplicaciones que no tengan pobre desempeño. Mucho foco en cosas como no utilizar reflection, no acceder el file system o -peor aún- la red desde el thread de la interfaz de usuario, y otros temas que los desarrolladores profesionales deberían saber a esta altura. Como temas interesantes mostró algunas herramientas de profiling como TraceView e hizo foco en el clásico "no suponer nada; medir y corregir".

      Continuó Fred Chung con Adaptación al Hardware y Locale, una sesión de 45 minutos explicando temas muy básicos como la relación de puntos por pulgada de los dispositivos, como usar wrappers para soportar diferentes versiones del SDK, o como usar archivos de recursos. Confirmó mi apreciación de que el evento se dirige a un nivel muy básico de desarrollador.

      Cerró Tim Bray (el dueño de la tarde) con la mejor sesión a mi criterio, sobre Mejores Prácticas para el diseño de IU en Android, en la que recorrió tips realistas sobre diseño de interfaz, bastante genéricos pero útiles, y con detalles específicos de la plataforma. Muy interesante la mención a utilizar Analytics for Mobile para medir qué funcionalidad usan los usuarios en la práctica, y cómo. Y un buen consejo con ejemplo incluido fue el de tener diseñadores profesionales (de interacción, agregaría yo, no gráficos solamente) en el equipo de desarrollo, algo que suele marcar la diferencia con una aplicación que se populariza en el Market y las que no lo hacen.