Tuesday, May 27, 2008

Códigos que te harán usar Ruby

Tal y como lo definen en su página oficial, Ruby es un lenguaje de programación dinámico y de código abierto enfocado en la simplicidad y productividad. Su elegante sintaxis se siente natural al leerla y fácil al escribirla. Fue creado por Yukihiro "Matz" Matsumoto a mediado de los 1990's.

Me topé con Ruby hace menos de un año (8 meses), cuando estaba realizando mi tesis del Máster en Ingeniería de Software, y desde que empecé a utilizarlo como lenguaje de programación me di cuenta de lo que me estaba perdiendo. Una de las cosas que me encantan de este lenguaje de programación es la simplicidad y la reutilización del código. Esto se debe a que todo es un objeto.

A continuación algunos ejemplos individuales que muestran lo divertido que es programar en Ruby:

#muestra el contenido de una enumeración
%w(luis tomas).each { |n| puts n + ' es un nombre' }
#=> luis es un nombre
#=> tomas es un nombre

#cuenta las vocales en una cadena
str = 'me gusta ruby on rails'
puts str.scan(/[aeiou]/).length
#=> 7

#métodos de arreglos
arreglo = [45, 78, 12, 53]
puts arreglo.sort
#=> 12, 45, 53, 78
puts arreglo.max
#=> 78

#
métodos de rangos
digitos = 1..9
puts digitos.include?(5)
#=> true
puts digitos.include?(12)
#=> false

Hacer esto en otros lenguajes de programación no es tan sencillo, y mucho menos en línea de comando o en Internet.

Thursday, May 22, 2008

Getting Real

Acabo de leer Getting Real, el libro más reciente de 37signals. Es una especie de guía para desarrollar aplicaciones web de la mejor forma posible, con descripciones bien claras de lo que se debe y no se debe hacer. Se han basado en los trabajos realizados con los proyectos Basecamp, Campfire, Whiteboard y Ta-da List.

Me gusta el estilo que plantean para el desarrollo web, siempre enfocado en hacer las cosas lo más simple posible, sin perder tiempo en detalles no necesarios. Es una de la mejores guías que he leído para emprender con una aplicación web en Internet.

Estas ideas me han quedado bien claras luego de leer el libro:

  • Diferenciarse de las grandes compañías con un trato personal y amigable.
  • No perder el tiempo pensando en problemas que aún no han pasado.
  • Enfocarse primero en lo esencial.
  • No hacer reuniones a menos que sean sumamente necesarias.
  • El código hay que mantenerlo lo más simple posible.
Un dato curioso es que dicen que las personas que tienen mejor letra que otras tienden a ser más organizados y se esfuerzan mejor en lo que hacen.

Tuesday, May 20, 2008

Chapuza en SQL Server

Aunque normalmente utilizo MySQL y SQLite, la empresa en la que trabajo tiene un cliente que maneja sus bases de datos en Microsoft SQL Server. A diferencia de MySQL y SQLite, SQL Server es de Microsoft y, por lo tanto, vale un buen dinero y no es abierto.

Me he topado con varias limitantes en éste manejador de base de datos, y la última vez decidí hacer pública la próxima que encuentre; ésta se ha llevado el premio:

Los pasos (steps) de los trabajos (jobs) tienen una limitante de caracteres:

Hasta ahora no he encontrado otra solución que crear tantos trabajos como sea necesario. Lamentable...

Wednesday, May 14, 2008

Google Friend Connect

Google ha lanzado Google Friend Connect, una nueva herramienta para hacer de los sitios Web un lugar más sociable. Con unos cuantos códigos HTML (que se generan para hacerle copy-paste) los visitantes podrán identificarse en sus redes sociales, invitar sus contactos, dejar mensajes, subir imágenes, en fin, todo lo que se puede hacer en una red social, con la diferencia de que se está haciendo en un sitio Web personal.

La herramienta es buena, pero creo que Google está abarcando demasiado en la Web. Una persona que pase mucho tiempo en Internet y que además visite sitios que tengan herramientas de Google como ésta, serán vulnerables a que se conozca toda su actividad en Internet. A mi eso me suena al Big Brother (Gran Hermano)...

Monday, May 12, 2008

Foro de Internet 2008, Madrid

El fin de semana pasado (10 y 11 de Mayo) fui con Helena, Edward, Toribio y Juan al Foro de Internet 2008 que fue celebrado en el Palacio de Congresos de Madrid.

Del evento me han gustado mucho las ponencias de Enrique Dans, que dio una muy buena introducción el primer día; Carlos Blanco, explicando todo lo que hay que tener en cuenta para llevar de la idea a la realidad un proyecto Web; Javier Sanz de adslzone.net, hablando del nacimiento y puesta en producción de su sitio Web; y Javier Casares de ojo.es, para mi el que más claro habló de todos los ponentes, tal vez por su estilo o porque conoce muy bien el tema de los buscadores. También estuvieron interesantes las ponencias de Javier Castilla, Eduardo Manchón y elotrolado.net.

Pensé que sólo iba a oir hablar de programación PHP en todo el foro, pero me sorprendió Joshua Llorach cuando dijo que bandaancha.eu había sido rediseñado desde cero utilizando Ruby on Rails :).

Entre los ponentes estaban las empresas patrocinadoras del evento, algo normal ya que es la primera vez que se realiza y necesita apoyo. Pero lo que no me ha gustado es la forma en que se presentaron, algunos aportaron ideas relacionadas con sus productos, pero los demás dieron una mala imagen de la empresa que representaban, dedicándose sólo a vender.

Helena y yo nos planificamos para participar en todas las ponencias y el domingo, después de la última, teníamos un cansancio tremendo. Pero bueno, así es la vida, je je je.

El evento me ha servido para retomar las ideas emprendedoras que había iniciado pero que estaban abandonadas (tengo que sacar más tiempo para éstas cosas).

Friday, March 28, 2008

Ruby on Rails vs Java

Una imagen vale más que mil palabras...

Friday, February 15, 2008

Plugin para Flickr en Ruby on Rails

Al instalar el plugin para trabajar con Flickr en Ruby on Rails me di cuenta de que siempre me daba el siguiente mensaje de error, sin importar el API Key que colocara:
"Invalid API Key (Key has expired)"

Esto pasa porque el plugin viene con un API Key predeterminada y es necesario modificarla por la personal.

El plugin se instala así:
sudo gem install flickr

Luego, en el archivo:
[ruta_gems]/gems/flickr-1.0.0/flickr.rb

se coloca el API Key personal sustituyendo la que trae, que por cierto está vencida:
def initialize(api_key='API Key personal', email=nil, password=nil)

También está la opción de obtener una versión corregida del plugin, que ha sido realizada por la comunidad de desarrolladores de Ruby on Rails. Me imagino que ésta se convertirá en la versión definitiva, porque la forma de trabajar de la actual no va con el estilo de Ruby on Rails.

Thursday, January 31, 2008

Error en Rails: unexpected tINTEGER

Durante esta mañana estuve creando algunos modelos en Ruby on Rails. El siguiente error me daba cuando trataba de hacer .find(:all) a uno de ellos:

SyntaxError: compile error
.../gems/activerecord-2.0.2/lib/active_record/base.rb:1748
: syntax error, unexpected tINTEGER
Object::1


El problema es que estaba utilizando un campo llamado type. Al parecer Rails no acepta que un campo se llame así. Me imagino que deben de habar más palabritas que no se puedan utilizar. ¿Conoces alguna otra?

Sqlite por MySql en Rails2

Acabo de crear mi primera aplicación con Rails2 y me entero de que utiliza Sqlite como base de datos predeterminada en vez de MySql, que era la que se usaba con Rails1.

Había oído hablar de Sqlite pero nunca lo había utilizado. Me he puesto en eso y me ha gustado bastante, especialmente su sencillez :)

Veo que una de las principales causas de éste cambio es que la mayoría de los desarrolladores de Ruby on Rails trabaja con Mac y este sistema operativo trae este manejador de base de datos instalado; aparte de que sigue algunos de los principios de Rails: sencillez y cero configuración.

El uso de Sqlite en aplicaciones web tiene la ventaja de que no necesita configuración, y mucho mejor cuando se está trabajando en el desarrollo y pruebas.

Sin embargo, gracias a la forma en que Rails maneja su arquitectura MVC (modelo-vista-controlador), es bastante sencillo cambiar de base de datos, sólo hay que modificar el archivo config/database.yml, y listo!

Thursday, January 24, 2008

rails error: no such file to load — openssl (Ruby on Rails)

Luego de actualizar a la ultima versión de Rails y Gem en mi sistema operativo (Linux) me he topado con el siguiente error:

rails error: no such file to load — openssl (Ruby on Rails)
...
...

Este error pasa porque Rails está solicitando la biblioteca libopenssl para Ruby. Este error se corrige al instalar la biblioteca solicitada:

$ sudo apt-get install libopenssl-ruby1.8