Mostrando entradas con la etiqueta Ruby. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ruby. Mostrar todas las entradas

lunes, 3 de septiembre de 2007

Irreversible decisions

Hoy 3 de septiembre finaliza oficialmente el periodo vacacional en la Universidad y de hecho, en breve iré a la Escuela.

Este verano, aparte de otras muchas cosas, me he dedicado a ponerme al día con Ruby y con Ruby on Rails. Hice una pequeña aplicación de ejemplo, y quedé con ganas de hacer más cosas, aunque todavía está todo en fase muy preliminar como para publicarlo.

La sensación general de Ruby es que es un lenguaje dinámico y accesible, que te permite crear aplicaciones muy rápidamente sin la sensación de haber hecho una chapuza.

Mi intención es utilizar Ruby para hacer algún prototipo mezclando Web semántica y etiquetado colaborativo, aunque con la escasez de tiempo que arrastro, no estoy seguro de lo lejos que voy a llegar.

Ayer encontré un artículo que resumía las alternativas para trabajar con RDF desde Ruby. Parece que el camino ya lo han recorrido algunas personas, pero que tampoco han llegado a crear ninguna librería estable como puede ser Jena.

De las posibilidades que menciona, ya conocía ActiveRDF, pero lamentablemente no he conseguido que funcione en Windows sin Cygwin (el cygwin lo tuve instalado en otro ordenador y no me apetece volver a instalarlo en éste...me gustan las aplicaciones multi-plataforma, pero no las que necesitan emular la otra plataforma para funcionar).

Otra de las posibilidades es Semitar, que parece que está bastante muerto desde hace 2 ó 3 años.

Ambos utilizan el analizador sintáctico Raptor escrito en C, que trae algunos binarios pero no estoy seguro si necesitará también Cygwin...habrá que ir probando...

Tirando de Semitar, llegué a su autor, Rich Kilmer que parece que es bastante experto en Ruby. En su blog encontré este artículo sobre la Web 3.0 con una frase que me gustó:

All that said, there is real power to ontologies and semantics captured and used by systems. The key to these systems IMHO is that they are constructed on some real ontological and semantically rich foundations (not just a relational data model), and all that crap is completely hidden from humans. Humans build up and leverage stuff on that rich foundation without ever knowing about it. They may feel its there, but don't have to understand it to use it.


Siguiendo con la búsqueda, llegué a una entrevista que le hacen en la revista InfoQ que también me pareció interesante. Sobre la entrevista, aparte del contenido, me gustó que está transcrita y que es posible leer lo que va diciendo en inglés mientras se le ve la cara. Una buena forma de practicar inglés y aprender cosas técnicas de gurús...habrá que estar atento a esa página de InfoQ.

Finalmente, tirando de esos videos de InfoQ, encontré otro video de un viejo conocido mío: Erik Meijer. Erik fue uno de mis héroes mientras realizaba la tesis doctoral, ya que muchas de las técnicas que utilizaba de Haskell, las había desarrollado él. En concreto, la teoría de catamorfismos (bananas) y su aplicación práctica me sirvió de inspiración para lo que hice en la tesis.

Además tuve la suerte de conocerlo en persona mientras hacía la tesis en dos ocasiones, en la Escuela de verano sobre programación funcional avanzada, en Braga, Portugal, y en la tercer conferencia latinoamericana sobre programación funcional, en Recife, Brasil, en 1999 (creo que la página ya no funciona). En ambas ocasiones, pude hablar con él sobre mi tesis y sobre la programación funcional en general y siempre me gustó su visión pragmática del tema. Como él decía, la interesante es crear sistemas que faciliten la tarea del programador.

Posteriormente, él decidió cambiar de tema y empezó a trabajar en Microsoft, donde al parecer es arquitecto en la divisón de SQL server. El título de este artículo es por una frase que aparece en la presentación de ese vídeo y que creo que también se puede aplicar a Ruby (y a otras muchas situaciones, claro):

Make irreversible decisions at the last responsible moment

martes, 28 de agosto de 2007

Professional XML repetido

En el último viaje a Irlanda aproveché para comprar unos cuantos libros en inglés.

Desde hace varios años me propuse leer todo tipo de libros en inglés para ir cogiendo vocabulario. Supongo que algo de vocabulario he cogido, pero a la vez también pienso que me he acostumbrado a leer libros saltándome las palabras que no entiendo y pillando el significado más o menos por el contexto, lo cual no sé si es bueno o malo, pero supongo que algo de inglés se irá quedando.

Iré poniendo reseñas de los libros que vaya leyendo en el blog, así que de momento no pongo la lista (pero creo que compré unos 6 ó 7 libros...).

El último que compré es precisamente el primero que voy a comentar. Lo compré en la librería del University College Cork. Un truco que aprendí en Estados Unidos es que muchas universidades tienen librerías en las que venden libros de texto a los alumnos pero que además, venden libros de segunda mano bastante baratos, por éso me acerqué a dicha librería buscando alguna ganga.

Aunque no llegué a comprar ninguno de segunda mano (los que había, no me convencieron), me llamó la atención el libro Professional XML. Al mirar los contenidos me fijé que estaban muy actualizados y que encajaban muy bien con los cursos de XML que estoy impartiendo últimamente. Sin embargo, tenía la duda si realmente ya lo tenía en mi casa o no. Ya que por un lado, los contenidos no me encajaban pero el título y la portada me sonaban mucho. Dentro del libro, no encontré ninguna referencia a ediciones anteriores, lo cual me mosqueaba un poco.

Aún así, me decidí a comprarlo porque con todos los cursos de XML que imparto, creo que está bien disponer de bibliografía actualizada y al final, creo que acabo amortizándolos.

Al llegar a casa, efectivamente, ya tenía un libro con el mismo título "Professional XML" y una portada similar del año 2000.

Lo curioso es que los autores son casi todos distintos y los contenidos por dentro no coinciden. Así que no me arrepiento de haberlo comprado. Y éso que ambos libros rondan las 1000 páginas.

Uno de los capítulos de la nueva edición trata sobre tratamiento de XML con lenguajes dinámicos (Perl, Python y Ruby). Esta tarde precisamente estuve utilizando Ruby para convertir un fichero con notas de alumnos en XML en registros de una base de datos. Un pequeño ejercicio que sigue demostrando lo fácil que es hacer ciertas tareas con Ruby.

viernes, 3 de agosto de 2007

Ruby on rails + Flickr + Video

Estas vacaciones me he propuesto ponerme al día con Ruby on Rails, servicios Web Rest, AJAX y otras tecnologías de la Web 2.0.

Para ello estoy leyendo unos 4 libros a la vez: Beginning Ruby: From novice to professional, Agile Web Development with Ruby on Rails, RESTful web services y AJAX Design patterns. Los 4 me están gustando bastante porque me parecen suficiéntemente avanzados como para no aburrir al lector y suficiéntemente introductorios como para no perderse...claro, que leer tantos libros a la vez, y normalmente en los ratos libres cuando voy con los peques a la playa, resulta bastante complicado, pero es que aunque me gustan, tampoco tengo paciencia para ir leyéndolos en plan secuencial, así que más bien los ojeo.

Además de éso, estuve jugando a seguir uno de los video-tutoriales que cuelgan de la página de Ruby-on-rails. En concreto éste, que crea una aplicación para buscar fotos en Flickr. La verdad que este tipo de vídeos, teniendo la paciencia suficiente, son muy didácticos.

De todas formas, en la publicidad del vídeo dicen que van a realizar la aplicación en 5 minutos y, ejem, bueno,....yo tardé dos días.

Claro que tampoco tuve tiempo para hacerlo todo seguido, pero el mayor problema fue cuando tuve me salía el error: Expired API Key for Flickr...tras buscar por internet descubrí que al parecer hay un bug en la librería "flickr.rb" que utiliza una clave que ya está expirada. La solución chapuzas es cambiar diréctamente el fichero de la librería y poner la clave propia. Así me funcionó, pero me parece muy poco elegante...como no ando muy suelto de tiempo, de momento lo dejo...a ver si algún lector tiene una solución menos chapuzas...

En cualquier caso, la sensación que voy teniendo de Ruby on Rails es que facilita mucho la creación rápida de sitios web y que está bien pensado...claro que cuando falla, no parece fácil encontrar el error. Lo cual creo que es bastante general en casi todos los frameworks para aplicaciones web.

lunes, 28 de mayo de 2007

Dándole una oportunidad a Ruby

Llevaba un tiempo con ganas de probar a jugar con Ruby. Mi primer contacto con el lenguaje fue tras leer el libro Beyond Java en el que habla de alternativas al lenguaje Java y pone a Ruby como la mejor. Como no tuve mucho tiempo en ese momento y a mí no me gustan demasiado las alabanzas exageradas, fui perdiendo interés en probarlo de verdad.

Posteriormente, me topé un montón de veces con gente encantada con el framework Ruby on Rails y de nuevo, tanto entusiasmo me causó más rechazo que atracción.

Sin embargo, hace poco me propusieron colaborar en un proyecto de web semántica en una empresa que trabaja principalmente con Ruby on Rails, así que me lo empecé a tomar un poco más en serio.

Encontré una librería llamada ActiveRDF que permite trabajar con RDF en Ruby. Luego, pude ver que el lenguaje tiene bastante características curiosas, siendo una evolución de Smalltalk, Python, Perl y otros lenguajes funcionales.

Me gustó la entrevista que le hacen al autor, Yukihiro Matsumoto, sobre la filosofía de Ruby, y su solución de compromiso en el caso de la ortogonalidad...una fórmula muy oriental, en lugar de ortogonalidad, prefiere armonía...ejem.

Y lo último que me ha gustado es que he visto una librería que implementa algunas de las funciones del Prelude de Haskell en Ruby. También he visto varios artículos explicando cómo implementar mónadas en Ruby. A ver si me pongo a re-escribir mi tesis en Ruby...

En definitiva, que el lenguaje parece interesante y divertido...habrá que darle una oportunidad!