Evitar navegación.
Principal

ruby

Ruby on Rails 2.0, "No te repitas"

Despues de más de un año de trabajo ya tenemos una nueva entrega del framework Open Source y multiplataforma para Ruby que seguramente conseguirá más adeptos para uno de los lenguajes de programación web de moda.

Seguramente hayas oido e incluso utilizado RoR (Ruby on Rails), pero por si no lo conoces decir que es un framework Open Source que sigue la arquitectura Modelo Vista Controlador (MVC), su lema es como bien dice el titulo de esta entrada "No te repitas" ya que trata de simplificar la tarea de desarrollar aplicaciones web intentando escribir el menor código posible.

El lenguaje de programación "Ruby"

El lenguaje de programación utilizado es Ruby que permite la metaprogramación, esto hace que el código sea muy legible.

Ruby es un lenguaje de scripts para una programación orientada a objetos rápida y sencilla, es un lenguaje de programación interpretado, de muy alto nivel y orientado a objetos.

En este lenguaje, hasta los números y los caracteres literales son objetos, y tienen los métodos de su clase, que pueden llamarse normalmente.

Ruby podrá ser probablemente uno de los lenguajes de programación más faciles de los que vas a ver.

En este tutorial puedes encontrar algunos ejemplos de uso de este lenguaje.

Historia de Ruby on Rails

Ruby on Rails fue ideado por David Heinemeier Hansson (Basecamp | 37 Signals). Fue liberado al público por primera vez en Julio de 2004.

  • Ruby on Rails 1.0 fue publicado el 13 de diciembre de 2005
  • Ruby on Rails 1.1 fue publicado el 28 de marzo de 2006
  • Ruby on Rails 1.2 fue publicado el 18 de enero de 2007
  • Ruby on Rails 2.0 fue publicado el 7 de diciembre de 2007

OpenId en Ruby on Rails

OpenIdOpenID es el sistema de autentificación que probablemente en un futuro utilizen la mayoría de los sitios web para controlar el registro y entrada de los usuarios.

Mediante OpenID cualquier usuario puede identificarse en una página web a través de una URL y verificarse en cualquier servidor que soporte el protocolo.

De este modo no será necesario crearse cuentas individuales para cada una de nuestras páginas favoritas, en su lugar unicamente necesitamos este identificador proporcionado por OpenID.

Ventajas de OpenId para desarrolladores

1. Nos proporciona un único sistema de identificación.

2. Nos permite incluirlo en nuestra aplicación de una manera sencilla y nos proporciona a nosotros y al usuario una completa infraestructura en los procesos de creación, verificación, encriptación y recuperación de contraseñas. Todas estas operaciones serán ajenas a tu servidor y no tendras que tener conocimiento alguno sobre estas.

3. Aumentará en gran medida el número de usuarios registrados a tu sitio, el hecho de que el usuario no tuviera que crearse una nueva cuenta si ya era usuario de la plataforma (OpenID), facilitará seguro su ingreso en la comunidad del sitio.

4. Dará seguridad al usuario, el usuario al conocer que habrá una plataforma fuerte y segura manejando sus datos confiará sin problemas los datos personales.


El libro de 37signals - Getting Real

Otras veces hemos hablado de 37signals, reconocida como una de las mayores innovadoras en el mundo del desarrollo web, creadora de Basecamp, Ta-da List y otros (Herramientas para gestionar proyectos, hacer listas, etc.), hace algún tiempo publicaron su filosofía de desarrollo en el un libro titulado Getting Real.

El libro en cuestión habla de la simplificación del desarrollo y la orientación adecuada para el usuario final, el libro está disponible en PDF previo pago de 19$ pero lo interesante es que lo puedes leer de manera gratuita en este enlace.



Los lenguajes de programación más populares

Tendencias de los lenguajes de programación | tufuncion.comCómo se puede apreciar (imágenes inferiores) la tendencia de los lenguajes de programación coinciden practicamente en los 5 primeros que son:
1- Java
2- C++
3- C
4- Php
5- Perl

De estos 5 lenguajes de programación unicamente dos tienen una tendencia positiva, php y java por lo que podriamos decir que de aquí a unos años se producirá un cambio generacional en los lenguajes de programación...

¿Posibles candidatos para convertirse en lenguajes populares?
Los candidatos más firmes para entrar en este top 5 a mi modo de ver son:
1- Java
2- C++ Php
3- C C#
4- Php Ruby
5- Perl Javascript

Bueno antes de que pongais el grito en el cielo se que no estoy agrupando lenguajes del mismo nivel, unicamente me baso en tendencias (en este caso número de libros comprados y cantidad de proyectos desarrollados).

Gráfica que muestra la cantidad de proyectos subidos a SourceForge según el lenguaje de programación utilizado.


¿Qué es Ruby?

Puede que aún te preguntes ¿Qué es Ruby? a lo que podemos responder que es un lenguaje de scripts para una programación orientada a objetos rápida y sencilla, es un lenguaje de programación interpretado, de muy alto nivel y orientado a objetos, pero tambien puede que te preguntes entonces que es Ruby on Rails, Rails es un framework para Ruby de la misma manera que Cakephp lo es para Php, basicamente es una utilidad diseñada para facilitar el desarrollo de proyectos en Ruby.

Ruby es un lenguaje de programación de tan alto nivel que hasta los números y los caracteres literales son objetos, y tienen métodos de su clase, que pueden llamarse normalmente.

Ruby podrá ser probablemente uno de los lenguajes de programación más faciles de los que vas a ver.

Es realmente fascinante ver cuanto llega a simplificar la programación por ejemplo si quisieramos hacer una suma sólo necesitariamos una sentecia:

puts 1+2

Pero por ejemplo si quisieramos repetir una cadena de texto tres veces no necesitariamos ni siquiera un bucle nos bastaria con:

puts ("Hola"+" Adios ")*3

... y si lo quieres complicar aún más y lo que quieres es crear un sudoku prueba con esto.


Tutorial básico de Ruby

Ruby es un lenguaje de scripts para una programación orientada a objetos rápida y sencilla, es un lenguaje de programación interpretado, de muy alto nivel y orientado a objetos.

En este lenguaje, hasta los números y los caracteres literales son objetos, y tienen los métodos de su clase, que pueden llamarse normalmente.

Rubí podrá ser probablemente uno de los lenguajes de programación más faciles de los que vas a ver.
En este tutorial voy a estructurar los trozos de códigos con diferentes formatos intentando hacer el código mas facil de leer.


Tendencia de los lenguajes de programación

Tendencias de los lenguajes de programación | tufuncion.com
El crecimiento de Ruby y Javascript, debido al crecimiento de las aplicaciones Web 2.0 es un hecho.
Esto está provocando un paulatino descenso de Java y C/C++.

Cómo puedes observar en el gráfico la introdución de Rails supone el comienzo de una trayectoría ascendente de Ruby.

Es destacable tambien como sql sin ser un lenguaje de programación lleva una línea continua ascendente y sin sobresaltos.

Lo normal sería pensar que este gráfico es un indicador de las habilidades necesarias en un futuro por un desarrollador web, pero la realidad es bien distinta aquí en España, sólo habría que darse una vuelta por algún portal de empleo y ver las habilidades que requieren las empresas...


Crea Sudokus con Ruby

En pocos pasos podemos generar sudokus con ruby, estos serían generados automaticamente.

Este proyecto consta de dos archivos:

  • sudoku.rb Es la base del código y el encargado de generar los sudokus.
  • ranarray.rb Contiene las rutinas de aletoriedad.
  • Vamos a partir de la base que deseamos puzzles de tamaño 9x9.

    Paso 1: Generar la solución

    Nuestra primera tarea será crear la solución del puzzle. El código para generar la solución se encuentra aquí abajo y esta compuesto por tres funciones:

    * available_values - calcula una lista de valores válidos para una determinada posición.
    * get_least_valid encuentra las posiciones que poseen más dificultades.
    * solve_puzzle recursivamente llena el puzzle, usando get_least_valid y comenzando cuando puzzles sin solución son detectadoss.

    El código contiene una clase SudokuGrid con un array de 9x9 llamado @grid. El rango de valores utilizados es de 0 a 9, donde 0 significa que esa posición esta vacía. Hay varias rutinas y algunas de ellas tienen una pequeña explicación en el propio código.