lunes, 19 de septiembre de 2011

Creating Desktop Applications with FXRuby

Algunas veces, la imposición de límites obliga a buscar soluciones creativas que superen las condiciones del nuevo entorno, es decir, INNOVAR.

Recientemente, me he encontrado con la necesidad de desarrollar una aplicación de escritorio para facilitar una tarea repetitiva de normalización de datos en la cual se emplean expresiones regulares y para la cual requeria trabajar con múltiples ficheros de texto relacionados.

Desde hace algun tiempo, he empezado a utilizar lenguajes como Python y Ruby para facilitar tareas que incluyen tratamiento masivo de texto (limpieza de caracteres, normalización, semántica, recuento, ...). Estos lenguajes de programación de alto nivel y Orientados a Objetos permite realizar maravillas con muy pocas lineas de código, con resultados inmediatos!.

Continuando con la explicación, disponía de un conjunto de utilidades básicas que se lanzaban desde la línea de comandos, pero necesitaba una interfaz de usuario que lo uniera todo.

No podia instalarme ninguna otra herramienta (por razones que no vienen al caso) y tampoco estaba en disposición de aprender nuevos lenguajes de programación. El objetivo era resolver el problema que tenia y no crear otro problema a resolver (mantener el foco).

Allí es donde me encontré con FXRuby, una gema de Ruby basada en FOX que permite la creación de aplicaciones de escritorio de forma bastante sencilla mediante un lenguaje de scripting.

La imagen, muestra una captura de pantalla, que no es espectacular, pero para el poco tiempo que le he dedicado y el poco conocimiento que tengo de Ruby, es más que suficiente.

Este desarrollo de aplicaciones rápidas, al estilo PRETOTYPING permite tener una herramienta Desktop con muy pocos recursos, centrándose en lo que es verdaderamente importante (la resolución del problema y no la interfaz de usuario) a la vez que se aprende a descubrir cuales son las necesidades.

En mi caso, también facilita el traspaso de "actividades" de carácter más administrativo, ya que no es lo mismo entregar un proceso donde se manejan ficheros de texto de forma manual y oscura a entregar una aplicacion (ruda si se quiere) pero que facilita que más gente la pueda operar y por tanto, colaborar en la normalización de datos. Claramente, estamos en un proceso de innovación y de crear algo nuevo donde no hay nada.

Dejo a continuación algunas de las referencias que me han sido útiles (ninguna en castellano), a la vez que me brindo a ayudar a aquellos que quieran desarrollar una aplicación de escritorio en FXRuby (así aprenderé más!).


lunes, 12 de septiembre de 2011

Antropología y Paleontología digital o 2.0

Los cambios sociales, culturales, económicos y tecnológicos suelen ir acompañados de preguntas para las que inicialmente no tenemos respuesta. Al principio, encontramos las respuestas un poco por accidente, fruto de la experimentación. Esta experimentación acaba forjando la adquisición de nuevas experiencias y conocimientos que permiten dar respuesta a las preguntas planteadas y a nuevas necesidades.

En el ámbito profesional, las personas que abren camino son los pioneros en ejercer nuevas profesiones para las que no se han formado y que posteriormente pueden convertirse en nuevas disciplinas profesionales y que tiempo más allà pueden reglarse mediante formaciones, estudios, carreras, etc..

Algunos ejemplos recientes en el ámbito de Internet son los profesionales SEO y SEM.

En el caso de los negocios basados en internet, una de las tareas que cada vez toma más importancia, es la necesidad de tener un conocimiento detallado de sus usuarios, sus hábitos, comportamiento, relaciones, etc... Y ya que hablamos de negocios, porque no decirlo, sus habitos de compra, preferencias, capacidad de influencia, valor como "usuario / producto", etc...  
En este sentido, una visita reciente a un museo me sugirió las ciencias Antropología y Paleontología digital o 2.0

Estos profesionales deben ser los encargados de conocer “al dedito” todas las especies que abundan en un site y haciendo un símil con la Antropología 1.0, ser capaces de responder a preguntas del tipo:
  • ¿Dónde viven? 
  • ¿Qué comen? 
  • ¿Cuanto tiempo viven? 
  • ¿Cuáles son sus depredadores? 
  • ¿Cómo se “reproducen”? 
  • ¿Cual ha sido su evolución y cómo han llegado hasta aquí? 
  • ¿Migran? ¿Cuando y dónde? 
  • ¿Mutan? ¿Cuál es la frecuencia de mutación? 
  • ¿Cuales están en peligro de extinción? 
  • ¿Cuales son sus hábitos de compra?  
Incluso puede ser que en algunos casos debamos recorrer a la Paleontología 2.0  para conocer, si las hay, el tipo de usuarios que se hayan extinguido de un determinado portal y por qué motivo, para tratar de crear las reservas necesarias para proteger este ecosistema de usuarios, y en todo caso, no cometer los mismo errores que llevaron a la "desaparición" de determinado tipo de usuarios del site.

Ambas disciplinas estarian fundamentadas en la recogida sistemática de datos de campo y en el posterior análisis de la información recogida para poder elaborar la ficha explicativa de cada especie.