Hackathon GWT y AppEngine

El 28 septiembre a las 18:00 se llevará a cabo un hackathon sobre GWT y AppEngine en la UPC. Bajo el ingenioso título de "Duelo de Geeks", Gabriel Praino (Premier League Guru @ Globant) nos invita a poner en práctica nuestros conocimientos sobre estás tecnologías de Google, competir, comer, beber, aprender y pasarnos un buen rato.

Más información e inscripcción:

* http://www.webcongress.com/hackathon/barcelona/

Presentación de Tynamo en el Citiwork

Este Viernes 20 de Mayo haré una presentación de Tynamo en el Citiwork.

La gran ventaja del coworking no es el compartir los gastos de un espacio y servicios de oficina. El valor real del coworking está en el incentivo de las oportunidades de generar redes de colaboración. En este contexto me encontré discutiendo apasionadamente con la gente de CSS Iberica y Blinzy Studios sobre como cada empresa utiliza la tecnología para solucionar unos problemas que se me antojan muy similares. 

La discusión fue ganando masa hasta tal punto que hemos decidido dotarla de un entorno más formal e invitar a otras empresas e interesados a participar de ella. El proximo viernes 20 de Mayo de 10:00 a 13:00 nos reuniremos en la sala C del Citilab a mostrarnos las entrañas de nuestros proyectos, presentar nuestras tecnologías y buscar la formar de aunar y ahorrar esfuerzos. Yo estaré presentando Tynamo en general y en particular mostrare 2 cosas:

  • Cómo usamos Tynamo para hacer prototipos rápidos.
  • Cómo modificar Tynamo para adaptarlo a cualquier estrategía de persistencia (basicamente SQL vs NoSQL).

La entrada es grauita y abierta a todo el mundo. 

Más información: http://www.citilabpro.eu/citiwork/2011/05/18/citiworking/

 

 

 

Coworking Friday

Mañana Viernes 13 de Mayo se organiza en el Citilab un día de coworking especial. Citiwork, CatDroid y Agile-Barcelona nos invitan a trabajar un día desde fuera de la oficina en un espacio abierto y de colaboración. Además aprovechando que está el Google IO contaremos con un lugar para ver las sesiones más interesantes y comentar las novedades.

Yo en particular estaré todo el día disponible para hacer pairing con quien quiera.

 

Más información: Coworking Friday - 13 de Mayo

Barcelona ALM Open Space 2011

El próximo 4 de Junio se celebrará un nuevo Open Space esta vez dedicado al Application Lifecycle Management (aka: ALM). Nos juntaremos nuevamente en el siempre bien predispuesto Citilab y contaremos con la participación de: Agile-Barcelona, CatDotNet y Java-Hispano. La idea es juntarnos a discutir sobre el ciclo de desarrollo, montar algún servidor de CI, sacar a lucir nuestros toolchains y presumir de nuestros ecosistemas de software. Y todo de una manera ágil, por supuesto!

Yo tengo ganas de dedicarle el día a implementar un Gradle build para iOS, pero solo si encuentro algún pairing partner interesado.

La incripción al evento puede hacerse desde:

Más información:

 

tapestry-routing 0.0.1 released!

Here comes yet another beautiful little module called tapestry-routing.

In a nutshell, tapestry-routing allows you to provide your own custom mapping between Tapestry pages and URLs.

Did you ever wanted to change the order of the path params in an URL? now you can!

Let's say you have a page: pages.projects.Members which have 2 parameters in its activation context: (Long projectId, Long memberId) and you want the URL for that page to look like /projects/1/members/1 Just add the @At annotation to you page, like this:

package ...pages.projects;
@At(" /projects/{0}/members/{1}")
public class Members {
void onActivate(Long projectId, Long memberId)

That's it!
tapestry-routing Dispatcher will take care of recognizing incoming requests and dispatching the proper render request
tapestry-routing PageRenderLinkTransformer will do the rest of the work, it will transform every Link for a page render request formatting it according to your route rule.

We really need some feedback, so please give it a try:http://tynamo.org/tapestry-routing+guide

Enjoy!

Tynamo, viejas novedades.

Estoy preparando el anuncio de un nuevo módulo de Tynamo  y esto me da un buen pie para hablar del estado de Tynamo en general.

Desde hace un tiempo ya que Tynamo ha dejado de ser solamente un framework orientado a CRUD, de a poco hemos ido incoporando pequeños módulos orientados principalmente a integrar Tapestry5 con otras librerías de terceros o a proveerlo de pequeñas funcionalidades extra. Todo esto con el fin de armar nuestro propio full stack web framework, pero siempre manteniendo la independencia y simplicidad de los módulos por si se quieren usar por separado.

Al día de hoy nuestros módulos son:

  • tapestry-conversations
  • tapestry-exceptionpage
  • tapestry-hibernate-seedentity
  • tapestry-jbpm
  • tapestry-jpa
  • tapestry-jpa-seedentity
  • tapestry-model
  • tapestry-resteasy
  • tapestry-security
  • tapestry-watchdog
  • tynamo-federatedaccounts

tapestry-model es el módulo principal de Tynamo, ya vamos por la segunda versión y está en producción desde hace un tiempo. De la mano de la Tapestry 5.2 han llegado muchas nuevas features, una de las principales es la validación usando el estandar JSR303, gracias a este estandar la integración de otros proveedores JPA distintos de Hibernate se hace mucho más fácil. Pierce T. Wetter, el autor original de tapestry-jpa se ha unido al equipo de Tynamo y junto con Piero Sartini, quien se ha encargado del módulo tapestry-model-jpa, han logrado que finalmente Tynamo sea completamente independiente de Hibernate.

tapestry-security era el módulo más esperado y en poco tiempo se ha convertido en el más popular. tapestry-security es una integración de Tapestry5 con Shiro. Venimos trabajando en un módulo de seguridad que sea independiente de Spring desde la época de Trails 1.2 cuando Shiro era conocido como JSecurity, hemos acompañado la evolución y los cambios de nombre de Shiro (Jsecurity, Ki , Shiro) y hemos ido madurando el código con ellos. Nuestra primera implementación era un port de tapestry-acegi, basicamente era el mismo código pero en lugar de usar Acegi usábamos Shiro. La solución era muy básica con una sola anotación de seguridad (@Secured) y una estructura de contribuciones a los filtros no muy simple (aunque aún así muy dinámica y flexible) que imitaba las funcionalidades de Acegi sin aportar nada nuevo. Gracias a la contribución de Valentin Erastov (aka: xibyte), rápidamente ampliamos la cantidad y variedad de las anotaciones de seguridad manteniendo esa potente simplicidad que diferencia a Shiro de Acegi. Con lo aprendido en el desarrollo de tapestry-security fuimos a hablar con la gente Shiro. Nos recibieron con los brazos abiertos, Kalle (mi co-lead) se hizo commiter de Shiro y las anotaciones que habíamos creado para tapestry-security pasaron a formar parte del core de Shiro.

Además, Kalle también ha sido nombrado commiter en Tapestry, así que ahora tenemos una pata dentro de Tapestry y otra dentro de Shiro lo que nos deja en una excelente posición para continuar mejorando nuestros módulos.

 

 

 

 

tynamo-federatedaccounts 0.0.1 released!

Para aquellos utilizando el módulo de Tynamo tapestry-security hay un nuevo add-on, llamado tynamo-federatedaccounts, que permite autentificación de usuarios via proveedores externos como Facebook, Twitter, Google, etc...

Esta primera versión de tynamo-federatedaccounts solo incluye la integración con Facebook, pero Google y Twitter están en camino.

A principios de 2010 sufrí en carne propia la pesadilla de la integración con lo que en aquel entonces se llamaba Facebook Connect. Era mi primera aproximación a Facebook (de hecho no tenía ni cuenta de usuario) y pasamos varios meses sufriendo la documentación, los casos extremos y la integración con nuestro modulo de seguridad. Toda esa sangre, sudor y lágrimas hoy se ve resumida en este nuevo add-on, que es tan pero tan fácil de usar que yo no quería liberarlo.

Más información:

 

Espero que les sea útil.

PD:- He estado un poco negligente con el anuncio de los releases de tynamo aquí en el blog. Tenemos varios módulos nuevos e incluso tapestry-security está por sobrepasar en popularidad a nuestro módulo principal. En breve haré un post resumen para ponerme al día.

Barcelona Mobile Open Space

El sábado 19 de Marzo se celebrará en el Citilab un Open Space dedicado al agilismo y al desarrollo de aplicaciones para móviles. Es una iniciativa conjunta entre Agile Barcelona y Catdroid, dos comunidades siempre muy bien dispuestas a esparcir conocimiento y fomentar el encuentro. Otras comunidades de desarrolladores de plataformas móviles han sido convocadas para que sea un evento "muy" heterogéneo. Yo me he postulado (humildemente) para representar a webOS y TabletOS. Además de las oportunidades de networking y aprendizaje, para mi es una excelente oportunidad para experimentar y observar los efectos de la polinización cruzada entre comunidades.

La inscripción ya está abierta y pueden ver más detalles del evento (y el formulario de registro) en la página de Eventbrite!

 

ScrumWeek Madrid 2011

La semana del 4 al 8 de Abril los amigos de Plain Concepts y Proyectalis organizan la ScrumWeek, una semana de formación e intercambio de experiencias sobre la implementación de metodologías Ágiles en la empresa. El objetivo de ScrumWeek es proporcionar una formación competitiva y de calidad de una forma modular y flexible, de tal modo que los interesados puedan optar por seguir la semana completa, sesiones específicas o un programa diseñado a medida.  ScrumWeek contará con tres tracks separados en los que habrá sesiones sobre Scrum, Coaching de equipos Ágiles, Agile Management (gerentes Ágiles), cultura corporativa Ágil, un Scrum Clinic con dos grandes como Ángel Medinilla y Rodrigo Corral, unit testing, visual studio, certificación PSD… En fin, una iniciativa super pionera en España y una muy buena oportunidad para ampliar y/o refrescar conocimientos. La inscripción ya está abierta y las plazas (limitadas) ya se están cubriendo.

 

ScrumWeek 04-08 Abril 2011, Madrid.

 

Maybe it’s my fault.

Maybe it’s my fault.
Maybe I led you to believe it was easy, when it wasn’t.
Maybe I made you think my highlights started at the free throw line, and not in the gym.
Maybe I made  you think that every shot I took was a game winner.
That my game was built on flash and not fire.
Maybe it’s my fault that you didn’t see that failure gave me strength.
That my pain was my motivation.
Maybe I led you to believe that basketball was a god-given gift and not something I worked for – every single day of my life.
Maybe I destroyed the game.
Or, maybe you are just making excuses.

Enormes palabras de uno de mis maestros (Michael Jordan) acerca del basket, del desarrollo de software ágil y de la vida en general.

Become Legendary!