lunes, 2 de noviembre de 2009

domingo, 18 de octubre de 2009

Instalando módulos en Ruby

RubyGems es un administrador de paquetes cuyo objetivo es distribuir programas o bibliotecas de código en Ruby. Entre sus principales funciones destacan:
  • Instalar paquetes a distancia
  • Admnistrar dependencias de los paquetes
  • Desinstalar de forma facil

Opciones del instalador de paquetes

  • gem list muestra los paquetes instalados
  • gem install nombrepaquete instala paquete y sus dependencias
  • gem unistall nombrepaquete desinstala el paquete
  • gem help commands lista completa de todas las opciones


Modulo de acceso a bases de datos


Poco podemos hacer con cualquier lenguaje de programación si no tenemos acceso a nuestras bases de datos.


Para esta tarea Ruby cuenta con varias opciones, una de ellas es DBI, disponible también para los lenguajes Perl y Phyton. DBI es una interfaz independiente que permite interactuar con distintas bases de datos como Oracle, Sybase, Informix, Mysql, SQLServer y Access.


DBI tambien tiene soporte para ODBC, tecnología todavía muy extendida al igual que su uso.


Para instalar el módulo DBI, desde el administrador de paquetes dar la instrucción:


gem install dbi


Para verificar si el módulo fue instalado utilizar gem list.

sábado, 17 de octubre de 2009

Instalación y prueba del interprete de Ruby

Ruby es un lenguaje de programación orientado a objetos creado por el Japonés Yukihiro Matsumoto que presento su versión inicial en 1995.

Existen distribuciones para los distintos sistemas operativos, hasta este momento pueden descargarse de la dirección http://www.ruby-lang.org/es/downloads/. One-click Installer es la mejor opción para instalar en Windows y de inmediato ponerse a trabajar.

Despues de instalar tenemos:

  • fxri que es el interprete de Ruby con ayuda interactiva
  • SciTE que es un IDE de desarrollo

  • RubyGems que tiene la documentación y el administrador de paquetes

El lado izquiero del intérprete permite conocer las principales clases, sus métodos y propiedades.

El IDE SciTE es un entorno de desarrollo donde podemos administrar nuestros programas como archivos.


Para ejecutar el programa anterior simplemente presionar F5 y esperar el resultado del lado derecho.

El programa anterior define un objeto a (linea 2). Por cada elemento del objeto (linea 4), se imprime su valor (linea 5).

Inteligencia artificial

Hace algunos años leí un libro de inteligencia artificial, desde entonces me di a la tarea de resolver el rompecabezas de 8 piezas mediante el Algoritmo A*. Este algoritmo resuelve el problema por búsqueda exhaustiva en un árbol de juego, un árbol que contiene todos los escenarios posibles del juego.


El algoritmo implementa una búsqueda de primero el mejor.

Se utiliza una función de evaluación estática F formada por:

F = g + h

La función g es una función que representa el costo de llegar del estado inicial al estado evaluado.

La función h es una estimación del costo de llegar desde el estado evaluado al estado final u objetivo. Para este juego h corresponde al número de piezas que no están en la posición correcta en relación al estado final.

En cada paso, el algoritmo selecciona el mejor nodo que no se ha expandido hasta el momento, es decir, aquel que tiene el menor valor de funcion F. Este nodo se agrega a una lista de nodos explorados y sus nodos sucesores o hijos se agregan a la lista de nodos pendentes de ser explorados

En nuestro ejemplo, se expande el nodo inicial con 2 sucesores que se agregan a la lista de nodos pendientes de ser explorados. Según la funcion heurística, el mejor nodo es el de la derecha con un valor de 2 (g=1 y h=1). Este nodo se toma y se generan sus sucesores que se agregan a la lista de pendientes, entre ellos se encuentra la solución con un valor de h=0 y g=2 que es el mejor nodo.

El codigo presentado es mas claro que mi explicación...

http://rapidshare.com/files/294439459/codigo_puzzle_java.zip.html