Programación

ActiveRecord conoce a NeverBlock

Luego del revuelo que provocó la salida de NeverBlock a la comunidad de desarrollo Ruby/Rails, hubo gente que se dedicó a reimplementar ActiveRecord utilizando los beneficios de NeverBlock. Al día de la fecha, ActiveRecord solo incluye el adaptador neverblock-postgresql-adapter. Esta solución le permite a ActiveRecord realizar consultas en paralelo, como si se tratase de un sistema de multihilo, pero a diferencia de estos, tiene ciertas ventajas:

Escalando Rails con NeverBlock y DBSlayer

Actualmente se está hablando mucho de los problemas de escalabilidad de Rails, dado el caso de Twitter en primera instancia, y las posibles soluciones. Los detractores afirman que Rails es un corset en este sentido y que su arquitectura interna es bastante inflexible, si bien el principal problema no es del framework sino del lenguaje en si, ya que MRI 1.8.x no incorpora la gestión eficiente de multithreading.

Tutorial de Migrations en Español

Como lo prometido es deuda, cumplo en publicar el tutorlal en español de Migrations. Agradezo a Pablo Martinez por su invaluable ayuda. Que lo disfruten. Pueden descargarlo desde aqui.

Tutorial de ActiveRecord en español

Siguiendo con las traducciones, esta vez pongo a disposición el capítulo en castellano de ActiveRecord del curso TrainerOnRails. Espero que les sea de tanta utilidad como lo ha sido para mí. Agradezco el invaluable esfuerzo editor de Pablo Martinez. En la próxima entrega estará disponible el tuto de Migrations. 
El tuto se descarga aquí.

Curso de Rails Gratuito YA! (en inglés)

Via la lista de correo TrairnerOnRals (un curso de Rails que murió antes de terminar), me puse en conocimiento de un nuevo curso de Rails, al cual me inscribí, dado que comienza el 15/07 y se extiende hasta noviembre. Estuve recorriendo y encontré muy buen material, si bien tiende bastante hacia JRuby.

Espero que este curso tenga un final feliz.

 

Listar contenido de un FTP con Ruby

Hoy me encontré con la necesidad de generar un buen listado de archivos en un FTP. Busqué por todos lados y como no encontré algo que me sirviese escribí algo en Ruby.
A continuación el código

  1. %w{getoptlong rubygems net/ftp net/ftp/list uri}.each {|lib| require lib}
  2.  
  3. class CreateIndex
  4. def initialize
  5. @html = ''
  6. @parsed = []
  7. end
  8.  
  9. def connect(parameters)
  10. Net::FTP.open(parameters[:host], parameters[:user], parameters[:password]) do |ftp|
  11. ftp.list(parameters[:remote_directory]) do |e|

¿Usar Rails sin saber Ruby? Mmmmmm....

Con frecuencia me encuentro con gente que pretende usar Rails sin entender lo básico de Ruby. Yo mismo fuí uno de ellos, y por largo tiempo me di la frente contra el monitor al intentar asumir que Ruby era similar a otros lenguajes. Me pasaba las horas intentando descifrar que era lo que realmente hacían lineas como

  1. @nombres = User.find(:all).collect { |usuario| usuario.name }

_why te invita a los ShoesFests para el 11 y 25 de Julio

Después de algunas deliberaciones en la lista de correo, _why llama a todos los Ruby Hackers que quieran participar, a dos ShoesFest a realizarse el 11 y el 25 de julio de 2008.

El objetivo es poder escribir en conjunto aplicaciones Shoes divertidas, asi como corregir bugs e ir depurando las releases.

Agenda simple en Rails usando ActiveScaffold

posteo a continuación un pequeño ejemplo para crear desde cero una pequeña y simple agenda en Rails utilizando ActiveScaffold. Debido a incompatibilidades entre Rails Edge y ActiveScaffold, recomiendo usar Rails 2.0.x para construir el ejemplo. Sugiero ver el demo online de ActiveScaffold para ver su funcionamiento.

Este ejemplo lo desarrollé con fines didácticos y no contempla validaciones, callbacks y utiliza unicamente asociaciones "uno a muchos".

Usar select, reject, collect, inject y detect

Del blog de Mathew Carriere me tomo el atrevimiento de traducir este post que me resultó muy interesante. Si bien es básico, no por eso se desmerece. Son múltiples las razones por las que traduzco esto:

Distribuir contenido