Cómo conectarse a un servidor SQL Server 2005 con ActiveRecord 3.0
Recientemente me encontré en la tarea de implementar algún tipo de conectividad con un servidor Microsoft SQL Server para extraer información muy específica que pudiera publicarse en el sitio web de un buen cliente. El sitio web en sí está desarrollado en PHP, pero exponer un servicio web desde la Intranet del cliente usando ese lenguaje para conectarse con el servidor SQL Server no parecía ser la mejor solución a simple vista: Microsoft sí ofrece un "driver" de SQL Server para PHP5, pero éste no es incluído por defecto con la distribución oficial de PHP; sin contar con mi abversión a todo lo que tenga la marca de "MS".
Finalmente decidí montar un pequeño servicio web usando Sinatra y un stack Ruby completo, aprovechando mis recientes exitosas experiencias con ese mínimo "framework". En este artículo explicaré cómo lo hice, para futura referencia personal y de todos los que necesiten hacer algo parecido.
Got NetBeans? Choose your weapons wisely
Some time ago, I got involved as a freelancer in a Rails project that required all developers to use the NetBeans IDE (by Sun Microsystems, back then). Boy NetBeans was part of their "agile" practices. But this was kind of a bummer for me, having never used such IDE before and mostly beign a long time "Java hater" myself.
Nevertheless, I had to set up my Rails development environment in NetBeans, learn it's tricks, shortcuts, options, preferences, etc. It probably took me a couple of days just to get it working into something useful to me, but it never made me feel much more "productive" in any way.
For what I had to do, I thought, NetBeans was an overkill; worst, it felt sluggish in my little GNU/Linux development box and, for all it's unique features, it's polluted UI just got in my way most of the times, distracting me from the real thing. I coped with it for the time being but eventually moved on somewhere else. On the other hand, the developers left behind most likely continued to use it in every other single next project.
Now that Oracle effectively killed the Ruby/Rails support in NetBeans 7.0 onwards, I think they might regret their choice of an IDE and just may be have had their "practices" disrupted at least a little bit? Bummer?
Solucionando el problema de Ruby y Rails en MacPorts
Ya antes había escrito en este mismo blog porqué MacPorts era la opción más conveniente disponible en OS X para instalar un entorno completo de desarrollo Ruby on Rails. Sin embargo, pronto descubriremos que los ports disponibles de los paquetes que usamos se actualizan frecuentemente mucho más rápido que nuestros propios proyectos. Esto es generalmente algo bueno, asegurándonos lo último y mejor del software de código abierto a sólo un comando o unos clicks de distancia.
Pero a veces, las versiones más recientes de paquetes importantes pueden "romper" la compatibilidad con el resto del stack de nuestra aplicación. Un triste caso es el conocido error de compatibilidad de Ruby 1.8.7, la versión actual de Ruby disponible en MacPorts, con versiones viejas de Rails (sobre todo las pre-2.0).
Con este problema me dí de bruces cuando al intentar actualizar el port de RubyGems para luego instalar la versión 2.2 de Rails con él, MacPorts también actualizó mi port de Ruby, una dependencia de RubyGems, inmediatamente dejando inusables a todas mis aplicaciones Rails 1.2.6 instaladas en mi MacBook.
¡RubyGems 1.1.0 disponible en MacPorts!
Este es sólo un post rápido para festejar la actualización del "port" de RubyGems en MacPorts a su última versión disponible (1.1.0). Esto hecho no es menor, pues como sabemos, Rails 2.0 tienen entre sus dependencias a RubyGems 1.0 como mínimo, lo que significa que la v0.9.x que vinimos usando hasta ahora no es compatible con esa actualización del framework.
Hasta este momento el "port" de rb-rubygems correspondía a su versión 0.9.4, pero desde ayer ese paquete se actualizó al ultimísimo RubyGems 1.1.0.
MacPorts ha sido mi gestor de paquetes libres de preferencia en el universo Mac desde mi primer día como switcher, y aunque siempre es posible instalar ese tipo de software desde sus fuentes también en OSX, mi larga experiencia en Linux me enseñó que un buen gestor de paquetes es la manera correcta para hacer ese tipo de trabajo si queremos tener un sistema coherente y actualizable en el tiempo.
Veamos entonces cómo nuestra paciencia redituó a la larga actualizando el port de RubyGems en nuestra instalación de MacPorts a su última versión.
Construyendo mi primera "Hackintosh"
En los meses siguientes a la compra de mi primer MacBook no me llevó mucho tiempo descubrir el enorme valor que le agregaba a ese hardware su exclusivo sistema operativo: Mac OS X 10.4 "Tiger". Sin duda uno como no había visto nunca antes: rápido, atractivo, intuitivo, productivo y, como no me cansaré de decirlo, con un verdadero BSD por dentro para hacer las delicias del linuxero más acérrimo. Efectivamente, OS X es la mitad de la magia de toda la "experiencia Mac", imitado incansablemente pero jamás igualado.
Pero por supuesto, si queremos tenerlo, tenemos que comprar una Mac, órdenes de magnitud más cara que cualquier configuración PC equiparable... ¿O no?