#195 My Favorite Web Apps in 2009
En el episodio de esta semana nos saldremos un poco del guión, vamos a mostrar algunas de las aplicaciones web de 2009 más útiles para los desarrolladores Rails: cada una de las siguientes aplicaciones servirá para mejorar en una forma u otra nuestras aplicaciones Rails. Empecemos con la primera.
Github
La primera aplicación no necesita presentación: Github. Si eres un programador, ya deberías conocerla. Github tiene algunas funcionalidades que son menos conocidas pero no por ello son menos útiles, por ejemplo los Gists, que son una forma sencilla de compartir fragmentos de código. También merece la pena echar un vistazo a la sección de ayuda en Github porque contiene diversos artículos para aprovechar al máximo Git y Github.
Gemcutter
La segunda aplicación de nuestra lista es Gemcutter: el lugar definitivo donde alojar nuestras gemas. Ya hablamos de Gemcutter en el episodio 183 [verlo, leerlo], pero desde entonces se ha hecho incluso más fácil de usar. Antes había que ejecutar el comando gem tumble
para instalar las gemas desde Gemcutter pero ya no hace falta hacerlo porque el servicio de alojamiento de gemas de RubyForge apunta a Gemcutter.
Lo que hace más valioso a Gemcutter es la facilidad con la que nos permite publicar nuestras propias gemas. Sólo hacen falta tres pasos que son los que se ven en la captura de pantalla anteiror. La única parte potencialmente difícil es crear un archivo gemspec
pero para facilitar las cosas podemos partir del fichero gemspec de otra gema como plantilla. Un buen ejemplo es el archivo gemspec de la gema CanCan de RyanBates.
Gem::Specification.new do |s| s.name = "cancan" s.summary = "Simple authorization solution for Rails." s.description = "Simple authorization solution for Rails which is completely decoupled from the user's roles. All permissions are stored in a single location for convenience." s.homepage = "http://github.com/ryanb/cancan" s.version = "1.0.2" s.date = "2009-12-30" s.authors = ["Ryan Bates"] s.email = "ryan@railscasts.com" s.require_paths = ["lib"] s.files = Dir["lib/**/*"] + Dir["spec/**/*"] + ["LICENSE", "README.rdoc", "Rakefile", "CHANGELOG.rdoc", "init.rb"] s.extra_rdoc_files = ["README.rdoc", "CHANGELOG.rdoc", "LICENSE"] s.has_rdoc = true s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "CanCan", "--main", "README.rdoc"] s.rubygems_version = "1.3.4" s.required_rubygems_version = Gem::Requirement.new(">= 1.2") end
Siempre podemos partir de un fichero como el anterior para adaptarlo a nuestros proyectos. Es fácil cambiarlo directamente cada vez que creamos una nueva versión de nuestra gema, y después empaquetarlo todo para publicar la nueva versión.
Caliper
A continuación viene Caliper. Tal vez recordeis que en el episodio 166 [ver, leer] tratamos la gema metric_fu. Caliper es, básicamente, una versión online de metric_fu y es una forma estupenda de recopilar información métrica sobre cualquier aplicación Rails alojada en un repositorio Git. Sólo hay que introducir la URL del repositorio concreto y al cabo de unos segundos devolverá todas las métricas relevantes para ese proyecto.
Se puede ver información sobre los ratios entre código y pruebas, código sospechoso y otros detalles sobre nuestras aplicaciones Rails para que mejoremos el código o utilizarla para examinar otros proyectos que nos resulten de interés. Si encontramos una gema o plugin que queremos usar podemos pasarlo por Caliper para ver cómo de grande es la base de código y si está bien escrita y diseñada.
Rdoc.info
Otro sitio web muy útil es rdoc.info. Si buscamos documentación de un proyecto escrito en Ruby alojado en Github, podemos visitar este site y buscar el proyecto que nos interesa. Si no está listado podemos añadirlo y se generará (y publicará) su documentación.
RunCodeRun
Otra aplicación interesante es RunCodeRun, que es un sencillo servidor de integración continua. Tan sólo hace falta indicarle una aplicación en un repositorio Github y ejecutará los tests de dicha aplicación y notificará si pasan o fallan. Una vez que se han ejecutado los tests podemos inspecionar el proyecto para ver cuáles pasan o fallan. RunCodeRun es gratuito para los repositorio públicos.
RunCodeRun utiliza la tarea rake por defecto de nuestra aplicación, lo que quiere decir que la podemos modificar para hacer lo que queramos. En el Rakefile
de la apicación podríamos hacer que apuntase a las tareas :spec
y :features
para que se ejecuten los tests de Rspec y Cucumber.
task :default => [:spec, :features]
The Ruby Toolbox
The Ruby Toolbox es un gran recurso. Con frecuencia, cuando estamos desarrollando una nueva aplicación Rails nos preguntamos qué gema o plugin podríamos usar para realizar alguna tarea. The Ruby Toolbox es una forma excelente de encontrar las gemas o plugins que están disponibles para las diferentes tareas. Por ejemplo si en nuestra aplicación necesitamos implementar versionado de modelos podríamos ver qué proyectos hay disponibles y cómo usarlos.
New Relic
Otra aplicación que deberíamos usar en todas las aplicaciones Rails en producción que tengamos es NewRelic RPM. Es una aplicación inmensamente útil para encontrar problemas de rendimiento en nuestras aplicaciones Incluso la versión gratuita, RPM Lite, proporciona suficiente información como para encontrar los cuellos de botella en nuestra aplicación y para monitorizar su ejecución.
Learnivore
Si somos aficionados a los screencasts Learnivore es un sitio genial. Agrega un gran número de screncasts (gratis y de pago) incluyendo los Railscasts. Es un recurso que merece la pena comprobar.
Por último, Ryan ha sido tan amable de mencionar ASCIIcasts como uno de sus sitios favoritos, pero dado que ya estás aquí ya sabes todo lo que hay que saber.