Ruby, ¿Diamante en bruto?

7 comentarios · 3.463 lecturas · programacion

Para los que no lo sepan, Ruby es un lenguaje de programación de alto nivel, que se está poniendo muy de moda ultimamente. Los motivos son varios, entre ellos está la facilidad de programación (es un lenguaje muy sencillo), la orientación a objetos (hasta las cadenas de carácteres son objetos) o que es un lenguaje interpretado. Además, por si fuera poco es multiplataforma, lo que lo hace ideal para funcionar en cualquier sistema.

Hace poco, estuvo Richard Dale (desarrollador de KDE y experto en Ruby) en la facultad de la ULL impartiendo una conferencia acerca de este lenguaje de programación.

Como no pude asistir y me lleva picando la curiosidad desde hace algunos días con este lenguaje, me he puesto a buscar un poco y he encontrado TryRuby, una página donde explican (en forma de un intérprete de comandos muy currado en AJAX) las bondades de este lenguaje de programación. Esta en perfecto inglés, aunque se hace muy básico de lo bien explicado que está.

En este video a continuación podemos ver como David Heinemeier Hansson, el creador del framework Ruby on Rails crea un motor para un blog en menos de 15 minutos con Ruby (QuickTime).


AJAX: Javascript asíncrono y XML

12 comentarios · 6.366 lecturas · programacion

Llevo algunos días buscando información sobre AJAX en bibliotecas y librerias pero con muy poca suerte.

Tras mirar un poco, la documentación que encuentro para comprar (sólo en inglés y por internet, por supuesto), son los siguientes libros:

ajax books libros
  • Ajax in Action, de Dave Crane, Eric Pascarello y Darren James (2005, 680 páginas)
  • Foundations of Ajax, de Ryan Asleson y Nathaniel T. Schutta (2005, 296 páginas)
  • Professional Ajax, de Nicholas C. Zakas, Jeremy McPeak y Joe Fawcett (2006, 432 páginas)

Al parecer el que mejor crítica tiene es el primero, Ajax in Action. ¿Alguien ha oído hablar de alguno? ¿Sabe que tal están o conoce más títulos? ¿Alguna fuente de información en español? ¿Tutorial, guías o manuales en PDF?


Backtracking: Volviendo atrás

10 comentarios · 10.559 lecturas · programacion

Volviendo hacia atrás en el blog algunas semanas -haciendo backtracking-, comentaba el uso de la recursividad en la programación y lo interesante que resultaba definir algo contenido en la misma definición.

El Backtracking es una técnica de programación de la que se puede partir de la definición de Recursividad (vease definición de recursividad) con la diferencia que, en el backtracking, al existir varios caminos diferentes a elegir, una vez llegado al final y no cumplirse la condición establecida, volvemos atrás para seguir buscando caminos diferentes o alternativos y posiblemente correctos.

La idea del backtracking, si aún no la has entendido, se ve bastante bien en estos ejemplos del Laberinto y las n-Damas (en Java).

sudoku

Finalmente, como lo prometido es deuda, subo la práctica comentada en el anterior artículo sobre recursividad que resuelve sudokus planteados por medio de la técnica del backtracking. Recordar que no es la mejor técnica ni mucho menos para resolver Sudokus, sino prácticamente usar la fuerza bruta para resolverlos con la posibilidad de volver atrás y buscar más caminos.

El programa está realizado para Free Pascal y permite:

  • Insertar números uno a uno (comprobando si es posible insertar el número según las reglas)
  • Cargar y salvar en un fichero de tipo propio los sudokus creados
  • Intentar resolver el sudoku mediante backtracking indicandote si tiene varias, única o ninguna solución y calculando el tiempo que tarda en resolverlo.
  • Borrar el sudoku actual del panel
  • Insertar un sudoku predefinido por coordenadas (ojo! este no comprueba si los números son válidos).

Hay bastante cosas que son mejorables, como por ejemplo quitar algunas variables globales o la inclusión de eliminar algunos números insertando un cero (por ejemplo), pero eso lo dejo para el que quiera modificarlo, asi como el que se anime y lo «traduzca» a otro lenguaje de programación estaré encantado en incorporarlo al artículo.

Programa para resolver sudokus en Free Pascal con algunos ficheros de ejemplo.


Recursividad: Entender lo entendible

26 comentarios · 16.337 lecturas · programacion

Hace una semana, en la asignatura de Metodología de la Programación I hemos empezado a dar un tema que me interesaba bastante dentro del temario de la programación básica, que es la recursividad.

recursividad

La recursividad tiene una curiosa definición, que intentaré explicar sin meterme en detalles técnicos: Se trata de realizar una función, de modo que antes de terminarla la has vuelto a comenzar a realizar.

Para comprender esta enrevesada definición se me ocurre un ejemplo sencillo: Nos encontramos en un gran apartamento y estamos buscando a una persona. Para encontrarla realizamos una acción (abrir la puerta de una habitación) para comprobar si está dentro esa persona. Ocurre que dentro de esa misma habitación pueden haber varias habitaciones más (baño y cocina por ejemplo) y a su vez, dentro de la cocina un trastero. Así pues, una vez entrado en la primera habitación mencionada y no encontrar a la persona que buscamos, nos meteremos en la cocina y si no está, buscaremos en el trastero.

Aprovechando ya este ejemplo desarrollado, en el caso de que tampoco encontraramos a la persona en el trastero, deberíamos retroceder hasta encontrar una habitación anterior que posea una habitación -valga la «rebuznancia»- en la que aún no hayamos mirado, y así sucesivamente. A esto último se le denomina Backtracking (Volver atrás).

las torres de hanoi

Investigando un poco más sobre el tema, doy con algunos de los ejercicios propuestos en años anteriores en mi facultad como el juego de Las torres de Hanoi -donde se entiende muy bien el uso de la recursividad en ámbitos de programación-, la función de Ackermann o la sucesión o serie de Fibonacci.

Además de todos estos ejemplos, existe uno que me llamó mucho la atención. Se trata del número de oro (Φ), que se mantiene presente -por ejemplo- en la forma en la que se crean las caracolas o los árboles y que era considerada una cifra con multitud de propiedades mágicas por los antiguos filosofos griegos:

numero aureo

Este año nos ha tocado hacer un asistente para resolver sudokus, juego numérico que se ha puesto muy de moda últimamente, y práctica que me ha resultado bastante interesante. En cuánto pase la semana de entrega de la práctica subiré el código, si a alguien le interesa.


Páginas: 1 ... 2 3 ... 5


Artículo de http://www.emezeta.com/

6 consultas efectuadas / Página generada en 0.041 segundos

Programado íntegramente por José Román (Manz) en XHTML y CSS estándar.

Sindicado bajo Feed RSS. Contenido bajo licencia Creative Commons

Estadísticas de visitas · Términos y condiciones · Contacto · Publicidad · Preguntas frecuentes (FAQ)