miércoles, 25 de julio de 2012

Firefox OS: ¿hace falta otra plataforma para móviles? ¡Tal vez si!

Firfox OS

En julio del año pasado la fundación Mozilla anunció el arranque de un nuevo proyecto llamado "Boot to Gecko" (B2G), en referencia a la idea de un sistema operativo orientado a móviles que iniciara directamente Gecko, el motor visual detrás de Firefox.

Semejante idea, en un mundo de dispositivos dominado por iOS y Android, en el que aún a Microsoft le está costando entrar, parece disparatada, pero Mozilla no tiene como objetivo necesario ganar mercado, sino impulsar mayor adopción de estándares web en el terreno de mayor crecimiento actualmente, que son celulares y tablets.

La característica fundamental del nuevo sistema operativo, actualmente conocido como Firefox OS (aunque encontrarán más referencias aún a B2G) es que está basado en un kernel de Linux, una capa de abstracción para el hardware (llamada "Gonk") y por encima el motor del navegador Gecko, soportando HTML, CSS y JavaScript que es sobre lo que corren todas las aplicaciones. Y esto significa todas, como la aplicación principal del teléfono, la lista de contactos, portada, etc.

El entorno de ejecución sobre el que corren las aplicaciones se llama Gaia, y para los que quieran probarlo, pueden obtenerse los builds nocturnos de Gaia clonando la cuenta de GitHub (git://github.com/mozilla-b2g/gaia; los builds corren en Mac OS, Linux y Windows). Hay un guía completa sobre el tema, llamada Gaia Hacking, en la Wiki de Mozilla.

Básicamente Gaia ofrece a los desarrolladores la posibilidad de producir aplicaciones web con el stock estándar de HTML5, más un API JavaScript que les da acceso a características especiales del dispositivo.

El otro factor importante es qué nivel de adopción se pueda esperar de esta plataforma, y en ese sentido es alentador ver que el sistema (inicialmente apuntando a hardware muy económico basado en Snapdragon) está siendo adoptado para próximas ofertas de varias operadoras europeas como Deutsche Telekom, Etisalat, Smart, Sprint, Telecom Italia, Telefónica y Telenor. De hecho, en una conferencia de febrero de este año en España, Telefónica y Mozilla mostraron una versión preliminar del sistema corriendo en dispositivos Galaxy II de Samsung, que vienen nativamente con Android. Otras organizaciones soportando directamente el proyecto son Adobe y Qualcomm (más información en esta gacetilla de prensa).

Como es recurrente en todo proyecto de Mozilla, absolutamente toda la plataforma es abierta, permitiendo a los operadores o fabricantes implementar una capa mínima que provee acceso a sus recursos propietarios. Más allá de eso, todo el diseño del sistema está alineado a respetar los mismos estándares web que se impulsan en los navegadores de escritorio, unificándolos aún más, y con un claro objetivo de que otros jugadores de la industria como Apple, Google o Microsoft sigan adoptando ese camino.

martes, 24 de julio de 2012

Videos: 17 sesiones de ASP.NET al precio de una

aspConf

La semana pasada avisé (el segundo día) sobre el evento en línea aspConf, que se extendió por dos días y varios tracks simultáneos.

Como era de esperar, las sesiones ya están disponibles. Hay 17; no se si son todas.

Uno de los principales problemas de este evento, en su edición en línea, fue seguir utilizando Live Meeting, que a mi juicio es una plataforma obsoleta y con muchos problemas, que va en contra de la apertura que Microsoft muestra en otros aspectos. Para empezar, no funciona bien en Mac o en cualquier cosa que no sea Windows, y tuve varios problemas para ver alguna sesión incluso en Windows 8.

A esta altura, uno espera de un evento en línea el llegar a una página y verlo, sin mucho más requerimientos ni tener que bajar ninguna plataforma cliente. Irónicamente, se dieron cuenta de algunas de las limitaciones de Live Meeting porque en paralelo con ese mecanismo, había un chat abierto a través de la web para la interacción con el público.

Pero dejemos de lado las críticas y vamos al contenido, que es lo que cuenta. Las sesiones ya está disponibles para ver directamente en el navegador (o descargarlas, incluso disponibles en múltiples formatos) en la página del evento en Channel 9.

Dejo de regalo las dos keynotes, a cargo de los Scotts: Guthrie y Hanselman.

Windows Azure

One ASP.NET

lunes, 23 de julio de 2012

Buildpacks: Heroku para todos y todas

Buildpacks

Heroku, una de las plataformas como servicio (PaaS) más exitosas e innovadoras, es desde hace tiempo una plataforma políglota, soportando oficialmente Ruby (el lenguaje con que se inició), pero también Node.js, Clojure, Java, Python y Scala.

Pero en realidad eso no es todo. Actualmente soportan una variedad enorme de lenguajes, a través del mecanismo que generaron para soportar cualquiera, llamado Buildpacks. Aunque Heroku desarrolla activamente los buildpacks mencionados más arriba, la comunidad puede (y de hecho lo ha hecho) desarrollar otros para soportar todo tipo de lenguajes o entornos, como puede verse en este listado, que incluye algunos como Common Lisp, Emacs, Erlang, Go, Jekyll, JRuby, Lua, Perl, PhantomJS y otros.

¿Cómo funcionan los buildpacks? La última versión de la plataforma base de Heroku (llamada Cedar) provee un entorno de ejecución virtualizado que básicamente es una abstracción de los servidores, con los servicios de red, el sistema de administración y monitoreo, y claro, GIT. Sobre esto, para soportar cualquier lenguaje, debe haber un buildpack que utiliza GIT hooks para dispararse al recibir actualizaciones sobre un repositorio, como muestra el siguiente diagrama de ejemplo:

Heroku Buildpacks

Así, al hacer git push heroku master, se puede notar que después de recibir la actualización completa del repositorio, se dispara el buildpack correspondiente a la aplicación, según se indicó al ejecutar el comando heroku create, o posteriormente con la variable de entorno BUILDPACK_URL.

Construir buildpacks no es demasiado complejo. Se pueden incluir en ellos binarios u otras dependencias necesarias por sobre la plataforma, y para comenzar basta con crear un fork del ejemplo Hello Buildpack (no podía llamarse de otra manera), leer la documentación del API, y eventualmente participar en el foro junto a otros colegas.

Finalmente, los buildpacks pueden utilizarse fuera de Heroku, como en el caso de otros proveedores que ya los soportan, o utilizando Mason, en cualquier tipo de entorno.

jueves, 19 de julio de 2012

32 Minutos: el podcast sobre desarrollo en Español (+ video)

32 minutos

Cada tanto uno descubre este tipo de recursos maravillosos que genera la dedicación de nuestra comunidad de programadores alrededor del mundo, y se sorprende de no haberse enterado antes, como si nos despertásemos en el tren y nos diéramos cuenta que nos hemos pasado varias estaciones...

Esto me ocurrió al ver un Tweet del colega David Vilchez mencionando una conversación con otros amigos como Matias Woloski y José Romaniello (luego se suma Hernán García), charlando sobre Node.js.

Al buscar la grabación descubro que David tiene este podcast llamado 32 minutos ¡desde hace más de 4 años! Es cierto que no tiene una regularidad muy grande, pero el material es excelente. Recorriendo el sitio descubro que David comenzó el proyecto con Hadi Hariri (otro reconocido colega, frecuente miembro de Alt.NET Hispano y actualmente trabajando para JetBrains). Hoy David es acompañado en sus andanzas por Andrea Magnorsky (aka roundcrisis).

El material es muy bueno, y haciendo gala de orgullo nerd, catalogado por temporadas, como si fuese una serie de TV (con nomenclatura BitTorrent).

Les dejo aquí la lista compilada de las tres primeras temporadas (quedando a la espera de muchas más), y para quienes usen algún administrador y reproductor de podcasts (yo uso Listen en Android) dejo también el feed RSS para suscribirse. Otra manera de mantenerse al tanto de nuevos episodios es siguiéndolos en Twitter. Aunque la lista tiene los directos a los mp3, les recomiendo volver al sitio del podcast donde encontrarán links a muchos de los recursos mencionados en el programa.

1era temporada

01x01 Sharepoint con Gustavo Vélez

02x01 Scrum con Xavi Albaladejo y José Manuel Beas

03x01 Azure con David Salgado

04x01 Buenas prácticas con Hadi Hariri y David Vílchez (y nadie más ;))

05x01 Revisión a los grupos de usuarios y entrevista desde la CodeCamp 2009

06x01 Nhibernate con Fabio Maulo

2da temporada

01x02 BDD con Jorge Gamba

02x02 Software Craftsmanship con Andrea Magnorsky (aka roundcrisis)

03x02 Mock, Stub, Spy y otras hierbas con Carlos Ble

04x02 [Screencast] CQRS con Andrea Magnorsky (aka roundcrisis)

3ra temporada

01x03 NOSQL con José F. Romaniello

02x03 node.js con José F. Romaniello, Matias Woloski y Hernan Garcia

Como verán, el último episodio de la 2da temporada es un Screencast el lugar de sólo audio, así que aprovecho para incluirlo aquí debajo (~50 minutos).

Muchísimas gracias a David y compañía por estos programas.

miércoles, 18 de julio de 2012

Hoy: Segundo día de AspConf en vivo

aspConf

Perdí ayer la oportunidad de avisar el primer día de la conferencia virtual sobre ASP.NET llamada AspConf.

Pero para los interesados, hoy pueden sumarse al segundo día, a partir de las 11 de la mañana (hora Argentina - 7 am horario del Pacífico).

Aunque todavía no vi disponibles los vídeos del primer día, estimo que todos quedarán en línea brevemente.

Este evento virtual es bastante grande, con 6 tracks en paralelo, y 5 slots de una hora y media cada uno, más charlas principales (keynotes) de una hora; la keynote de ayer estuvo a cargo de Scott Guthrie, la de hoy estará a cargo de Scott Hanselman.