Entries Tagged 'webapps' ↓

El lenguaje de programación Ruby

El equipo de Ingenet asistió la semana pasada a la Reunión de Enero de Grupo de Ruby de la UNAM (La siguiente reunión es abierta, es el 24 de Febrero, ve más detalles en la página del grupo en meetup.com).

¿Qué es Ruby? Según wikipedia:

Ruby es un lenguaje de próposito general dinámico, reflectivo y orientado a objetos que combina la sintáxis inspirada en Perl, con sabor a Smalltalk. Ruby nació en Japón a mediados de los 90s, diseñado originalmente por Yukihiro “Matz” Matsumoto. Esta basado en Perl, Smalltalk,  Eiffel, Ada y Lisp.  Ruby proveé de soporte a diversos paradigmas de programación, incluyendo programación funcional, orientada a objetos, imperativa y reflectiva. También tiene un sistema de tipado dinámico y administración automática de memoría; en estos y otros aspectos, es muy similar a Python, Perl, Lisp, Dylan y CLU.

Ruby es grátis y se puede obtener directo de la página web, para prácticamente cualquier sistema operativo común, como Windows, Mac OS X y Linux. Ruby se puede baja aquí.

Veamos ahora la sintáxis del lenguaje, con el típico programa “hola mundo”:

puts "Hello World!"

Para correrlo en su computadora, baje Ruby como arriba se indica.

En Ruby todo, absolutamente todo, es un objeto, aun los valores literales. Por ello, se puede hacer magía como:

-199.abs => 199
"cinco".length => 5

Ruby además es un lenguaje rico qu epermite desde hacer estos programas (cosa que podrian haber leido en perl o python):

puts "What's your favorite number?"
number = gets.chomp
output_number = number.to_i + 1
puts output_number.to_s + ' is a bigger and better favorite number.'

 

o cosas tan complejas como funciones lambda:

proc {|arg| print arg}
Proc.new {|arg| print arg}
lambda {|arg| print arg}

Uno decide que tanto del lenguaje desea aplicar. Una de las razones por las cuales Ruby se ha convertido en un lenguaje importante en el medio de la web 2.0 es la facilidad con la que se pueden crear aplicaciones web 2.0 con la ayuda de Ruby on Rails (también conocido como RoR).

RoR es un framework (un conjunto de herramientas) que permite al programador crear una aplicación orientada a la arquitectura MVC para organizar la programación de la aplicación. Ruby on Rails incluye herramientas que hace que las tareas comunes de desarrollo sean faciles, tal como una herramienta de “scaffolding” que genera automáticamente los modelos y vistas básicos para un sitio web. También incluye WEBrick, un web server simple en Ruby (aunque hoy por hoy se usa más Mongrel); también incluye Rake, un sistema de build para construir la aplicación. Junto con Rails, estas herramientas proveen un ambiente básico de desarrollo. Ruby on Rails requiere un servidor web para funcionar, y funciona con casi todos los servidores web modernos.  Ruby on Rails también es famoso por el uso que le da a bibliotecas/frameworks como Prototype y Script.aculo.us para AJAX. Ruby on Rails ofrece como salida por omisión el HTML y XML, siendo este ultimo muy util para servicios RESTful. Ver más información en la wikipedia.

Puede bajarse Ruby on Rails aquí.

Existen diversos recursos en línea para aprender Ruby. Una pequeña lista a continuación:

Este post también fué publicado en Ingenet: El lenguaje de programación Ruby.

Ushahidi

Hoy encuentro que mi amigo damog compartió en su greader un articulo muy bueno de Ushahidi.

Ahora, ¿para qué sirve? Si ustedes son tuiteros, habrán notado que cuando pasa algo, como un temblor, inmediatamente hay una ola de mensajes del estilo “estoy en la Roma Norte y aquí todo esta bien” y asi. Los miles de ojos, camaras de celular, etc. estan atentos ante un evento de esa naturaleza.

En México hubó una crisis en este año de influenza. Mucha gente no salió de su casa, otra si y reportaba que sucedia en el metro, si revisaban o no, si la gente llevaba tapabocas, etc.

También en México, hace poco sucedió que una persona asesinó a algunas personas en el metro, yo me entere porque un tuitero estaba ahi. Y tambien subieron fotos y videos, *casi* en tiempo real.

Esto de verdad reinventa la manera de comunicarnos e interactuar. Hoy en día existe un software *especializado* para llevar un seguimiento de crisis como temblores o inundaciones, de forma real, alimentado por la población a través de mensajitos del celular, correos, etc. Ushahidi es esta aplicación. Funciona en web, y es gratis. El código fuente esta aquí.