martes, 31 de enero de 2012

Video: HTML 5 para los no iniciados y curiosos, por Cristian Prieto (y más de Alt.NET Hispano)

Alt.NET Hispano

Los amigos de Alt.NET Hispano, coordinados por el infatigable Jorge Gamba, han publicado el video de otra reunión VAN (Virtual Alt.NET).

La sesión que menciono en en título, e incluyo debajo, es una de las últimas, pero aprovecho para hacer una actualización sobre la actividad del grupo, que sigue manteniendo un espectro de intereses bastante amplio, con centro en .NET y su ecosistema, pero llegando a montones de otros entornos, como Ruby, JavaScript o HTML5, como en este caso.

Como mencioné en un viejo post, Alt.Net Hispano realiza sesiones en vivo (utilizando Live Meeting) de entre 60 y 120 minutos con frecuencia semanal, a veces más de una por semana, que quedan disponibles en video posteriormente, sobre multitud de temas, siempre en español.

Com complemento a aquel viejo post, dejo una lista de las sesiones publicadas desde diciembre de 2010 hasta ahora (en total el grupo lleva publicadas ¡81 sesiones!).

Fecha Tipo Título Presentador
Duración
81 2012/01/28 VAN Introducción a fubuMVC Francisco Ruiz 1:56
80 2011/12/17 VAN HTML 5 para los no iniciados y curiosos Cristian Prieto 2:04
79 2011/10/08 VAN vNext, ASP.NET 4.5, Webmatrix 2 y MVC4... (Parte 2) Cristian Prieto 1:52
78 2011/09/24 VAN vNext, ASP.NET 4.5, Webmatrix 2 y MVC4... (Parte 1) Cristian Prieto 1:48
77 2011/08/06 VAN Node.js Hernán García 1:52
76 2011/07/23 VAN Conceptos de HTTP y Fiddler web debugger Leonardo Micheloni 2:13
75 2011/06/18 VAN Identity Providers, oAuth y Autenticaciones on-line Carlos Peix 
Nelo Pauselli 
2:16
74 2011/06/11 VAN Generación de código, con Essential Pedro Molina 2:35
73 2011/05/28 VAN Pex, Moles y Code Contract Esteban Gringerg 2:11
72 2011/05/27 VAN REST Services y WCF's Web Api Pablo Cibraro 
Gustavo Machado
José Romaniello
1:50
71 2011/05/21 VAN Reescribiendo ensamblados con Mono.Cecil José Romaniello 2:17
70 2011/05/13 ALT.NET Café Web Frameworks 1:34
69 2011/03/05 VAN Conform - Parte 2 Fabio Maulo 2:14
68 2011/02/26 VAN Audit (parallel model) con NHibernate 3 Fabio Maulo 2:04
67 2011/02/19 VAN CQRS Andrea Magnorsky 2:09
66 2011/02/12 VAN Estrategias para el manejo de sesión de NHibernate Parte II Nelo Pauselli
José Romaniello
2:09
65 2011/02/04 ALT.NET Café La Inmortalidad de la Medusa - Arquitectura 1:25
64 2011/01/29 VAN Programando con Windows Azure Angel "Java" López 2:10
63 2010/12/04 VAN Estrategias para el manejo de sesión de NHibernate Nelo Pauselli 2:16
62 2010/11/27 VAN ASP.NET MVC 3 & NuGet Cristian Prieto 1:59
61 2010/11/26 VAN Code Smells & Refactoring Martín Salías 2:02
60 2010/11/20 VAN Ruby on Rails Mario Chávez 1:54
59
2010/11/17
VAN
Entity Framework
Jorge Fioranelli
2:31
58 2010/11/16 VAN Cloud Computing Martín Salías 2:27

Hay muchísimo material para disfrutar, y les dejo el video de Cristian para abrir el apetito.

Unable to display content. Adobe Flash is required.

lunes, 30 de enero de 2012

Llegaron los monos a Heroku (+ video)

Mono en Heroku

Heroku es un servicio PaaS (Plataforma como Servicio), que permite publicar en la nube aplicaciones Ruby (el lenguaje soportado originalmente), Node.js, Scala, Java y Python.

La plataforma es fabulosa porque tiene un modelo de escala muy interesante, y es muy sencillo montar aplicaciones de manera gratuita por bastante tiempo, hasta que el volumen de tráfico y consumo de recursos requiere que se pase a un plan pago (lo que en muchos casos debería suceder cuando la aplicación ya está generando dinero).

Por otro lado, Heroku es una de la plataformas en su tipo con mayor simpleza para el despliegue y mantenimiento de las aplicaciones. Fuertemente basada en los flujos de trabajo de GIT, el sistema distribuido de control de versiones (creado por Linus Torvalds), para las plataformas soportadas directamente, desplegar una aplicación es tan simple como ejecutar desde la línea de comandos, parados sobre nuestro repositorio de GIT local:

git push heroku master

Y listo. Heroku se encarga de resolver todas las dependencias de acuerdo a las convenciones de cada plataforma (bundle en Ruby, NPM en Node, etc), lo que usualmente es muy rapido, y hace que nuestra aplicación esté disponible en segundos.

Bueno, esto ya debe ser conocido por la mayoría de los lectores de este blog. La novedad es que Ben Hall, un colega desarrollador que trabaja regularmente en ASP.NET y Rails, encontró la manera de desplegar en Heroku una aplicación basada en Mono (la implementación abierta y gratuita de .NET).

La aplicación de prueba está escrita en C# y basada en el framework Nancy (basado en Sinatra, un framework web minimalista para Ruby; Nancy es el nombre de la hija de Frank Sinatra). Como Ben explica en este post, este mecanismo no está soportado en lo más mínimo por Heroku, pero abre el camino para que eventualmente sea soportado (nótese que todos los lenguajes soportados además de Ruby fueron agregados en los últimos seis meses, aproximadamente).

Aunque el proceso es bastante experimental (requiere desplegar unas cuantas piezas de infraestructura sobre el stack Cedar de Heroku, que es el más nuevo de los sabores, y provee proceso sobre Ubuntu 10.04, y sobre el que corren todos los nuevos lenguajes.

La prueba final de que esto puede pasar de ser un experimento a algo más es que Chris Kemp, del equipo de Soluciones Técnicas de Salesforce.com (la compañía dueña de Heroku) grabó este video (en inglés) en el que muestra cómo poner en práctica la receta de Ben. Disfrutenlo, y esperemos que dentro de un tiempo podamos tener soporte más directo para Mono en Heroku.

viernes, 27 de enero de 2012

Ya llegó Ruby 3.2

Ruby On RailsYa se liberó una nueva versión de Ruby on Rails, uno de los más famosos frameworks para desarrollo web. De hecho, se liberó la 3.2 y casi inmediatamente la actual 3.2.1 resolviendo algunos temas menores aparecidos en cuanto la primer tanda de desarrolladores comenzaron a probar en masa.

Las características principales de la nueva versión son:

Modo de desarrollo y ruteo más rápidos

Mientras que las versiones anteriores de Rails re-evaluaban el código todo el tiempo durante el modo de desarrollo, la actual toma la idea de ActiveReload y solamente re-evalúa el código que haya sido modificado, acelerando mucho el ciclo de prueba-corrección-nueva prueba.

También se optimizó mucho la velocidad de resolución de rutas, incorporando el nuevo motor Journey.

Explicación de consultas

La nueva versión de ActiveRecord agrega un método explain que devuelve el detalle de resolución de una consulta, facilitando entender la forma en que el motor la resolvió para poder analizar la conveniencia de modificar índices o relaciones. De hecho, en el modo de desarrollo cualquier consulta que tarde más de cierto tiempo (medio segundo, por omisión) explica su resolución en la consola, como una medida de alerta que ya incluye el primer paso del diagnóstico.

Logging con etiquetas

La nueva versión de ActiveSupport brinda especial flexibilidad para poder dejar constancia en los logs de los dominios, usuarios, id de petición y otros datos que facilitan el análisis de operaciones o problemas en ambientes con muchos usuarios.

 

Los interesados en probar la nueva versión, pueden descargarla del sitio oficial. Como siempre, utilizando RVM se puede probar en paralelo con cualquier otra versión que tengamos instalada.

Si son usuarios de Mac (sobre todo si usan Mac OS Lion) ahorren tiempo leyendo las instrucciones del amigo Luis Petek sobre cómo sortear algunos detalles menores con ese entorno durante la instalación.

 

viernes, 20 de enero de 2012

C++ sigue siendo relevante (y está de moda de nuevo)

El Mapa de C++

Mientras que el Assembler (mi primer lenguaje de programación) perdió gran parte del brillo salvo para quienes programan para una plataforma exclusiva de hardware, C y C++ siguen siendo los lenguajes preferidos para gran parte del desarrollo de aplicaciones que requieren alto desempeño y optimización de recursos.

Es cierto, son lenguajes complejos y un tanto problemáticos (un gran poder conlleva una gran responsabilidad, decía el tío de Spiderman), y en la práctica pocas aplicaciones se escriben completamente en C++ pero hoy día pocas aplicaciones se escriben en un único lenguaje, de todas maneras (entre manipulación de datos, scripting, lógica, etc, casi siempre usamos dos o tres sin darnos cuenta). En el caso clásico de los juegos, por ejemplo, los motores de animación, detección de colisiones, etc, muchas veces se escriben en C++ mientras que la lógica final suele escribirse a más alto nivel, en lenguajes como LUA o Python.

Pero C/C++ siguen manteniendo un amplio reinado (como puede verse en este mapa creado por Elena SagalaevaVladimir "Jim" Gorshunin), y su avance sigue siendo importante aun cuando usamos lenguajes dinámicos o compiladores a demanda (estilo Java/.NET), porque los motores por debajo son cada vez más eficientes gracias a los progresos en C++, en algún punto. También, el auge de los dispositivos móviles (teléfonos y tabletas), ha hecho que la economía de recursos y el tiempo de respuesta  (sobre todo en interfaces multitouch) sea nuevamente un tema crítico.

Entre otras cosas, estos lenguajes siguen siendo casi únicos en la capacidad de determinar el consumo de ciclos de procesador y memoria en forma explícita, y los agregados a C++ 11 lo han hecho un poco más flexible y -un poco- menos peligroso, al utilizar técnicas modernas como inferencia de tipos, mejoras en el soporte de genéricos, inicializadores, expresiones lambda, todo un nuevo modelo para ejecución de tareas en múltiples hilos, incluyendo variables por hilo de ejecución, soporte para recolección de memoria, y muchísimas otras características basada en la biblioteca estándar, como soporte de tuplas y tablas hash, expresiones regulares, punteros inteligentes, meta-programación a través de plantillas, y muchísimo más.

Para una lista completa de novedades sobre el estándar aprobado recientemente, incluyendo preguntas frecuentes, pueden leer este documento mantenido por el creador de C++, Bjarne Stroustrup.

Finalmente, demostrando que el interés por el código nativo y la nueva versión de C++ es generalizado entre los participantes más activos en la industria, en los primeros días de febrero se realizará en Redmond, Washington, EEUU (dentro de uno de los auditorios del Campus de Microsoft) la conferencia Going Native 2012, que cuenta con un interesantísimo grupo de expositores (vean debajo los nombres y las empresas de las que provienen). El evento podrá ser presenciado en vivo o más tarde a demanda, desde la misma página.

Día 1 (2 de febrero)

Dia 2 (3 de febrero)

Espero que los programadores nativos los disfruten.

viernes, 30 de diciembre de 2011

Balance del año en Code & Beyond

Será porque somos geeks y nos gustan los números y las estadísticas por lo que creo que terminando el año es un buen momento para hacer un resumen de la actividad de este blog.

Como en el post que publiqué al llegar a las 10.000 páginas vistas, en este les contaré algunos datos sobre ustedes, lectores, en general, para que cada uno vea si se siente representado o no, y sepan que no están solos, después de todo.

Como la edad del blog es apenas superior al año (arrancó a fines de octubre de 2010) los números son de la historia completa, no de los últimos 12 meses (sino 14).

Los números totales

En total publiqué hasta hora 190 posts (uno de ellos, hace poco, de un invitado, Carlos Peix), que tuvieron en total (hasta el momento en que escribo esto) 40.795 vistas.

Pueden ver la distribución en el tiempo en este gráfico:

Evolucion

Los post más leídos

Del primero supongo que tendrá que ver con el auge del tema, el segundo no me extraña porque Diego es un orador excelente, y del tercero supongo que hubo en su momento poca información (y aun hoy la hay, hasta que salga una Beta de Windows 8).

¿Cómo llega la gente al blog?

Es claro que la gente llega más por estos lares buscando algo, pero Twitter mantiene su influencia:

Referentes

Estimo que debería sumarse el tráfico proveniente de t.co (un servicio de abreviatura de URLs que se utiliza fundamentalmente desde los tweets) al de Twitter mismo, pero obviamente si sumamos todos los Googles regionales, queda claro lo que ocurre, aunque también empezamos a ver la distribución geográfica de los lectores. Me llamó la atención que haya una cantidad de gente (aunque sea menor) referida por Facebook, donde no participo activamente. Supongo que será en parte ecos de Twitter replicado por allí.

Como la mayoría llegan al blog a través de Google, es interesante ver qué es lo que buscan:

Búsquedas

¿De dónde vienen los lectores?

La mayoría de los lectores siguen siendo compatriotas míos, y sigo considerando que mucho del tráfico que figura proveniente de EEUU puede en realidad venir de América Latina a través de proxies o mecanismos que desvían ese dato. La sorpresa son los ucranianos. З Новим Роком всіх!

Distribución Geográfica

Navegadores y Sistema Operativo

Desde este punto de vista se sigue notando una distribución similar a marzo. Los desarrolladores (que asumo son mayoría en esta audiencia) siguen usando predominantemente FireFox, con Chrome acercándose cada vez más, y Explorer reduciéndose lentamente, a pesar de que la mayoría sigue usando Windows.

Los usuarios de Mac, de todas maneras, subieron de un 11% en marzo al 14% actual, y los de *nix sumados subieron de 10% en marzo a 11%. Trataré de investigar cuáles son los "otros Unix", ya que llama la atención la cantidad (parece que no soy el último fanático de FreeBSD, después de todo). También empezaron a ser mayores los lectores desde iOS y Android, lo que resulta natural.

Navegadores

y

Sistemas Operativos

Como siempre, aprovecho para agradecer a los lectores por la paciencia y espero que el contenido les siga resultando útil. Sugerencias, quejas o consejos espirituales pueden ser enviados vía Twitter a @CodeAndBeyond.

Espero que hayan tenido un buen año y les deseo ¡lo mejor para el próximo!