Muñiz Arzola Weblog

Actividades y eventos de la familia, con ciertas incursiones de tecnologia

Google

Aprendiendo Ruby. Proyecto A ver. 0.01.01

Estos últimos días he estado muy entretenido y divertido en el trabajo que no he tenido ganas de programar en casa, así que en mi tiempo libre me he dedicado a otras cosas, tales como ver televisión y hacer ejercicio (vaya combinación), sin embargo, el proceso de aprendizaje de Ruby ha seguido adelante y aun cuando no hay avance en el proyecto si hay avance en el conocimiento que me gustaría dejar asentado aquí, por otro lado para los que ha seguido el desarrollo del proyecto sepan que sigue avanzando.

En fin, lo que he descubierto al momento es que utilizando la clase IO es posible desarrollar el proyecto de forma mucho mas simple, y sencilla que como originalmente se propuso, creo que el numero de lineas se puede reducir considerablemente también.

Pero, tomando en cuenta los objetivos educativos propuestos inicialmente he decidido seguir la ruta propuesta inicialmente (ya que la propuesta alterna por lo simple que parece no va a abarcar todos los objetivos propuestos) y considerar la otra propuesta como una propuesta alterna, la cual también será implementada y serán comparadas como parte del proceso de aprendizaje.

Bueno, una vez asentado lo anterior me regreso a seguir estudiando, esperen la siguiente versión del código fuente.

Technorati Tags: , , ,

powered by performancing firefox

Categories: Español, Ruby, Tecnologia

Posted by: Erick Muñiz on Thursday, October 26, 2006

Aprendiendo Ruby. Proyecto A ver. 0.01

Â

Como lo había expuesto anteriormente, estoy desarrollando 3 proyectos durante mi ciclo de aprendizaje del lenguaje Ruby. A continuación se presenta el Proyecto A versión 0.01; este proyecto consiste en desarrollar un programa que mantenga actualizado mis listado de apuntadores favoritos.

Especificación del Proyecto.

El sistema debe realizar las siguientes actividades:

- Abrir archivo html, analizar el archivo y obtener las ligas que se encuentran almacenadas en él.
- Por cada liga tratar de obtener dicha pagina y reportar si la liga aun existe y su fecha de ultima modificación
- Generar un nuevo archivo con las ligas que aun existen y presentar su fecha de ultima modificación en la liga.

Objetivos de aprendizaje.

Básicamente lo que se desea aprender de las capacidades de Ruby con este proyecto es

- Manejo de archivos.
- Manejo de cadenas.
- Uso del modulo Net, especialmente la clase HTTP.
- Programación Orientada a Objetos

Código Fuente Proyecto A ver 0.01

El desarrollo de este proyecto es incremental, al momento se han definido las clases que se van a utilizar, el código se encuentra libre de errores y los métodos principales para cada una de las clases han sido definidos. A continuación se presenta la clase Librarian que será la clase principal de este programa y de dicha forma sera nombrado el Proyecto A de ahora en adelante, nótese que cuando propuse los tres proyectos a desarrollar el nombre había sido web crawler, sin embargo, la actividad principal de este objeto es mantener mi lista actualizada y es por eso que se renombro a Librarian.

Esto es un fragmento de la clase Librarian, para consultar el código fuente completo hasta el día de hoy presione aquí

class Librarian
 attr_reader :active
 attr_reader :fileExt
 @running = false
 public
   #updateLibrary se encarga de tener la librería de apuntadores actualizada
   def updateLibrary
   end
 protected
   :active
   :fileExtÂ
 private
   def initialize(filename = "bookmarks.html", fileExt = "html")
   end
endÂ

Cualquier idea o comentario es bienvenido durante el desarrollo de este proyecto.

Technorati Tags: , , ,

powered by performancing firefox

Categories: Español, Ruby, Tecnologia

Posted by: Erick Muñiz on Friday, October 13, 2006

Ruby Scripts, interactuando con CVS

El día de ayer me vi en la necesidad de instalar Fedora Linux en una de mis computadoras en el trabajo, habiendo terminado la instalación y gracias a que en esta máquina si tengo acceso a root, que ya me hacia falta por cierto, eso de trabajar solo en emacs y en una resolución tan pequeña me tenia cansado.

Bueno, regresando a la instalación, iba a comenzar a escribir mis scripts en bash cuando me acorde que acababa de terminar dichos scripts en Ruby, así que aprovechando que soy root en esta computadora instale Ruby y me dispuse a utilizar mis scripts.

No fue tan sencillo como lo imagine, el :bad interpreter error me estuvo molestando por mas de una hora, así que decidí volver a escribir los scripts en emacs, ya que era lo único disponible al momento, después de volverlos a escribir, los scripts funcionaron perfectamente por lo que el problema todo el tiempo fue el carácter cambio de linea, al escribirlos la primera vez en Windows me agrego los dos caracteres y el archivo no podía ser identificado en Linux por ningún interprete.

Si escribo los archivos en Linux y luego los ejecuto en Windows no hay ningún problema, así que para la próxima empezare por escribirlos en Linux.

En fin, estos archivos básicamente son para evitarse el teclear unas cuantas letras trabajando con cvs, aquí están los archivos fuente de cada uno de ellos:

Actualmente están implementados para Windows, si se necesitan para Linux es necesario remover cmd.exe /c de cualquier parte donde se encuentre. Se necesita abrir el archivo o correr RDoc en cada uno de ellos para ver la forma de usarse.

Technorati Tags: , ,

powered by performancing firefox

Categories: Español, Ruby, Tecnologia

Posted by: Erick Muñiz on Friday, September 29, 2006

Hello World! Hello Ruby Mi primer programa

Aquí esta mi primer programa en Ruby, es un simple Hello World, pero fue prueba para ver que es un lenguaje sencillo y divertido y ademas me sirvió para quedarme conectado a Ruby.

Después de este ejemplo lo que sigue es iniciar el desarrollo de los proyectos que propuse anteriormente, la metodología va a ser implementación por ciclos, es decir, conforme vaya avanzando en el estudio del lenguaje el proyecto ira creciendo, el siguiente post sera la definicion de las clases del primer proyecto.

El ejemplo esta bien documentado además incluye documentación generada con RDoc, así que si estas interesado en Ruby este ejemplo puede ser un buen inicio pues es como yo inicie.

El código fuente se encuentra en myri20min.rb

Y la documentación en myri20min documentation

Technorati Tags: , ,

Categories: Español, Ruby, Tecnologia

Posted by: Erick Muñiz on Wednesday, September 27, 2006

Mi primer experiencia con Ruby

Jajaja, suena como si hubiera estado soñando con Barbara Mori en su papel de Rubí, pero la realidad es que estaba pensando escribir esto en ingles y el titulo era My First Hands on Ruby.
Resulta que esta semana tuve mi primer experiencia con el lenguaje Ruby, termine el tutorial online y me pareció interesante y limpio en su estructura, últimamente no he estudiado nada acerca de scripts desde que estuve trabajando con Perl, Javascript y un poco de tcl. Otros muchos como Phyton, PHP, Smalltalk, etc me los he pasado de noche, tal vez porque según yo en mi ignorancia opinaba que eran lenguajes para desarrollo web.
En fin, Ruby suena como una combinación de todos estos lenguajes y es por ello que me llamo la atención. Hasta el momento no he llegado a nada interesante solo terminé el tutorial online, descargué el interprete, lo instalé y conocí el FreeRIDE, todo estaba perfecto hasta que encontré el famoso Hello World que venia incluido como ejemplo, para ser el Hello World vi demasiadas lineas, así que hasta ahí llegue, a hacer alto y seguir estudiando para tener mas información.
Tengo varios proyectos en mente a realizar como parte de mi curso de Ruby más no se si sean viables todos ellos, por lo pronto no tengo host ya que el hosting de este sitio no soporta Ruby ni Ruby on Rails (Hablando de Ruby on Rails eso es otro tópico a investigar pues no se si para mis proyectos en mente sea solo suficiente Ruby o necesito los dos).
He aquí la lista de los tres proyectos a implementar:

  • Web Crawler, a partir de un archivo HTML, que seguramente seria bookmarks.htm exportado del Internet Explorer voy a recorrer todas las ligas y verificar que existan, las que no existan serán removidas de la lista y al final del recorrido se tendrá un nuevo archivo que contenga solo ligas existentes. Para mejorar la primera versión, obtener la fecha de la ultima modificación de las páginas y organizar las ligas de acuerdo a esa fecha.
  • Exactamente el mismo que el anterior pero a partir de un archivo XML, el parser sería la diferencia entre los dos proyectos.
  • Administrador de Fotografías, de tal forma que pueda buscar todos los archivos JPEG en la computadora local así como en mi cuenta de Flickr y mostrar una lista de los directorios que las contienen y si es posible desplegarlas de alguna manera en una presentación (creo que es posible utilizando el navegador pues ya vi como se hace el álbum y la presentación utilizando las API’s de Flickr).

Obviamente todas estas aplicaciones van a correr desde mi computadora y no desde el servidor pues el servidor no soporta Ruby, así que por lo pronto nada de lo que haga sera mostrado aquí a excepción del código (eso si lo llegará a publicar).
Creo que es suficiente pues entre el trabajo, la casa y cualquier otro imprevisto creo que me tomara algo de tiempo llevarlos a termino los tres, especialmente si de Ruby solo se que no se nada.
Mas información:

Technorati Tags: , , ,

Categories: Español, Ruby, Tecnologia

Posted by: Erick Muñiz on Friday, September 22, 2006