• Programación

    Refactoring de «Fat Methods» – Episodio 3

    En el Episodio 1 trabajé el método Matches#create y había dejado una parte a la que Des preguntó por qué la ignoraba. En ese momento no quería extender mucho más el post por lo que en esta oportunidad vamos a completar el refactoring pendiente. El código que habíamos logrado en ese momento es el siguiente: def create @match = current_user.matches.create!(params[:match]) @notifications = @match.owner.friends.select {|f| f.notify_new_matches? }.collect(&email) Emailer.deliver_match_created(@match, @notifications) if @notifications.any? flash[:success] = "El partido fue creado." redirect_to matches_path rescue render :action => 'new' end Lo que nos quedaba terminar era cómo mejorar el envío de las notificaciones para aquellos amigos que tenían activa dicha opción. Como primer paso vamos a…

  • Programación

    Lo que viene en Rails 2.2

    Hace poco se anunció el RC1 de lo que será la versión 2.2 de Ruby on Rails. Si bien la fecha de salida es «cuando esté lista», ya se pueden utilizar para aquellos que gusten vivir «on the edge». Para aquellos que quieran un rejunte completo de todo lo que se viene pueden ver el post : What’s New in Edge Rails: Rails 2.2 Released – Summary of Feature. Yo acá voy a comentar solo lo que tuve la oportunidad de probar y que me resultó útil. I18n La verdad es que es una buena noticia, no para mi porque hago todo para un solo idioma :P, pero algún día…

  • Programación

    Próxima reunión de Argentina on Rails

    El próximo sábado (1 de noviembre) nos estamos reuniendo para compartir, aprender y divertirnos un rato con ruby. El que quiera aparecer, que aparezca y si quiere avisar que va, mejor así calculo bien la cantidad de mates que tenemos que tener :). La cita es en la facultad de ingeniería de la UBA, aula 402 (4to piso) a partir de las 11hs. Más detalles de como se va a organizar la cosa acá (incluye un mapa para aquellos que no conozcan la facultad).

  • Programación

    Usando Rails.cache en 2.1.x

    Para uno de los sitios que tenemos montados llegó la hora de optimizar algunas partes para descargar la DB un poco. Lo primero (y por ahora único :P) que se hizo fue cachear la instancia que representa a la Etapa actual del juego en memoria, para así no cargarla en cada request. El código original era : class Stage ["start_at = ?", t, t]) end end y lo cambiamos para usar el nuevo sistema de cache de Rails 2.1.x que realmente fue simplificado. Hay varios sitio donde hablan sobre el cache en 2.1, les recomiendo mirar el screencast de RailsCasts y este y este post. El código modificado quedó como…

  • Yo Estuve Ahí

    Terminó el Rails Summit Brasil

    Ya de vuelta en Argentina y descansando, puedo decir que el viaje a Sao Paulo fue muy productivo y entretenído. Del evento realmente no vale la pena que me extienda mucho más de lo que ya dijo Luis Lavena en su blog, por lo que les recomiendo leer lo que él dice :). Durante el evento aproveché para conocer en persona algunos miembros de Ruby Argentina, como Luis y Pedro, con los que pasamos un momento realmente agradable durante el evento. También tuve el agrado de conversar con David Chelimsky (maintainer de rspec) y aprender más sobre BDD y cómo comenzar a usarlo. Por el lado de la ciduad, Sao…

  • General

    Rumbo a Brasil

    En aproximadamente una hora ya estoy saliendo para Brasil. En este momento ya estoy esperando para abordar mi vuelo, luego de haber tomado un cafecito y fumado un cigarrillo (God bless smokerplaces 🙂 Sin dudas tomar un vuelo internacional no es nada cómodo ni divertido. Tuve que hacer 5 colas diferentes, preguntar 20 cosas diferentes (tal vez por falta de costumbre :P) y aún así en cada paso tenía esa sensación donde te dicen «Señor, hay un problema». Aunque finalmente no pasó nada :). Estoy de acuerdo con la seguridad, y el control y bla bla bla bla bla bla, pero hay pasos que se podrían ahorrar, en fin, estoy…

  • Programación

    Refactoring de «Fat Methods» – Episodio 2

    Continuando con esta serie de ejemplos de como refactorizar métodos de controladores vamos a seguir ahora con uno que cuando lo volví a ver apestaba feo feo. El método en cuestión tiene por objetivo que el usuario actual se suscriba (es decir, anote) para jugar un partido determinado. Para eso el siguiente código es el que está siendo ejecutado actualmente : # app/controllers/matches_controllers.rb def subscribe flash[:notice] = "Ya formás parte del equipo!" and redirect_to match_path(@match) and return if @match.has_player? current_user flash[:error] = "El equipo está completo." and redirect_to match_path(@match) and ] return if @match.available_places(params[:team].to_i) current_user, :team => params[:team] redirect_to match_path(@match) end Lo feo del problema se puede ver desde dos…

  • Música,  Yo Estuve Ahí

    Dave Matthews Band en Argentina

    Creo que solo tengo una palabra : uno de los mejores shows!!!!! …. bueno, fueron más de una :). Fuera de joda lo que hacen en el escenario estos muchachos no tiene nombre. La química entre ellos logran que el espectáculo sea simplemente genial. Llegamos temprano para ver varias bandas, entre ellas al Baiano y El cuarteto de Nos. Este último la verdad que no me gustó, muy simplón, la música muy placa y en vivo muy aburrido. Fito paez era la otra «figurita difícil» de la noche que también dió un espectáculo muy bueno. Recibí muchos golpes cuando un integrante de Catupecu entró de sorpresa y todo el mundo…