Nuevos cursos técnicos

Ya estamos de vuelta de las vacaciones, esta vez con mas fuerza que nunca. Las vacaciones son un buen momento para reflexionar y plantearse nuevos retos y metas para el resto del año. Hay muchos estudios que demuestran que la mayor tasa de divorcios se producen en septiembre, así como un mayor número de cambios laborales.

La inicativa

Pero no vamos a hablar ni de divorcios ni de cambios de trabajo, vamos hablar de la aventura en la que nos hemos embarcado junto con el gran Enrique Amodeo. Y es que pensamos que el sector tecnológico nacional está en continuo movimiento y, a veces, cuesta mucho salir de la rutina del día a día y aprender cosas nuevas. Por ello, vamos a lanzar una serie de cursos cortos sobre temas tecnológicos muy punteros que permitan aprender conocimiento de forma rápida a precios asequibles ya que sabemos que, en plena crisis, quizás no sea el mejor momento para embarcarse en este tipo de iniciativas pero pensamos que precisamente en nuestro sector de la tecnología existe mucho interés en mejorar para poder avanzar profesionalmente.

Los cursos

Así que sin mas dilación os presento los dos cursos con los que iniciamos:

JavaScript Profesional, donde podréis conocer y practicar las principales características del lenguaje que se va a convertir gracias a HTML5 en uno de los lenguajes mas importantes de los próximos años. Este curso lo imparte Enrique Amodeo.

 

Tenéis toda la información (precio, temario, lugar de impartición) de este curso aquí.

 

- Iniciación a Git:   Git es un sistema de control de versiones distribuido, gratuito y de código abierto, diseñado para manejar, con velocidad y eficiencia, desde los más pequeños proyectos hasta los más grandes. Es independiente del lenguaje y la plataforma ya que cuenta con versión para Windows, Linux y MacOS. Es lo último en repositorios y es el núcleo en el que está basado Github (http://github.com). Este curso lo imparte Israel Alcázar (yo mismo).
Si os parecen interesantes tenemos descuentos especiales.

 

Tenéis toda la información de este curso aquí

Precio

Los precios de cada curso son los siguientes:

  • Early Bird: 150 euros (hasta el 11/10/2012).
  • Regular: 200 euros (hasta el inicio del curso)

Descuento de un 10% por la compra de 4 o mas tickets.

Descuento de 10 € en cada curso si te inscribes en ambos cursos. Para optar a este descuento necesitas un código de descuento que puedes solicitar en info.eiar@gmail.com.

Decisiones que ayudan

Queremos sumarnos a la iniciativa #DecisionesQueAyudan de los chic@s de Deiser . Por ello, SE RESERVA 1 PLAZA GRATIS PARA UNA PERSONA DESEMPLEADA. Para poder optar a esta plaza debes enviarnos tu Currículum Vitae y demostrar que te encuentras en situación de desempleo. Solo se aceptaran personas que cumplan los mínimos conocimientos necesarios para aprovechar el curso mediante su CV.

Todas las personas candidatas interesadas en asistir bajo estas condiciones deberán enviar un mail a info.eiar@gmail.com. Nos pondremos en contacto con las personas inscritas en estricto orden de inscripción para solicitarles los documentos que acrediten el cumplimiento de los requisitos mencionados anteriormente.

Esperamos sean de interés ambos cursos. Esperamos en un futuro poder ofrecer alguno mas. Cualquier sugerencia sobre cursos que os gustaría ofreciéramos no dudes en enviarnos un mail a info.eiar@gmail.com
Publicaremos puntualmente el resto de formaciones en https://eiar.stagehq.com

 

¡Feliz vuelta al trabajo!

Gobiernos abiertos y datos públicos – Material

Hace unos meses (muchos si) organizamos una charla relacionada con los gobiernos abiertos y el open data que magistralmente impartió Alberto Gómez Toribio. Aunque con un poco de retraso aquí os dejamos el material y las transparencias que utilizó.

Agradecemos a Alberto todo el esfuerzo realizado y a la Sala Camón por permitirnos organizarlo allí.

Gobiernos abiertos y datos públicos

El año pasado (2011) nos quedamos con ganas de participar en  la segunda edición de AbreDatos, un concurso de desarrollo de aplicaciones utilizando datos públicos cuyo principal objetivo es concienciar de la importancia que tiene que los organismos permitan el acceso ordenado a los datos públicos que manejan.

Seguimos investigando sobre esta corriente y llegamos al concepto de Gobierno Abierto u Open Government. Está basado en tres principios:

  • Transparencia: En la rendición de cuentas por parte del gobierno, información sobre lo que se realiza y acceso a la información clara y sencilla que permita un control de las acciones del gobierno así como crear valor económico ya que esos datos pueden ser utilizados por terceros para generar riqueza.
  • Colaboración: Referente a la cooperación con la ciudadanía, empresas, asociaciones. Incluso se habla de colaboración entre funcionarios y administraciones. Si en una administración poseen un buen software que lo compartan con el resto de administraciones. Aquí el software libre juega una gran importancia.
  • Participación: Favoreciendo el derecho de la ciudadanía en formación de políticas públicas aprovechándose de la inteligencia de sus ciudadanos.

 

La tecnología y sobre todo internet, ha propiciado esta corriente aunque el Gobierno Abierto no habla de tecnología sino de valores democráticos explorados de forma distinta debido a los avances tecnológicos.

 

Existe un cambio en las formas de relacionarse. La gente se relaciona por Email, Twitter o Facebook en su día a día. Resulta chocante que, sin embargo, para comunicarnos con la administración es necesaria una carta certificada con acuse de recibo, una forma un poco rudimentaria no os parece?

El Evento

Si te interesa conocer de primera mano todos estos conceptos, su aplicación práctica y todas las implicaciones tecnológicas que conlleva, os invitamos a la charla que organizamos de manera gratuita el próximo 18 de Enero en la Sala Camon (Madrid).Contaremos con Alberto Gómez Toribio desarrollador software con experiencia en proyectos relaccionados con la gestión documental en la Administración Pública. En la actualidad Alberto mantiene contactos con empresas y gobierno local de Alcázar de San Juan para estudiar la creación de un portal OpenData y la concienciación local para la creación de aplicaciones OpenGovernment.

 

La charla contará con una parte práctica de utilización de datos públicos que Alberto no ha querido desvelarnos. Puedes apuntarte siguiendo el siguiente enlace.

OS ESPERAMOS

Retrospectiva 2011: Presente, pasado y futuro

Es momento de reflexionar y pensar en que un año acaba y otro empieza. Acostumbro a aprovechar estos momentos de vacaciones navideñas para realizar una retrospectiva personal, ver donde me encuentro y analizar si voy dando los pasos adecuados para llegar a donde quiero estar en un futuro.

Voy a repasar los momentos mas importantes de este 2011, sin otro particular que al estar por escrito pueda revisarlos con el paso del tiempo.

Mi 2011

  • Mayo 2011: Uno de mis objetivos para el 2011 era aprender nuevos lenguajes de programación. Esto unido a mis ganas de viajar produjo que me planteara ir a una de las conferencias internacionales mas importantes de Ruby en Europa: El Euruko, que se celebraba en Berlin. Por desgracia nos quedamos sin entrada así que junto con @eamodeorubio y @mcberros nos embarcamos en la conferencia de Ruby alternativa: Eurucamp. Fue una gran experiencia que me permitió conocer un poco mas sobre esta comunidad y poco mas sobre el lenguaje Ruby.
  • En Junio  tuvo lugar la Agile Open Space 2011. He conseguido romper mis miedos y junto con @rlaina presentamos una charla/debate sobre El Talento. Fue un gran paso para mi y una gran prueba, incluso participé en la grabación de un podcast resumen de la conferencia, algo que nunca había hecho antes. Gracias Raquel :-).
  • En Agosto montamos un grupo de estudio de JavaScript. Aprovechando que empezaba el grupo de JavaScript de Madrid decidí enviar un Tuit por si alguien estaría en Agosto por Madrid intentar estudiar JavaScript. Pensaba que no seríamos mas de 4 personas. Incluso el bueno de @eamodeorubio ofreció su casa por si queríamos organizarlo allí. Pero cual fue mi sorpresa cuando se presentaron cerca de 30 personas a la primera reunión del grupo. Desde entonces no hemos parado. Gracias a @etnassoft, @pasku1 y @eamodeorubio que compartieron todo su conocimiento de JavaScript y gracias a tod@s los que lo hicisteis posible con vuestra asistencia semana a semana.
  • Después del grupo de estudio terminó el verano. Decidí involucrarme mas intensamente en la coordinación del grupo de JavaScript. Desde hace un tiempo tenía la sensación de que mucha gente utilizaba JavaScript en su día a día pero no había un punto de encuentro para reunir a todos los programadores /frontends y demás profesionales en torno a JavaScript. Aprovechamos la repercusión del grupo de estudio para enlazarlo con MadridJS que se acababa de fundar a finales de Junio. En apenas seis meses de existencia ya somos mas de 200 miembros. Además a las últimas reuniones han asistido una media de 80 personas así que estamos muy contentos.
  • En Septiembre tuvo lugar la XPWEEK organizada por uno de los mejores profesionales que conozco, @carlosble. Carlos me propuso colaborar en una Jornada  previa con una charla. Fue el salto definitivo a hablar en público en una conferencia, ese paso definitivo. Gracias Carlos por la llamada.
  • En Septiembre me dieron la oportunidad en atSistemas de participar como Scrum Master en un proyecto. Aunque mi dedicación no es plena si que estoy disfrutando mucho de esta nueva labor intentándolo hacer lo mejor posible. Veremos los frutos a lo largo del 2012. Sin duda gracias a atSistemas por la confianza depositada en mi.

Además pude asistir a la Conferencia Agile Spain 2011 celebrada en Castellón y a diferentes Open Spaces sobre temáticas variadas que me han aportado diferentes visiones. Gracias a tod@s l@s organizadores de estos eventos.

Objetivos para el 2012

  • Intentar seguir mejorando mi profesión. Hay muchas pequeñas cosas que cada uno puede hacer en su círculo mas íntimo para intentar mejorar su “mundo real”. Yo seguiré trabajando pasito a pasito para intentar conseguirlo tanto desde dentro de mi empresa como fuera.
  • Apoyar las comunidades locales de desarrollo, tanto participando en reuniones como intentando organizar algún sarao. Os habéis enterado del CodeMotion verdad?
  • Que la comunidad JavaScript en España se mueva, crezca y demos mucho que hablar.
  • Seguir aprendiendo e intentando ser mejor profesional
¡¡ FELICES FIESTAS A TOD@S!! Y Feliz 2012. Nos vemos

El año de Alan Turing

El 23 de Junio de 1912 nació Alan Turing. Se le conoce como uno de los padres de la informática e inteligencia artificial definiendo formalmente  conceptos como algoritmo y computación utilizando para ello lo que se conoce como Máquina de Tuning. Todo informático que haya pasado por la Universidad seguro que ha oído hablar de él ya que su Máquina es objetivo de estudio en varias asignaturas.

Como matemático Inglés participó activamente en la Segunda Guerra Mundial realizando un gran trabajo de criptoanálisis en el centro de Bletchley Park, donde tuvo un papel decisivo en el análisis de mensajes de Enigma, el sistema utilizado por los alemanes para sus comunicaciones.

Este año, en el que se cumplen 100 años de su nacimiento, se le rinde homenaje con diferentes actos que tendrán lugar en diferentes puntos de mundo. Podéis encontrar mas información en la web oficial.

Grupo de Estudio Javascript: Haciendo TDD

Sesión 1
Han pasado ya dos semanas desde que empezamos el Grupo de Estudio de JavaScript y no puedo estar mas contento por la buena acogida que ha tenido y la gran participación. Personalmente estoy aprendiendo mucho de este “desconocido” lenguaje.

Para la tercera reunión, el bueno de Enrique Amodeo nos ha propuesto un sencillo ejercicio para trabajar algunos de los aspectos que hemos ido viendo. Como ya no se empezar a programar si no tengo un test que falle, me vi en la obligación de buscar alguna forma de hacer TDD en JavaScript. Hay muchos y muy buenos frameworks de testing para JavaScript pero, dada la sencillez del ejercicio me parecía demasiado utilizar una librería específica.

Así que después de leerme el  artículo de Carlos Benitez sobre la consola de Firebug decidí que esta sería mi “herramienta de TDD” para este ejercicio.

Aquí os dejo los test que deberéis ejecutar junto con el código de la solución en la consola de Firebug. No he guardado los “baby steps” que fui dando pero siempre partí de un test que fallaba antes de implementar nada de código.

Código de los test:


// TEST for execute into a Firebug console
// TEST for execute into a Firebug console

console.group("Anything is a param")
    console.assert("" == concatenate(3),"When param is 3, Then returns ''");
    console.assert("" == concatenate(3.2),"When param is 3.2, Then returns ''");
    console.assert("" == concatenate("hola"),"When param is 'hola', Then returns ''");
    console.assert("" == concatenate(function(){}),"When param is function(){}, Then returns ''");
console.groupEnd();

console.group("There isn't elements");
    console.assert("" === concatenate(),"When param is , Then returns ''");
    console.assert("" === concatenate([]),"When param is [],Then returns ''");
console.groupEnd();

console.group("Array with strings");
    console.assert("hola" === concatenate(["hola"]),"When param is ['hola'], Then returns 'hola'");
    console.assert("hola,que,tal" === concatenate(["hola","que","tal"]),"When param is ['hola','que','tal'], Then returns 'hola,que,tal'");
	console.groupEnd();

console.group("Array with array elements");
     console.assert("" === concatenate([[]]),"When param is [[]], Then returns '' ");
     console.assert("hola" === concatenate([["hola"]]),"When param is [['hola']], Then returns 'hola'");
     console.assert("hola,soy,luis" === concatenate([["hola","soy","luis"]]),"When param is [['hola','soy','luis']], Then returns 'hola,soy,luis'");
console.groupEnd();

console.group("Array with array and string elements");
      console.assert("hola,soy,luis" === concatenate(["hola",["soy","luis"]]),"When param is ['hola',['soy','luis']], Then returns 'hola,soy,luis'");
      console.assert("hola,soy,luis,y,estoy,bien" === concatenate(["hola",["soy","luis"],"y","estoy","bien"]),"When param is  ['hola',['soy','luis'],'y','estoy','bien'], Then returns 'hola,soy,luis,y,estoy,bien'");
console.groupEnd();

console.group("Array with arrays of arrays and string elements");
    console.assert("hola,soy,juan,fernandez,y,no,tengo,dinero" === concatenate(["hola", ["soy", ["juan", "fernandez"] ], "y", ["no", "tengo", ["dinero"] ] ]),"When param is ['hola', ['soy', ['juan', 'fernandez'] ], 'y', ['no', 'tengo', ['dinero'] ] ], Then returns 'hola,soy,juan,fernandez,y,no,tengo,dinero'");
console.groupEnd();

Código JavaScript resultante:


var concatenate = (function(){
//Private properties
var params;

function hasElements(){
return params.length>0;
}

function createString(){
var res = "";
for(var i=0;i<params.length;i++){
res += params[i];
if(isLastParam(i)){
res+=",";
}
}
return res;
}
function isLastParam(p1){
return (p1<params.length-1);
}

//Public
return function (parameters){
var result = "";
params = parameters &amp;amp parameters.isArray()?parameters:[ ];

if(hasElements()){
result = createString();
}
return result;
}
})();

Aquí tenéis el código con alguna prueba mas en mi GitHub.

Conclusiones

Mi conclusión es que a veces no es necesario buscar herramientas potentes para solucionar problemas sencillos. Lo que nunca deberemos olvidar es nuestra manera de trabajar, que en mi caso es siempre ESCRIBIENDO PRIMERO LOS TEST.

Enlaces de interés

La foto es de la primera reunión del grupo de JavaScript en Madrid On Rails

Disclaimer

La solución solo funciona en navegadores compatibles con ECMASCRIPT 5, en el código de GitHub podéis encontrar mas soluciones compatibles con todos los los estándares

Grupo de Estudio de JavaScript

Actualización: Aquí tenéis la web del grupo: https://gejs.jottit.com para consultar toda la información.

JavaScript

Parece que JavaScript está pegando fuerte. Ha dejado de ser ese lenguaje que nadie sabe muy bien como funciona y con el que validamos formularios y hacemos algún efectito chulo, para pasar a ser un lenguaje en el que se basa el último estándar de la web como es HTML5. David Bonilla lo explica muy bien en uno de sus últimos post donde habla de porqué quiere aprender JavaScript.

El hecho es que ni siquiera había leido el artículo de David cuando pasó por mi cabeza la idea de montar un grupo de estudio de este lenguaje. Después de hacer el anuncio por Twitter para ver un poco si sería de interés, me encontré con una gran acogida y sobre todo con algunas preguntas que contestar. Así que allá vamos, voy a intentar explicar lo que desde mi punto de vista espero del grupo de estudio:

¿Qué es un grupo de estudio?

Simplemente un grupo de personas que deciden juntarse para estudiar un tema común. Ya existen otros grupos de estudio que se reúnen para estudiar patrones o diferentes lenguajes. Lo que tiene que quedar claro es que es un grupo de ESTUDIO, es decir, exige justamente eso estudio. Es algo que debes tener presente antes de decidir asistir.

¿Por qué montar un grupo de estudio?

Porque estudiar algo uno solo es lento y tedioso y muchas veces acabamos por abandonar. Lo que pretendo con este grupo es intentar que entre todos aprendamos desde cero este lenguaje.

Dinámica del grupo

Después de consultar con varias personas que han participado en grupo similares he llegado a la conclusión de que me gustaría que el grupo de estudio tuviera las siguientes características:

  • Partir desde cero. Se trata de aprender el lenguaje y que mejor que empezar por los fundamentos del mismo. Así cualquiera que quiera unirse podrá hacerlo.
  • Una reunión a la semana de 2 horas máximo puede ser mas que suficiente. Cada una de ellas intentaríamos ver un tema diferente.
  • Grupo público. Esto quiere decir que no vamos a crear una lista de correo o algo similar. Cualquiera que tenga una duda que lo exponga públicamente bien por Twitter, Blogs, Github pero que cualquiera pueda consultarlo en cualquier momento. Así conseguiremos que no haga falta asistir presencialmente para poder aprovechar todo lo que hagamos.
  • Trabajar durante la semana en los ejercicios propuestos para a la semana siguiente poder sacar conclusiones y avanzar mas rápido.

Temario

Los grupos de estudio que conozco se reúnen con un libro como punto de partida. Aquí se nos plantea el problema de que hay muchos libros. Quizás sea interesante ir cogiendo capítulos de diferentes libros para ir completando un temario ideal. A mi personalmente creo que me gustaría tratar:

TEMA 1: Conceptos fundamentales
- Sintaxis básica.
- Elementos principales del lenguaje: Las funciones.
- Tipos de datos
- Scope de las variables (var)
- typeof vs instanceof: uso y diferencias.
- Objetos en JavaScript –>JSON,
- Acceso a objetos: obj.propiedad vs obj[propiedad] —> for (var i in ..)
- Closures
- Llamada a objetos con call y apply
TEMA 2: Programación Orientada a Objetos con JS
- Constructores en JS
- Estratégias de creación de objetos.
- Prototipos
- This (que es en cada momento)
- Namespaces
- Estratégias de herencia.
TEMA 3: Patrones OO con JS
Ver algunos patrones con JS
TEMA 4: Librerías JS
- Backbone, etc.
- Para hacer TDD /BDD….

A partir de aquí podemos llegar hasta donde nosotros mismos queramos y explorar todos los aspectos del lenguaje que considere el grupo.

Lugar

Todavía no tenemos lugar para reunirnos. Me gustaría que por lo menos la primera reunión contar con un proyector para ver código y ver los conceptos fundamentales. Ya tenemos sitio.El resto de reuniones podemos ir viendo en función de la afluencia de gente.

También hay gente de fuera de Madrid que se ha interesado en participar. Vamos a ver si podemos grabar las reuniones o por lo menos capturar la pantalla para que no perdáis detalle de lo que hablemos.

Este es mi planteamiento inicial. Cualquier sugerencia será bienvenida.

Ahora solo falta concretar una fecha y un lugar. Me ofrezco voluntario para dirigir la primera reunión y hacer una exposición del primer tema, aunque espero que sea participativo y entre todos vayamos avanzando.

Por último agradecer a @plagelao por sus sugerencias. Podéis consultar sus post sobre dos grupos de estudio en los que ha participado:

- Grupo de estudio de SICP

Grupo de estudio del libro 7 languages in 7 weeks

Última actualización:

Aquí tenéis todos los detalles del grupo: https://gejs.jottit.com

Retrospectiva y deseos para el 2011

Pues siguiendo con la iniciativa que lanzaba David Bonilla y unos cuantos como Kinisoftware o Jacegu que también se han animado no puedo quedarme sin hacer mi retrospectiva personal y mis deseos para el 2011.

Retrospectiva 2010

Echando la vista atrás la verdad es que ha sido un año en el que me han pasado muchas cosas, algunos cambios, y mejora continua tanto en lo personal como en lo profesional. Aquí solo me voy a centrar en lo profesional (lo otro lo dejo para los mas cercanos).

Ha sido un año en el que he podido asistir a un montón de eventos: La CAS2010 y AOS2010 como consolidación de que las cosas están cambiando en el mundo del software, varios Coding Dojo y Code Retreats donde pude aprender y compartir buenos momentos con grandes como José Manuel Beas, Sir Xavi Gosh o conocer de primera mano a un desconocido para mi hasta la fecha Enrique Comba. O compartir muy buenos momentos con @Kinisoftware, @semurat, @plagelao, @laura_morillo, @jjballano, @rlaina @amaliahern, @jerolba, @AlfredoCasado, @GermanDZ, @jacegu, @alejandropgarci, @rcanalesmora,  @albertovilches, @cavalle, @david_bonilla y tantos otros que seguro me dejo.

Aunque son muchas las personas que han ido apareciendo en mi camino y que de una u otra forma me van enseñando cosas muy importantes, me vais a permitir que me quede con las tres personas que mas me han enseñado en el día a día a ser mejor profesional y persona. No son otros que tres de mis compañeros/amigos en atSistemas: Enrique Amodeo, Antonio David Fernández y Santiago García. Es con ellos con los que paso gran parte de mi tiempo  y es de ellos de los que mas aprendo. ¡Un gracias de corazón!.

Especial mención quiero decicarle también a Fernando Redondo, por toda la confianza que ha depositado en mi desde siempre, porque es un gran tio y me ha enseñado mucho en esto de la formación.

Respecto a los proyectos personales, tengo una espinita en este 2010 y es no poder haber finalizado ningún proyecto de los que tengo en mente. Que narices, ni finalizado ni empezado. Es algo que quiero remediar para el 2011.

Deseos para el 2011

Quiero dejar escrito aquí mi lista de buenos propósitos que quiero “entregar” al finalizar el 2011. Quiero tenerlo presente durante todo el año. Ahí van pues:

- Conseguir ritmo sostenible leyendo. Cuento con poco tiempo para dedicarle a la lectura de libros tanto técnicos como no técnicos y la verdad es que aunque soy un devorador de artículos por la red si que necesito coger ritmo en cuanto a lectura de libros como tal. Tengo muchos en el tintero y espero sacar ese preciado tiempo (querer es poder).

- Compartir mas conocimiento. Una de las cosas que me encantan es poder compartir conocimiento y aprender y enseñar a quien pueda. Tengo la sensación que en el 2010 me he centrado mucho en la gente cercana, me gustaría en el 2011 abrir mas ese círculo participando en alguna charla, conferencia o lo que se tercie.

- Llegar al mundo universitario es algo que me encantaría. Charlas, conferencias, colaboraciones en universidades es algo que me apetece desde hace mucho tiempo.

- Mejorar en el inglés. Como pongo en mi perfil Linkedin uno de mis objetivos en esta vida es poder llegar a un nivel de inglés lo suficientemente alto como para poder preparar alguna charla / conferencia en ese idioma. Soy consciente de mis limitaciones y de todo el camino que me queda por delante pero seguiré en el empeño con la ayuda de mi paciente profesora de inglés Camila a la que desde aquí agradezco todo su trabajo y paciencia conmigo.

- Tengo muchas ideas en la cabeza sobre pequeños proyectos que quiero hacer. No estoy hablando de montar nada grande ni mucho menos pero si que tengo necesidades a diario que me gustaría automatizar. Espero poder hacer alguna aplicación digna de utilizar, incluso utilizando algún nuevo lenguaje como Groovy, Ruby o Scala.

- El punto anterior me lleva inexorablemente a este: Aprender nuevos lenguajes y por supuesto que mejor manera de aprender que llevar algo a producción (ver punto anterior).

- Seguir aprendiendo, sea lo que sea pero aprender y compartir lo aprendido. Tengo en el punto de mira DDD que no consigo del todo cogerle el puntito y creo que necesito leer y experimentar mas. Git y Gradle son otras de las cosas a las que le quiero dedicar tiempo.

- Dedicarle mas tiempo a este blog. Es duro esto de escribir pero tengo que conseguir ritmo sostenible de bloguero!. ¡Tengo muchas cosas que contar! Esto va también por Alfonso, con quien comparto esta aventura de FarmerDev. A ver si nos vemos mas Pumuki!

- En lo personal, dedicarle mas tiempo a mi gente y poder viajar. Como destinos preferentes tengo  Nueva York y República Dominicana. Espero al menos hacer uno de los dos viajes, acompañado sin duda de @BetancesL.

- Seguir compartiendo buenos momentos con todo el que se deje, si estas leyendo esto, tu puedes ser un@ de ell@s :-).

Feliz 2011 a tod@s, nos vemos!

Introducción a EMF (Eclipse Modeling Framework) parte I.

Hace mucho tiempo que tenía ganas de comentar una tendencia en el mundo eclipse, cada vez más el desarrollo de aplicaciones dirigidas por modelos, se está expandiendo.  EMF (Eclipse Modeling Framework) es un proyecto de eclipse, donde han participado empresas y programadores independientes,  para que eclipse contará con un framework de modelado.

¿Qué nos aporta modelar nuestra aplicación? En primer lugar, nos aporta un diseño previo, que una vez concretado, genera código completamente funcional y sin errores, basado en nuestro modelo. No estoy hablando sólo a nivel de CRUD,  además nos aporta listeners sobre las clases y atributos modelados y por tanto contamos con un sistema de comunicación basado en eventos para controlar todo lo que está ocurriendo en tu modelo. Junto con otros proyectos como CDO (podemos mantener el modelo en repositorios remotos  y con transacciones seguras).  EMF nos genera los test , donde tendremos que completarlos a medida que avanza nuestra aplicación. Además de crear la lógica para las vistas de propiedades y un pequeño editor donde podemos añadir instancias de nuestros objetos modelados, para tener un prototipo previo al producto final con el que podemos interactuar . La ventaja a mi modo de ver, es la consistencia entre el diseño y el código.

Me gustaría comentaros un tema candente dentro de eclipse y es GMF un proyecto muy ambicioso y que hasta hace poco, con mucha actividad. Sin embargo ahora mismo se encuentra parado,  al menos a nivel evolutivo.

Pero primero comentaros que GMF (Graphical modeling Framework) es uno de los proyecto más importante para EMF , que es la generación de editores gráficos más complejos, para nuestros modelos. GMF esta basado en GEF (Graphical Editing Framerwork) que no es más que un framework modelo, vista, controlador para generar editores en eclipse, y como es tendencia ahora en el mundo eclipse, GMF tiene su propio modelo generado por EMF. Podemos decir que EMF es un proyecto muy maduro, con una curva de aprendizaje, que en poco tiempo dominas, en cambio de GMF , no podemos decir lo mismo.

Puede ser que debido a  la dificultad de GMF; nació Graphiti, yo todavía no lo he probado pero por los comentarios leídos, parece ser mucho más potente a nivel gráfico. La gente de eclipse se encuentra ahora mismo en un limbo entre un proyecto con varios años de desarrollo, es decir, más maduro pero con lagunas y otra herramienta con mucha proyección pero muy verde. Aunque todavía es pronto, yo apostaría por Graphiti, pero el tiempo dirá.

Otros proyectos como EMF Compare que es capaz de comparar tus modelos y poder mergear las diferencias. Model Query para tener un sistema cómodo y limpio para realizar consultas a nuestro modelo. Y Teneo que es una solución de persistencia al modelo donde se realiza un mapeo relacional, por ejemplo, podemos usar Hibernate y así poder usar HQL. Así como otros muchos proyectos satélites alrededor de EMF configuran un marco de trabajo y una tendencia en la comunidad Eclipse.

Introducción a EMF (Eclipse Modeling Framework) parte I.

Introducción a EMF (Eclipse Modeling Framework) parte II.

Nueva Sección

Hemos creado una nueva sección en el blog llamada Biblioteca Técnica. Siguiendo algo similar a lo que tiene jacegu en su blog, creemos que es buena idea lo de compartir los libros que han pasado/pasan/pasaran por nuestras manos. La idea es que todo aquel que tenga inquietudes similares a las nuestras y no sepa por donde empezar tenga unas cuantas referencias.