Aún no hay anuncio oficial pero DHH nos informa vía Twitter que ya ha sido marcada la versión RC1 de Rails 2.1 y que puede ser descargada.
Category Archives for RubyonRails
Libro :: Agile Web Development with Rails :: 3a Edición
Acaban de anunciar la aparición de la 3a edición de “Agile Web Development with Rails“. Para los que no lo conozcan es el libro básico y perfecto para iniciarse en Ruby on Rails. Está muy bien estructurado y va desarrollando un ejemplo que nos permitirá iniciarnos en esta Web Framework.
Con la aparición de la versión Rails 2.0 la anterior edición quedó completamente desfasada ya que el ejemplo no utilizaba Rest que es la nueva filosofía de desarrollo.
No puedo más que recomendarlo a aquellos que quieran iniciarse en esta Framework. No se si existe versión en Castellano y podemos comprarlo tanto en PDF como en papel ( o los dos formatos).
Lo que más me gusta de Pragmatic Programmers es la posibilidad de comprarlo en fase Beta e iremos recibiendo actualizaciones de este hasta que llegue el definitivo. Incluso si hay correcciones posteriores te las envían.
Este libro es la base para empezar y coger una buena idea de su funcionamiento. Pero lo siguiente que nos encontraremos es que hemos de aprender Ruby para desarrollar en Ruby on Rails. Por ello os añado una lista con los libros que yo he encontrado interesantes.
L-exp | books to learn Ruby on Rails
Detectando problemas de rendimiento en rails
Hace tiempo ya escribí un post que había podido analizar cuellos de botella en la base de datos por falta de índices con el plugin query analyzer. Ahora voy a hablar de otro problema que es complejo de analizar que consiste en detectar aquellas páginas que son más lentas y hacer pruebas de rendimiento en nuestra web.
El primero que he encontrado es RAWK:
Consiste en un fichero ruby que nos descargamos a nuestro servidor y lo ejecutamos directamente indicándole cual nuestro fichero production.log. Este lo que hará será analizarlo y sacar estadísticas muy completas. Es perfecto para poder analizar aquellas consultas más lentas o las que más se están realizando.
Para ejecutarlo hacer ruby rawk.rb < log/production.log
Si queréis guardar el resultado en un fichero ruby rawk.rb < log/production.log > file.txt
También si queremos borrar los logs lo podemos hacer con rake log:clear RAILS_ENV=’production’
Con este he encontrado varías páginas que son excesivamente lentas y además puedes ponderar por el número de veces que han sido usadas permitiéndote hacer una estrategia de optimización.
El siguiente es Rails Analyzer:
Consiste en una serie de herramientas para realizar pruebas de carga y analizar rendimientos. Dispone de varías herramientas como Bench, Crawler, RailStat, IOTail, Action Profiler y Syslogger. He probado Crawl que empieza a hacer una serie de llamadas a una dirección web analizando cuando lo paramos el rendimiento real de este. Muy interesante. Con Bench hacemos lo mismo, pero lo hace en paralelo y nos puede ayudar a dimensionar el número de fastcgi o mongrels que ponemos.
Aún me falta profundizar en todos ellos, pero gracias a estas herramientas se me abren nuevas posibilidades de optimización que hasta ahora se me hacían más difíciles. ¿ conoces otras formas de analizar y optimizar?
Vía | Analyzing the Production log (podcast)
L-exp | Rails plugins and gems ( mis preferidos)
Phusion Passenger - un modrails para apache
Existe un proyecto que pronto se convertirá en realidad que consiste en un módulo del servidor HTTP Apache para ejecutar y configurar fácilmente Ruby on Rails . No soy experto en el tema, pero la idea es que se puedan crear instalaciones fáciles y de forma efectiva. Anuncian desde su blog que pronto estará disponible una versión para ser probada públicamente.
Entiendo que en cuanto a rendimiento y estabilidad también deberá tener sus ventajas ya que como se puede ver los primeros resultados son buenos.
También se puede ver un vídeo que muestra con más detalle su funcionamiento.
Que novedades traerá Rails 2.1
Desde Riding Rails (Blog oficial de Ruby on Rails) nos informan de un avance de las novedades que traerá Rails 2.1. Estas son:
- Dependencias de Gems
- Dirty tracking con actualización parcial
- has_finder de la forma de named_scope
- Soporte incluido de timezones ( me írá muy bien)
- Mejor infraestructura para el caching
Podéis ver más detalles en la fuente.
No comenta nada sobre el rendimiento, quizás será el tema del caching el arma que tenía escondida.
The Rails Way
He estado utilizando últimamente este libro con bastante frecuencia y he podido resolver varios temas que tenía pendientes en L-exp de forma fácil.
Este libro escrito por Obie Fernández se ha convertido para mi en una buena fuente de consulta y para resolver determinados temas. Esta escrito con mucho detalle y además tratando todos los temas clave para que se puedan resolver fácilmente con la lectura ( ata todos los cabos ).
Trata todos los temas que tenemos que conocer para desarrollar aplicaciones con Ruby on Rails. Además no sólo se limita a tratar lo académico sino que además aporta otros elementos para hacer que las aplicaciones sean más funcionales y que el desarrollo sea más ágil. Además aporta experiencias suyas y consejos.
Este libro está actualizado ya que soporta Rails 2.0 y por tanto de momento estaremos a la última. Cosa que en algunos libros de Rails al cambiar de versión han quedado desfasados.
Pude ver a Obie Fernández en La Conferencia Rails hispana 2007 y me causó muy buena impresión. Una persona bastante pragmática y con mucho expertice. Claramente refleja la impresión que me llevé con este libro.
He ido recomendando libros alguna vez y supongo que hay un libro para cada cosa. Para mi este sería el tercer libro que me compraría si empezase con Ruby on Rails ahora.
- Agile Web Developing with Rails (2n edition)
- Ruby for Rails
- The Rails Way
Este libro está en inglés y no se si existe traducción. La ventaja es que ahora el dólar está barato.
Podéis ver una lista en L-exp sobre mis recomendaciones de libros con todos los enlaces. Plantearos hacer una pequeña inversión y ganaréis bastante tiempo en aprender Rails.
Creando ficheros OPML con Rails
Es un código muy sencillo para generar un fichero OPML ( Outline Processor Markup Language) que permitirá exportar las feeds que tiene una determinada lista en L-exp y luego poderla importar en nuestro lector de feeds preferido.
El código es el siguiente:
En nuestro controlador
def create_opml
@data= Data.find_by_id(params[:id])
end
En nuestra vista
xml.instruct! :xml, :version=>"1.0" , :encoding=>"UTF-8"
xml.opml "version"=>"1.0" do
xml.head do
xml.title(@data.name)
xml.dateCreated(@data.created_at.strftime("%a, %d %b %Y %H:%M:%S %Z"))
xml.dateModified(@data.updated_at.strftime("%a, %d %b %Y %H:%M:%S %Z"))
xml.ownerName(@data.user.login)
end
xml.body do
for element in @data.elements
if not element.program.feed.blank? and not element.program.feed=='http://'
xml.outline "text" => element.program.name, "title" => element.program.name , "type" => "rss", "xmlUrl" => element.program.feed, "htmlUrl"=>element.program.web
end
end
end
end
Podéis utilizar un validador para comprobar que realmente cumple con las especificaciones OPML.
Acordaros de añadir un ruta en routes.rb
map.connect ‘/xml/opml/:id/export.opml’, :controller=>’xml’, :action=>’create_opml’
sobre esta configuración básica podéis hacer las variaciones que queráis. En mi caso necesito un id que referencia la lista con los datos. Pero esto es adaptable a vuestras necesidades.
Rendimiento de Rails 2.0 y el futuro Rails 2.1
Desde Riding Rails nos informan que alguien ha hecho una comparativa demostrando que Rails 2.0 es entre un 30 y 50% más rápido que Rails 1.2.X. Además otro estudio muestra que consume menos memoria que la versión previa.
En el post nos anuncian que para la versión 2.1 vendrán interesantes novedades que aún harán ganar más rendimiento. ¿quizás la integración con Ruby 1.9?
Microsoft pide ayuda para integrar Silverlight con los lenguajes dinámicos
Me ha llamado la atención la presentación que han hecho en MIX08 llamada Microsoft Silverlight and Dynamic Languages. En esta Microsoft hace un claro
manifiesto que Silverlight ( Flash killer) va a estar abierto a todo. Por tanto quieren que todas estas comunidades ( Rails, Django, PHP, Merb, ….) colaboren para que Silverlight se pueda usar desde estas de forma totalmente gratuita y sin limitaciones.
Insisten en que se pueda desarrollar en cualquier plataforma ( Windows, Linux, Mac), con cualquier navegador ( IE, Firefox y Safari) y cualquier editor (Visual Studio, Textmate, Vim, etc…)
Si veis el vídeo podréis comprobar que hacen una demo “Hello World” usando Ruby y con un Mac que utiliza mono (.NET para Linux). Posteriormente hacen una con un equipo con Windows Vista que es más completa ya que conecta con Flickr y utiliza Norvig spell checker para detectar posibles palabras parecidas. Una con ASP.NET MVC Framework y otra con ruby sobre Windows.
Ya es posible integrar Rails con Flex y de forma muy completa. A ver si la comunidad se anima y trabaja para que podamos integrarlo fácilmente.
Videos RailsConf 2007
Acabo de encontrar los vídeos de las presentaciones que hubieron en RailsConf 2007. No tenemos nada que envidiar en la Conferencia Rails hispana 2007.
No conocía blip.tv y tiene una opción para descargarlo en iTunes.
