Un punto de reflexión para este año en el Codemotion 2016

img_2688 Este año he vuelto a Codemotion 2016 tanto para dar una charla como para escuchar a otras personas y ver que es lo que se cuece. Realmente el año pasado no pude ir y en comparación con otros años, creo que me ha venido muy bien mi vuelta a este tipo de evento. Hay que estar en aquellas comunidades variadas para poder impregnarse de inquietudes y conocimiento de otras personas de profesión e incluso el lenguaje que se utiliza en dichas comunidades.

Por otro lado, el haber participado como ponente (este es mi segundo año como Speaker) y como oyente, me ha dado una visión y reflexión que bajo mi punto de vista me hacía falta y me hacía falta no estar tanto metido en el código y charlas que hablen de código o experiencias. Sinceramente me ha venido muy bien el poder asistir a unas charlas de los más inspiradoras y me han aportado un punto de reflexión para poder parar y pensar en las cosas que estoy haciendo y cómo las estoy haciendo.

En este sentido ya estoy preparando una charla dentro de mi empresa que es The Cocktail en la que voy a exponer mis reflexiones recopiladas y en las que creo como profesionales debemos estar preparados para incorporarlas en nuestro perfil como profesionales. Seguir leyendo

27 años de experiencia profesional hasta lo más personal

IMG_0952Este es un post que llevo mucho tiempo dando vueltas, escribiendo y re-escribiendo, intentando decidir que hago, si lo publico o no lo publico (ahora ya sabes mi decisión final) y como consecuencia de hacer un resumen en la empresa en la que actualmente trabajo – The Cocktail, he decidido seguir a delante. Realmente es una lectura profesional y personal, motivada desde la curiosidad,  que se me conozca un poco más hablando en primera persona, es decir, lo que no hago cuando hablo con gente. Pero por si alguien quiere saber mi historia profesional y algunos aspectos personales, este es el lugar adecuado. Otro motivo es que muchas veces en las entrevistas debes ir al punto de interés del puesto al que estás intentando acceder, pero en aquellos aspectos en los que se quiere ampliar  por las razones que sea y conocer más de mí como persona y profesional, este post es una buena referencia como obtención de más información.

Por tanto voy a contar en primera persona cual ha sido mi trayectoria profesional, mís decisiones, cómo he llegado hasta donde estoy ahora mismo, hacia dónde quiero ir y cómo lo voy a conseguir.

Seguir leyendo

Aclaremos los conceptos entre dos mundos: blank? y present? es Rails / empty? y nil? es Ruby

rubyonrails Hay momentos en los que llevamos mucho tiempo trabajando en proyectos de Ruby on Rails y perdemos la noción de la frontera ente dónde se encuentra cada cosa que utilizamos. A mí me ha pasado alguna vez, en ese caso es mejor parar y pensar por  un momento. También en alguna que otra ocasión he oído que no se entendía y/o sabía la diferencia o que siempre utilizo este método que me funciona siempre. Por esto me gustaría escribir este post para aclararlo.

Por tanto, si alguna vez has trabajado en proyectos Rails, seguramente estos métodos que voy a contar, te suenen e incluso los has utilizado en alguna ocasión, pero no te has parado a pensar el motivo de ¿porqué debo utilizarlos, qué es mejor, cuándo, dónde, alguna ventaja especial? así como algunas curiosidades que voy a explicar. Seguir leyendo

Rails 4: el utilizar o no inverse_of en mis relaciones ¿qué me implica? y ¿cómo afecta la versión de Rails 4.0 y 4.2?

rubyonrailsEn algún momento de nuestros proyectos hemos utilizado inverse_of, pero me pregunto ¿nos hemos detenido a investigar todas sus posibilidades? y ¿qué ocurre si cambio de versión en mi proyecto y no lo tengo claro? , ¿qué problemas me puedo encontrar? cuidado!, tienes que considerar ciertos aspectos de los que vamos a ver en este post. Voy a explicar el uso de inverse_of en la versión 4.0 de Rails y cómo se comporta también en estos casos con la versión Rails 4.2 :inverse_of (puedes ver este pull request). Existen varios casos en los que un inverse_of debes saber utilizarlo y yo te explico cómo puedes entenderlo y aplicarlo. Seguir leyendo

Rails 4: ¿Cómo crear un formulario y utilizar accepts_nested_attributes_for con Has-Many-Through Relations? algunos consejos para entenderlo desde cero

rubyonrailsLa idea de escribir este post, surge de la idea de comenzar a hacer piezas cortas de código para practicar más y por otro lado ver que una y otra vez, se hacen formularios de todo tipo de relaciones entre modelos, unos son básicos en cuanto a que no existe complejidad alguna, por ejemplo una has_may/belongs_to y algunos otros se van complicando y viendo ejemplos existentes en Internet e intentar recopilar una buena información sobre cómo montar un formulario con form_for cuando tengo relaciones has_many through y necesito validar los campos que pertenecen a otro modelo utilizando accepts_nested_attributes_for demás de los propios del modelo principal, me he encontrado que no disponía de uno completo desde cero, así que me he decidido a desarrollar con un ejemplo práctico paso a paso y viendo todos los detalles que necesitas para entenderlo. Por lo que he montando un proyecto con un scaffolding y básico en este sentido, para que te lo puedas descargar de mi repositorio y probarlo por ti mismo. Hazlo y cuando lo tengas en marcha en local, sigue leyendo para terminar de entenderlo.

Antes de continuar una mención personal: me gustaría agradecer en este caso a Francis (twitter ciscou) por echarme un cable en primero, confirmar que lo estaba haciendo bien (viniendo de él es algo muy fiable) y segundo en darme cuenta finalmente que lo que estaba haciendo mal era la declaración de mi strong parameters (pensando en una declaración primitiva de los atributos de entities_attributes), haciendo que el comportamiento de la aplicación sea muy diferente y confuso a lo normalmente esperado, haciéndome creer la aplicación, que la interpretación del problema por mi parte lo tenía en en los accepts_nested_attributes_for y en las relaciones (no te preocupes que ahora te lo voy a explicar paso por paso y lo vas a entender cuando termines de leer el post o puedes ir directamente al paso cuarto, si ya sabes de qué estoy hablando). En definitiva, muchas gracias Francis!!

Seguir leyendo

Less / More – Show / Hide: necesito que mi listado pueda verlo mejor el usuario de mi aplicación ¿ JTruncate JQuery? o ¿Javascript a mano?

jquery-javascript En esta ocasión me gustaría compartir una experiencia reciente en la toma de decisión técnica y cómo gestionar el ánimo en esos momentos cuando está fallando, sabes que lo has probado y te ha funcionado, pero en el momento de salir a escena salta el fallo. En la mayoría de los casos que trabajamos con plugins o gemas, no dan muchos fallos cuando lo incorporamos en proyectos, normalmente me refiero a que o va bien o va mal, pero en otras ocasiones podemos encontrarnos casos que va bien pero también falla. Esto es lo que quiero explicar para que tomes en consideración algunos parámetros más antes de decidir que ya lo tienes terminado y probada tu funcionalidad.
Seguir leyendo

Mi experiencia como ponente en Codemotion España 2014

IMG_20141122_215106575Este año he tenido el privilegio de poder estrenarme como ponente en el Codemotion 2014 en España, es algo que ya tenía en mi mente como objetivo a cumplir desde que el año pasado asistí como oyente y pude comprobar que de Rails no se hablaba nada. Así que al ver que se permitía la posibilidad este año poder cumplir mi objetivo marcado, no me lo pensé dos veces y mandé dos charlas conjuntamente con dos compañeros de profesión Gaby que es un gran desarrollador de Rails y Samuel otro gran desarrollador de Drupal, nos sentamos y pensamos el contenido inicial de nuestras charlas a presentar.

Tengo que reconocer que inicialmente tenía previsto presentar cuatro y tocando diferentes palos, por ejemplo, dos de Rails una ya la había dado en MadridRB y era sobre «Ordenando las vistas. Decorator y Presenters» la otra es 10 cosas que deberías saber de Rails, una de NoSQL sobre The Emerging World of MongoDB que ya hablé el año pasado en ASPgems, y la última de Drupal y Rails pero pensé que sería demasiado si salían seleccionadas todas, un poco pretencioso por mi parte, pero podría ocurrir y ha ocurrido, de las 2 presentadas las dos aceptadas :).

Lo que me ha sorprendido de este año es la cantidad de asistentes, unos 2.000 y el amplio abanico de tecnologías expuestas y con un público más selectivo de lo que quiere aprender y a quién escuchar. En mi opinión personal, cuando voy a dar una charla, siempre tengo presente el respeto al público que asiste y responsabilidad para intentar trasmitirlo de forma clara y práctica la temática a tratar en cada momento y tengo que reconocer personalmente que me sorprendió «gratamente» la cantidad de asistentes, entre 20 y 30 más o menos en ambas charlas, sinceramente me esperaba menos gente y eso me motivó mucho. Los comentarios que me han llegado también, han sido sorprendentes y muy gratos. Por ese motivo, seguiré mejorando para poder ofrecer nuevas presentaciones, mostrar temas interesantes y seguir escribiendo.

Si quieres dejar un comentario, ni que decir que puedes hacerlo!!

Seguir leyendo

Conferencia Baruco – Barcelona Ruby Conference 2014

ruby_barucoEste año he querido estar en la Baruco para comprobar de primera mano lo que tantas veces he escuchado de otros sobre ella, además tenía ganas de asistir y así tener mi propia opinión. Quiero agradecer a ASPgems que me haya dado esta oportunidad de disfrutarla, gracias!!.

Este Jueves 11 de Septiembre del 2014, Martín, Rebeca, Andrés y yo de ASPgems, hemos asistido a la Baruco 2014, una conferencia en la que puedes conocer a las personas con los que hablas/opinas/escuchas y a las empresas del mundo Ruby. Tal y como hemos ido comentando por twitter, opinión, comentarios, etc de cada uno de nosotros, en mi caso pude conocer a mucha gente, que es lo que me encantó, pero en especial algunos que no conocía y a otros, ya nos conocíamos en persona. Allí me pude encontrar con Xavi NoriaPat Shaughnessy que tenía ganas de conocerlo en persona, Yukihiro Matsumoto ….. mis compañeros (en tono de broma) me comentaron que era una persona muy bien relacionada por codearme con ellos :), la verdad son gente muy cercana y además saben mucho!!. Así que he podido vivir y escuchar de primera mano todo lo que se está cociendo en torno al lenguaje de programación Ruby. La organización ha sigo genial por parte de @codegram y un pleno total de asistentes. Seguir leyendo

Rails: Si necesitas callbacks, workers y estás pensando en arrays de objetos……..aquí te dejo las claves para entenderlo!

rubyonrailsHe estado trabajando en un proyecto express dentro de ASPgems, que consiste en desarrollar una idea y el compromiso de entregarlo en producción en una semana. No sé si otras empresas disponen de esta oportunidad en la que poder participar, pero yo me apunté sin dudarlo, es una experiencia muy buena, ya que te enfrentas a situaciones que en ocasiones los tienes resueltos y este tipo de reto, hace que vuelvas a tener la alerta activa. Os voy a contar en que consiste el proyecto para poder entrar en situación y entender de lo que intento explicar y las soluciones que he aplicado.

La aplicación consiste en saber que gemas está utilizando cada proyecto que se de de alta en la aplicación, por lo que debe disponer de una interfaz de usuario, para dar de alta un nombre de proyecto, una URL del repositorio para poder saber en su Gemfile las gemas que utiliza y leer en RubyGems  más información sobre ellas.

Según estaba planteando los retos de los puntos claves de la aplicación, lo primero que debía solucionar es, cómo interactúa esa interfaz de usuario y el tiempo de proceso que se lleva el disponer de toda la información de lectura del Gemfile, así como el reto en tiempo de ir a buscar cada una de las gemas a Rubygems y conseguir la información adicional de la descripción y el resumen. Esto plantea dos tipos de accesos externos que se necesitan para obtener información, uno al repositorio del proyecto y el otro a Rubygems y eso lleva un coste que hay que medir y tratar.
Seguir leyendo

Rails y el territorio de los helpers: ¿Qué responsabilidades pueden/deben tener los Helpers?

Ruby_on_Rails_logo (1)Hoy voy a hablar de un tema que me parece interesante,  el territorio de los helpers. Discutiendo sobre el tema que da título este post, en ocasiones nos planteamos qué cosas deberían ir en los helpers y podemos encontrarnos con métodos que hemos desarrollado nosotros mismos y en ocasiones no son muy acertados. Voy a intentar responder a las preguntas de ¿cuándo debo utilizar un helper? y ¿de qué manera debo hacerlo? Por ejemplo, imagina que tenemos un template que hacemos una llamada a un método helper y que dicho método helper lo que está haciendo es pintar una parte de HTML, ¿crees que un helper debería contener código HTML? es decir, ¿la etiqueta en este caso de tag(:br)?

def add_user_check_box(user)        

      content_tag(:label check_box_tag(«Users»,  + » «  +  user.name ) +   tag(:br)

end

En mi opinión, creo que esto no pinta bien hacerlo así ya que el HTML no es territorio de helper es de la vista,  aunque únicamente sea que pinte una etiqueta tag, como es el caso o podemos añadir otras etiquetas HTML, select o checkboxes, dentro del método helper del ejemplo, pero tampoco sería el helper el lugar adecuado para ello, entonces yo me pregunto:
Seguir leyendo