miércoles, 2 de octubre de 2013

Se viene RubyConf AR el 27 y 28 de noviembre (+ video)

RubyConf AR

La grandiosa mitad de conferencia de Ruby rio-platense (la otra mitad es la RubyConf UY, que se hace en Montevideo por marzo) ya tiene fecha y unos cuantos oradores anunciados.

Entre las grandes figuras está mi amigo y Maestro Angel "Java" López, con foto y todo en el sitio, lo que es poco frecuente.

Y por algún error administrativo, me han aprobado mi propuesta y estaré facilitando el clásico Yoseki Coding Dojo en el Ruby Fun Day que se realiza el 26 de octubre (un día antes) en la Universidad de Palermo.

La conferencia principal será en Ciudad Cultural Konex, como en el 2011.

Como siempre, RubyConf (tanto en Buenos Aies como en Montevideo) es un evento organizado con amor y pasión, que se nota en cada detalle, desde las camisetas hasta la atención permanente, el ambiente entre asistentes y oradores, las reuniones antes, durante y después del evento, y la magia permanente durante todos los días.

El contenido es muy variado, desde temas súper técnico a cuestiones meteorológicas y más de negocios, por lo que todos tienen algo interesante, pero los encuentros entre charlas son una parte enorme del espíritu de esta conferencia.

Dejo de regalo un video divertidísimo de la charla del amigo Jano Gonzalez, "¿Dónde están mi interfaces?", el año pasado:

jueves, 26 de septiembre de 2013

TDD rocks! con el Maestro Angel "Java" López (+videos)

Desde hace un par de meses el Maestro comenzó a grabar unos Hangouts sobre TDD, mostrando ejemplos de algunos de sus proyectos reales, mientras implementa funcionalidades.

Los vídeos no están en español, sino en Anglish (pueden aprender algo de este dialecto en este post previo), pero si hacen click en su nombre en YouTube encontrarán otros que tiene grabados en español. Me pareció particularmente interesante esta serie porque sigue un hilo temático.

Recuerden que además de multitud de conocimientos compartidos en Twitter, el Maestro también publica un post diario (al menos) los 365 días del año, en alguno de sus blogs:

¡Que disfruten la serie!

miércoles, 25 de septiembre de 2013

Se viene Ágiles 2013, el mes próximo en Lima, Perú

NewImage

Para los que no se enteraron, Ágiles 2013, la 6ta conferencia latinoamericana de metodologías ágiles llega de vuelta a Lima (donde se realizó en 2010), con grandes expectativas.

La cita es el 10, 11 y 12 de octubre en la Cámara de Comercio de Lima, y tendremos:

El registro ya está abierto, así que espero ver a muchos por allá. Pueden buscarme, claro, en el stand de Kleer.

Les dejo un saludo de toda la tropa del último Agile Open Medellín invitando al evento (¡sólo 25 segundos!):

lunes, 23 de septiembre de 2013

¡Opa! ¿Y este framework?

Opa Up and Running

El framework Opa para JavaScript es más que un framework. En realidad, es un lenguaje + una librería, pero con un objetivo bastante ambicioso: Opa intenta cubrir con mismo lenguaje el desarrollo del lado cliente, servidor y el acceso a base de datos.

Según la introducción del proyecto en su repositorio de GitHub (traduzco):

Opa es un framework avanzado para JavaScript, compuesto de dos partes:

  • Un compilador para el lenguaje Opa, que presenta una sintaxis de estilo JavaScript pero con muchas mejoras;
  • Una librería JavaScript, que se usa en tiempo de ejecución.

Siguiendo la tradición de recorrer "Raros lenguajes nuevos", lo que más me interesó de Opa es el lenguaje mismo, y ese objetivo ambicioso, así que veamos algunas características:

Opa es open source (la librería con licencia MIT y el compilador GPL 3) y se autodefine como un lenguaje "full stack" ya que cubre todas las capas, y promete soportar aplicaciones seguras y escalables.

Las aplicaciones terminan ejecutándose sobre Node.js y usan MongoDB para el manejo de datos.

Soporta nativamente HTML5 y CSS y trata de automatizar la comunicación cliente/servidor con Ajax/Comet, y brinda un modelo de programación orientado a eventos y no-bloqueante (básicamente, respeta el modelo JS, pero subiendo el grado de abstracción).

Una de las promesas más atractivas de Opa es que se puede programar sin pensar (a priori) en la distinción entre cliente y servidor. El compilador analiza y distribuye el código, haciéndose cargo de toda la comunicación. Posteriormente, sin embargo, uno puede optimizar algunas situaciones utilizando los modificadores client y server.

Veamos el clásico "Hola, Mundo" en Opa:

Server.start(
   Server.http,
   { title: "Hola, Mundo"
   , page: function() {<h1>¡Hola, Mundo!</h1> }
   }
)

El programa se corre (habiendo instalado el compilador y las herramientas, obviamente) con el comando: opa hola.opa -- y la aplicación puede navegarse en http://localhost:8080

Algo interesante de Opa es que a pesar de compilar a JS (algo ya recurrente) es un lenguaje de tipos estrictos, aunque no hace falta declararlos porque se utiliza inferencia. Sin embargo, el compilador informa de cualquier tipo de violación y es bastante inteligente al sugerir incluso las opciones para solucionarlas.

Veamos un ejemplo más, con acceso a datos. Este ejemplo de los tutoriales cuenta clics y los almacena en una tabla:

import stdlib.themes.bootstrap

database int /counter = 0;

function action(_) {
    /counter++;
    #msg = <div>Thank you, user number {/counter}!</div>
}

function page() {
    <h1 id="msg">Hello</h1>
    <a class="btn" onclick={action}>Click me</a>
}

Server.start(
    Server.http,
    { ~page, title: "Database Demo" }
)

Como puede notarse en el ejemplo de arriba, el HTML queda completamente embebido como parte del lenguaje, sin necesidad de usar comillas para los literales, que además soportan interpolación sencilla. 

Obviamente, como Opa está basado en Node, también es posible usarlo en Linux, FreeBSD, OS X y Windows, y estando disponibles todos los fuentes, es posible compilarlo en otras plataformas también.

También tiene instrucciones para desplegar fácilmente aplicaciones en plataformas como Heroku, Cloud Foundry y otras, y existen packs para varios editores como SublimeText, Emacs, Vim, Eclipse, GEdit y otros.

Esto es una brevísima introducción porque realmente hay mucho por investigar en este interesante lenguaje. Si alguien profundiza, me encantaría que me cuente. Lo mismo haré por mi lado.

Y casi me olvido: como pueden ver en la ilustración más arriba, hay un libro publicado por O'Reilly.

sábado, 21 de septiembre de 2013

Charlemos de tecnología, ¿ta?

Surculus Fructum

Arrancó un promisorio podcast de tecnología en español, de los amigos uruguayos PoTe y Cuervo, bastante conocidos en la comunidad Ruby rioplatense.

Más allá de Ruby, porque son inquietos como la mayoría de los que andan por este blog, se juntan cada tanto a hablar de tecnología, y grabar un podcast sobre un tema o dos, y prometen invitados.

No se pierdan Surculus Fructum, el podcast. Ahí en el sitio pueden suscribirse mediante feed o iTunes, bajar el audio en varios formatos o escucharlo en la página, pero les dejo el primer episodio acá nomás para que si quieren escuchen un ratito y me crean que está bueno.

Destacable, también aunque esperable de esta gente, el hecho de que el sitio es una pinturita de HTML5 y con un diseño muuuuy minimalista y prolijo.

A prestar orejas: