Monthly Archives for septiembre 2007

Optimizando una aplicación Rails

Recientemente he tenido que enfrentarme al problema de optimizar mi aplicación Rails ( L-exp). El echo es que la carga de una determinada vista me llegaba a tardar más de un minuto. Realmente te quedas bastante frustrado cuando ves que te pasa esto.

Lo primero en pensar es que como Ruby on Rails está desarrollado en Ruby y este es un lenguaje Script. Pues que será lento y que hasta aquí hemos llegado.

Tras profundizar un poco se me ocurren dos caminos a seguir.

El primero analizar la base de datos para detectar problemas de índices. Es decir que se hagan consultas que no utilicen índices y por tanto sean lentas. Para ello utilizo un plugin para Rails llamado Query Analyzer. Este te muestra en el log a que datos acceden y si está utilizando índices. Así puedes detectar consultas complejas e ir optimizando las tablas. Se trata de ir añadiendo índice que contengas los campos por los cuales ejecutamos el query.

Gracias a este proceso detecté varios índices que faltaban y los añadi. Pude comprobar que un query que duraba casi un minuto pasó a durar menos de un 1 segundo.

En paralelo hice la segunda optimización que había leído por alguna parte que era la de utilizar el hash include en las llamadas a la base de datos( find(:all, :include =>”)). La idea es que en vez de hacer muchas consultas, si tiene tablas relacionadas hace una gran consulta trayendo todos los datos de las tablas relacionadas.

Tras acabar de hacer las consultas note una gran mejoría en las listas cortas, pero sin embargo las grandes tardaban mucho.En especial una lista ( Find all the google products and services) que llama a 67 recursos que me tardaba más de un minuto. Entonces…. ¿ donde me he perdido?

El echo es que tras varíos dias dándole vueltas me di cuenta que había cometido un error importante al usar ambos métodos a la vez. Optimizar los índices siempre es bueno ya que es el acceso a la base de datos es acelerado. Este es prioritario y se debe hacer siempre. Mi error fue utilizar el segundo método en consultas que traen muchos datos. Imagino que en estos casos cuando interroga la base de datos y guarda todo en memoria hace que la máquina gaste mucha memoria y CPU siendo poco efectiva para consultas con muchos datos.

Por tanto tan sólo tuve que quitar la optimización de includes y la lista más larga pasó a tardar pocos segundos. Algo impresionante.

Por tanto la moraleja de la historia es: ” Índices, Índices, Índices, ……”

Y el problema en mi caso no era de Rails sino de la base de datos que no la tenía optimizada.

Os adjunto una lista con los plugins que suelo utilizar: Rails plugins

Popularity: 1% [?]

Netbeans ide 6.0 beta 1 Screencast

Acabo de hacer un Screencast sobre esta nueva beta de este editor que ahora soporta Ruby y Ruby on Rails.

Al pasarlo a YouTube me lo ha comprimido mucho y no se ve perfecto. Pero seguro que suficiente para haceros con una idea. Además es el primero…..

Creo que de esta forma tendréis una visión más clara de lo que es.

 L-exp: Ruby on Rails Editors

Popularity: 1% [?]

Guia de seguridad para Ruby on Rails

Interesante guia online que podemos ver todos los detalles sobre la seguridad en nuestras aplicaciones desarrolladas en Ruby on Rails. Tratan todas las temáticas, desde autentificación, SQL Injection, Spam, Cross Site, seguridad, etc….

Muy interesante y además muestra enlaces a otros recursos y  plugins.

 

Vía

Popularity: 1% [?]

Netbeans 6 beta 1 empuja fuerte

Hace días que comenté que utilizo Aptana + RadRails como editor para mi desarrollo en Ruby on Rails. Pues acabo de cambiar de editor tras probar la beta 1 que acaba de salir de Netbeans 6.

Para los que no hayan oido hablar de este editor. Se trata de un editor desarrollado en Java por Sun y que es gratuito. Hasta la versión 5 estaba especializado en el mundo Java y ahora han añadido el soporte de Ruby ( Rails) como opción.

El principal motivo entiendo que es la fuerte apuesta de Sun por JRuby, que es una implementación de Ruby realizada en Java. La extensión de esta permitiria un mayor uso e interoperatividad con Java. Haciendo que fomentase la incorporación de Java en diversos entornos.

Hablando del editor no tengo más que decir que me ha impresionado. Su estabilidad y capacidad de realizar todo tipo de tareas no lo he visto en ninguna otra alternativa. Lo más fácil es que lo compare con el que yo creia que era el mejor hasta el momento, Aptana con el plugin RadRails. Las principales mejoras que he encontrado han sido:

  • Estabilidad
  • Rapidez ( Aptana a veces se queda pensando)
  • El reconocimiento de código funciona muy bien y colorea perfectamente
  • Integración de Rake y ejecución
  • Integración de la cónsola
  • Integración con SVN ( esto aún he de profundizar más)
  • ReFactorización de código
  • Autocompletado de código
  • El navegador de objetos es muy útil

Aún tengo que desarrollar otras funcionalidades que tiene, pero sin duda he cambiado de editor sin pensarlo dos veces. Os recomiendo que lo probéis y os gustará.

Podéis descargarlo y escoger que versión queréis instalar. La versión sólo con Ruby ocupa 19 MB y os tendrés que instalar primero el JAVA SDK.

 

Si queréis ver todas las alternativas ver:

L-exp: Ruby on Rails Editors

Popularity: 1% [?]

descarga las presentaciones de Railsconf 2007

Desde la web de o’reilly podemos descargar las diapositivas de las diversas conferencias que se han hecho en RailsConf 2007 Europe.

 

descarga

 

L-exp list: RailsConf Europe 2007

Popularity: 1% [?]

Rails GIS hacks :: Espectacular

Ha habido una presentación en RailsConf Europe 2007 sobre GIS ( Sistemas de información geográfica) con Rails. Esta conferencia la ha dado Shoalb Burq’s y ha presentado todo sobre esta temática con Rails. Lo mejor es que ha colgado una manual y una presentación con detalle de como integrar una aplicación Ruby on Rails con Google Maps. Tratando todo los temas como Geolocalizacion, iPlocalizacion, YM4R_GM, integración con Google earth, activerecord geospatial, …… Además con ejemplos avanzados. Espectacular…..

El echo es que yo he podido probar la potencia de el plugin YM4R_GM y es facilisimo de utilizar. Aunque echaba a faltar una buena documentación que creo que quedará resuelta con estos documentos.

Podéis bajar la documentación en este enlace. No tiene desperdicio.

Actualización: Corregido el enlace. Gracias Danisev

Popularity: 1% [?]

Notas de Casper Fabriciu’s sobre Rails 2.0

Casper Fabricius nos muestras sus notas sobre la conferencia que ha dado DHH’s en RailsConf Europe 2007.

Comenta que no hay muchas novedades, pero alguna cosilla interesante como:

  • Podremos crear bases de datos desde migraciones
  • La migración será más productiva al cambiar algo la sintaxis
  • Restful Namespaces
  • En Rails 2.0 será muy fácil la implementacion básica de autentificación http
  • Se modifican las vistas rhtml a [nombre].[mime-type].[renderer]
  • Soporte mejorado del los MIMEs

 

Vía

Popularity: 1% [?]

Vídeo de la filosofía de trabajo de Google Docs

Acaban de prensentar Google Presentation ( la versión online de Google del famoso Powerpoint de Microsoft). Esta aplicación estaba al caer dado  que Google  quiere conseguir que las aplicaciones esten en internet. El tema que más me ha llamado la atención y quiero compartir con vosotros es un vídeo interesante ( en inglés) que explica la filosofía y ventajas de los documentos online de Google Docs.

 Vía

Popularity: 2% [?]

CodeGear presenta 3rdRail un IDE para Rails

Parece que el efecto Ruby on Rails está llegando también a los fabricantes de Software. Este es el caso de CodeGear, una compañía de Borland que se dedica a hacer IDEs para desarrollo de aplicaciones y ha presentado 3rdRAIL. image

Coincidiendo con RailsConf 2007 Europe acaban de presentar este producto que valdrá unos 299$ y es un entorno de desarrollo para el trabajo con nuestra web framework favorita.

Disponen de un vídeo que muestran todas las características de este IDE y sin duda que tiene cosas muy interesantes.

Me ha gustado la cónsola que dispone que completa el código que vamos escribiendo de nuestras tareas Rake. También el factoring que nos permite cambiar una acción en todo el código.

Esta versión es sólo para windows, cosa que sorprende con la cantidad de Maqueros  y Linuxeros que desarrollan en Rails.

Ya tengo localizados 11 IDEs para desarrollo con Ruby on Rails. ¿ cual utilizo yo? Pues yo utilizo Aptana + RadRails y va bastante bien.

Como conclusión yo diría que las funciones que tiene 3rdRail pueden ser suplidas fácilmente con un poco de conocimiento de Rails y la utilización de Aptana por ejemplo. Yo personalmente no invertiría en este software. Pero nunca se sabe….

 

Vía

Popularity: 1% [?]

RailsConf Europa a punto de empezar

Para el mundo del desarrollo con Ruby on Rails es una semana importante ya que en Berlín se realiza la conferencia anual europea de desarrolladores. En esta conferencia se suelen anunciar novedades y se realizan todo tipo de sesiones sobre esta Web Framework.

He creado una lista en la que se pueden seguir los principales blogs, fotos  y lugares web sobre esta conferencia. Además ya está disponible el nuevo sistema de feeds de L-exp que nos permite seguir las novedades de una y de más listas ( para saber más).

Y a lo que iba:

Seguir el evento RailsConf Europe 2007

Podéis también subscribiros a la lista

Popularity: 1% [?]

Get Adobe Flash playerPlugin by wpburn.com wordpress themes