7 de septiembre de 2009

BI - Business Intelligence

Esta vez quiero tratar algo acerca de Inteligencia Empresarial (Business Intelligence) esto debido a un proyecto el cual me ha sido asignado. Debo decir, que mi experiencia en este ámbito es muy poca, lo más que he llegado a hacer son pequeñas validaciones o candados en alguna parte de un módulo de determinada aplicación.

Qué es BI? Bueno, al escuchar el término y relacionarlo con sistemas, varias cosas se me vienen a la mente. Yo lo veo como el conjunto de herramientas y procesos que trabajan a base de cierta información o datos para arrojar resultados, dichos resultados, afectarán para la toma de decisiones empresarial; los datos obtenidos por dichos procesos y herramientas BI, servirán de respaldo y el grado de fiabilidad de estos dependerá de la información de entrada o alimentación, y de los parámetros de configuración sobre los cuales se realizan los análisis.

Investigando un poco, encuentro alguna que otra definición para business intelligence, pongo acá la de la wikipedia: Se denomina inteligencia empresarial, inteligencia de negocios o BI (del inglés business intelligence) al conjunto de estrategias y herramientas enfocadas a la administración y creación de conocimiento mediante el análisis de datos existentes en una organización o empresa.

Creo que mi idea de BI se aproxima bastante jeje.. En mi caso, debo desarrollar herramientas de software que ayuden a tomar desiciones empresariales. Se pueden identificar algunos componentes a partir de la definición:
  • Los datos de entrada: Estos son los que alimentan a la aplicación BI. Lo más común es que sean los datos existentes de la empresa, estos datos pueden estar almacenados en una Base de Datos, en archivos de texto, hojas de cálculo, etc. etc. Con ayuda de estos datos, se puede conocer el estado actual de la operación y con esto arrojar resultados para la toma de decisiones. Reflexionando un poco acerca de estos datos, es por lo que me atrevo a decir que, dependiendo de la fiabilidad de la información de entrada, será la información obtenida.
  • Herramientas y metodologías: En mi caso, utilizaré lenguajes de programación, gestores de bases de datos, alguna herramienta para generación de reportes y compatibilidad con software de oficina; todo eso para crear una herramienta de software que procese la información de entrada y cree los datos de salida.
  • Los parámetros de configuración: Los considero muy importantes, ya que servirán para darle "inteligencia" al Software. Son los que sirven para saber cómo tratar a los datos de entrada obtenidos y poder dar un veredicto por ej. Poder decir que todo va de maravilla, o que se encontró cierto fallo en tal proceso o, más en concreto, tal persona de tal departamento no está cumpliendo con su trabajo ya que falló con un 10% las metas propuestas para tal mes.
Obtener la información de diferentes fuentes, procesarla y arrojar información para toma de desiciones, es una parte de la tarea; llendonos a niveles un poco más altos se puede dar, a las personas que utilizan estas herramientas para toma de desiciones, la posibilidad de modificar parámetros en tiempo real y de tener el control de una operación muuy grande en tan solo un panel o una pantalla de monitoreo, esto es sin duda alguna, la mayor utilidad que se le puede dar a este tipo de tecnología BI.

Bueno, con esto termina esta entrada, espero sea de su agrado y cualquier comentario o experiencia al respecto será bien recibido. Saludos!!

1 de septiembre de 2009

Documentando en TiddlyWiki


Hola nuevamente! No he sabido darle el tiempo necesario al blog para mantenerlo actualizado jeje, la razón principal, estoy tomando un curso para titularme (el cual ya casi termina) por lo que podría decirse que estoy en versión release candidate 2... bueno, hoy termino esta entrada que publico a continuación.

En esta entrada platico un poco sobre TiddlyWiki, es una herramienta web muy interesante, una versión reducida de un wiki, pero sin necesidad de utilizar un servidor web ni una base de datos. El archivo principal, solo contiene lineas de código html y javascript y hace uso de éstos para proporcionar toda la funcionalidad necesaria.

En mis tiempos de estudiante me ayudó mucho, lo utilizaba para tomar las notas en las clases, podía agregar imágenes, archivos de complemento, enlaces, dar formato, crear tablas rápidamente, etc, etc. Todo esto mientras el profe daba la clase. Aprender a utilizarlo no es difícil: lo primero es bajar el archivo "en blanco", lo siguiente es empezar a ingresar el contenido.

Permite crear pequeñas "entradas" las cuales pueden contener texto, enlaces y se les puede dar formato de una manera parecida a LaTeX, no es tan complejo pero proporciona lo suficiente para crear viñetas, tablas, alineación, colores, etc etc. También permite modificar el diseño con css e insertar código javascript.

Las posibilidades para el tiddlyWiki son inmensas, en la página oficial http://www.tiddlywiki.com/, mencionan muchos ejemplos de aplicación y proporcionan enlaces a páginas hechas en su totalidad haciendo uso del TiddlyWiki. Obtiene estética y facilidad de uso debido a los efectos que tiene; la misma página oficial es un tiddlywiki.

En el periodo de tiempo que tengo como desarrollador, me he dado cuenta de la importancia que tiene el documentar, hay muchos proyectos de software que me ha tocado retomar, pero debido a la falta de documentación esto se vuelve una tarea muy complicada que consume más tiempo y, por consiguiente, más recursos de los que debería. Para mí es muy sencillo crear entradas en mi tiddlywiki sobre todo lo que voy realizando, así las personas que se involucren en alguno de mis desarrollos, no tendrán problema en saber que es lo que hice.

Si consultan la página oficial en la sección de ejemplos, podrán ver que sólo hace falta creatividad para crear páginas complejas con esta herramienta. Con esto me despido por ahora, muy pronto publicaré otra entrada, por ahora debo seguir con mi titulación! Saludos!

16 de abril de 2009

Netbeans+svn

Les traigo otro borrador que ya estaba cansado de estar guardado esperando a ser publicado..

Esta vez voy a retomar un poco aquel tema del sistema para control de versiones, svn (subversion). La vez pasada hice una entrada a manera de introducción. Está vez voy a comentar sobre las facilidades que ofrece netbeans para el uso del subversion. Porqué netbeans? Porque es un ide de programación que desde hace tiempo ha ido ganando terreno en varios aspectos, en especial java, y que con su última versión 6.5 demuestra una vez más muchas facilidades. El manejo del svn en netbeans es muy sencillo. Lo primero que debemos hacer es configurar el repositorio y demás en el servidor. Una vez hecho esto, netbeans nos ayudará a realizar las funciones del cliente.

netbeanssvn

Si leyeron la información y el material que proporciono en la entrada introductiva, los pasos para la creación del repositorio, el acceso a los diferentes usuarios, el uso de comandos mediante el cliente y demás, no será problema. Desde hace algún tiempo que trabajo con netbeans + svn y puedo decir que es una práctica muy recomendable.

Para acceder al contenido de un repositorio svn desde netbeans, seleccionamos "versioning" desde la barra de menú, luego subversion -> checkout, al hacer esto, nos mandará a una ventana donde debemos ingresar los datos de nuestra cuenta para ingresar al contenido del repositorio.

checkout

Si todo está correcto, al pulsar en next, legaremos a un listado que nos muestra los directorios que forman parte del repositorio, tendremos que elegir la carpeta en donde guardaremos el contenido que descarguemos, esta carpeta será nuestra copia de trabajo, tal como si hubiéramos ejecutado el comando svn checkout. En mi caso, voy a obtener la carpeta pruebas junto con su contenido, el cual, será cargado por netbeans al tratarse de un proyecto creado con este IDE.

checkout folder
De aquí en adelante, todos los cambios que hagamos sobre el contenido ya descargado, serán marcados por netbeans en color azul y los archivos que agreguemos serán marcados de color verde. Los archivos que tengan conflicto de versiones, se mostrarán de color rojo.

Para subir los cambios que realizamos (svn commit) seleccionamos el archivo individual o la carpeta correspondiente y seleccionamos subversion -> commit del menú contextual.
Para actualizar nuestra copia local (svn update) seleccionamos update.

Si al momento de realizar el commit nos encontramos con que alguien más ya realizó y subió cambios en algún archivo, no podremos realizar la acción debido a que contamos con una copia desactualizada, para obtener los cambios debemos realizar un update al archivo, si las 2 copias (local y remota) son capaces de convivir juntas podremos realizar el commit sin problemas; en caso contrario veremos que se agregaron marcas de color rojo para las líneas que están en conflicto.
Para solucionar este problema, netbeans nos muestra una pantalla con los cambios remotos y locales dándonos la posibilidad de seleccionar cuáles se quedan y cuáles se van para formar una "mezcla" de las 2 versiones y realizar el commit de esta misma, la cual contendrá nuestros cambios y los que hayan sido realizados de forma remota. Para acceder a dicha pantalla, seleccionamos resolve conflicts del menú contextual.

Estas son algunas de las funciones principales de netbeans para controlar versiones con svn, también nos permite ver un historial de cambios o realizar una comparativa de entre la copia local y la remota. No queda más que hacer uso de esta herramienta y verificar por nosotros mismos. Han utilizado control de versiones junto con algún otro IDE?

Saludos.

18 de marzo de 2009

Montando Imagenes de CD/DVD en Linux

Hace tiempo que quería comentar un poco sobre esto, pero no había tenido la oportunidad, el borrador de esta entrada ya estaba bien viejo jaja, aunque creo que tengo otros que lo están más.

CD

Esta noche que tengo la oportunidad, quiero comentar que hace ya bastante tiempo, tuve la necesidad de montar una imagen ISO en Linux y no tenía ni la menor idea de como hacerlo. Utilizando el sistema operativo de la ventana esto es cosa de instalar alguna aplicación como Daemon Tools para poder montar las imágenes. Como es de esperar, en Linux también es posible montar las imágenes de CD o DVD. En mi caso, para montar la imagen ISO, bastó con ejecutar el siguiente comando:

mount -t iso9660 -o loop archivo.iso /directorio/de/montaje



Para ejecutar el comando mount se requieren permisos de super usuario y debemos indicar el directorio en donde montaremos la imagen, una vez ejecutado, ya podremos tener acceso al contenido de la imagen en una carpeta de nuestro disco duro, más fácil no puede ser jeje.

Bueno, para no reinventar la rueda, dejo este enlace donde se explica como montar muchas más tipos de imágen: Montando diferentes tipos de imágenes de CD/DVD en GNU/Linux.
Esto es otra muestra de que no hay nada que no se pueda hacer en un equipo con Linux y software libre instalado, y que además tiene una particular manera de hacerlo muy simple.

Para desmontar el directorio solo ejecutamos lo siguiente en la consola:

umount -d /directorio/de/montaje



Para más información consultar las páginas del manual para los comandos mount o umount.

Si no te gusta meter mano en la consola, te comento que existe una aplicación llamada Furius ISO Mount la cual realiza todo lo anterior pero utilizando el entorno gráfico; desde el enlace está disponible la descarga tanto del código fuente para compilarlo como el paquete .deb para Debian y derivados.

Te ha servido la información de ésta entrada? Conoces alguna otra herramienta o método para montar imágenes de discos en Linux? No dudes en publicar tus comentarios.

1 de febrero de 2009

KDE 4 y yo



Como muchos ya saben, hace no mucho que salió la nueva versión de KDE 4 (4.2 el 27 de enero), y con esta versión muchas cosas han cambiado. Ya desde hace algún tiempo que soy fan de KDE, me gusta mucho, soy de las personas que trabajan mejor cuando tienen un entorno que luce bien, claro, también debe ser eficiente y amigable. No se si sea porque mi primer distribución GNU/LINUX fue Kubuntu (KDE 3), la cual sigo utilizando hasta la fecha, pero si se que he utilizado otros entornos graficos y KDE siempre me ha agradado más, no estoy diciendo que sea el mejor!

Hace aproximadamente un año que KDE 4 comenzó a aparecer en escena, decepcionando a muchos de los usuarios (incluyéndome), la interfaz era agradable a la vista, pero fuera de ahí, estaba llena de bugs, no era para nada amigable, en fin, nada que entrara en mis espectativas. En octubre del año pasado salió la versión 8.10 de Kubuntu, la cual no intenté conseguir al enterarme que solo iba a salir una con KDE 4 y la versión con KDE 3 se iba a dejar de producir. Ha sido hasta este 27 de enero que he actualizado mi versión de Kubuntu a la 8.10 y he actualizado su versión de KDE 4.1 hasta la 4.2, debo decir que dudé un poco en hacerlo, pero no me he arrepentido :)

Si has estado esperando por que el proyecto KDE 4 tome forma, te puedo decir que ya la está tomando.
La mayoría de los bugs y detalles que lo hacía prácticamente inutilizable han sido reparados. La forma que yo le veo es la de tener todo al alcance de pequeños componentes llamados widgets.
Entre mis favoritos están:
  • Quick Access Widget, el cual permite tener acceso rápido a una carpeta y todos los elementos (carpetas y archivos) dentro de ella sin tener que abrir el explorador de archivos.

  • Aplication Launcher, es algo así como el "menú de inicio", en donde tenemos acceso a las aplicaciones instaladas en el sistema, contiene un área de texto donde podemos ingresar el nombre de la aplicación que estamos buscando para localizarla rápidamente.
  • Contiene también, varios widgets que nos permiten conocer el estado de los componentes de nuestro equipo, como lo es, el uso del CPU, el uso del ancho de banda, el espacio de nuestros dispositivos de almacenamiento.

  • Device Notifier, este nos permite llevar el control de los dispositivos de almacenamiento externos conectados a nuestro equipo.

También podemos agregar paneles al escritorio y, dentro de estos, agregar widgets en el orden que queramos y de muchos tipos, haciendo fácil su acceso desde el panel.

Por otro lado, tenemos una gran variedad de efectos visuales para darle ese toque agradable, por supuesto, podemos quitarlos si tenemos recursos limitados en nuestro equipo. La parte de los recursos es un punto importante aquí, pero personalmente no le veo problema regalarle un poco a KDE para que me mantega contento jajaja.

Aún tiene algunos errores, pero la gente de desarrollo está dando grandes avances, parece que la versión 4.3, está programada para salir a la luz el 28 de julio de este año.

Hay diferentes opiniones sobre KDE 4.2:
- Hay quienes dicen que es un desastre.
- Hay quienes justifican el proceso de avance de KDE 4.
- Hay quienes lo alaban.
- Hay quienes dicen que fue proyecto del año en el 2008.
Ustedes que opinan?

Para ya no extenderme más, los invito a que lo prueben, ya sea en live cd, o máquina virtual, etc. a mi me ha dejado un buen sabor de boca y, oficialmente, utilizo KDE 4 como entorno principal y por fin puedo dejar atras al tan apreciado KDE 3. Espero sus comentarios!

Saludos.

11 de enero de 2009

Un Poco de Ocio

Esta vez quiero comentarles sobre 3 juegos flash que me han divertido bastante, son perfectos para esos ratos libres; considero también que estos juegos pueden ayudar a agilizar un poco la mente.
Los 3 consisten en una estrategia muy similar: Tenemos un objeto en la pantalla, el cual debemos llevar hacia un punto en específico, suena sencillo, pero debemos tomar en cuenta que existen obstáculos y acertijos que nos complicarán un poco la misión.

1. Silversphere.

Se trata de llevar una esfera plateada hacia un portal localizado en algún lugar del mapa. Se puede dirigir con las teclas de dirección, hay que ser cuidadoso pues un movimiento erróneo nos llevará a la destrucción de la espera o a eliminar la oportunidad de llegar al portal.



2. Bloxorz.

Este juego consiste en llevar un bloque rectangular a un hueco localizado en el mapa, se maneja con las teclas de dirección, es sorprendente la creatividad de los creadores y la gamma de movimientos que se pueden lograr con un bloque formado por dos cubos :p. Entre los obstáculos y herramientas en el mapa, encontramos botones que activan superficies y porciones de terreno sensible que se puede desprender y llevarnos a una caída segura.


3. Portal.

Por último, lo que hay que hacer en este juego es, llevar a un personaje hasta la salida del mapa, lo movemos con las teclas a,s,d y w, los mapas en este juego están llenos de áreas inalcanzables, algunos precipicios, interruptores y varias cosas más que le dan mucho sabor a la partida.
Para librar los obstáculos y demás, el personaje cuenta con un arma que puede crear 2 portales en diversas áreas del escenario, la clave? Si entras por un portal sales por el otro! Es el que más me ha gustado de los 3 juegos. Existe la versión para PC en tercera dimensión lanzada en el 2007, le eché un vistazo al trailer en la página y me han dado muchas ganas de conseguirlo jaja.


Espero los disfruten, y si conocen juegos parecidos no duden en compartirlos!

Saludos.

31 de diciembre de 2008

Feliz 2009

La última entrada del año no podía faltar en mi blog. Aprovecho la pequeña red inalámbrica que hay en este lugar para escribirles un poco desde este dispositivo móvil que tengo aquí :p
Mis mejores deseos para todos aquellos que por alguna u otra razón lean esto, que el 2009 sea mucho mejor que todos los demás. Sabemos por lo que leemos, o por las noticias o situaciones, etc. que se vienen tiempos difíciles, pero lo menos que podemos hacer es bajar el ritmo, vamos a entrar con todo y darle vuelta a las cosas, cada quién sabe la forma en la que lo pude lograr ;-) y sin extenderme más, un gran abrazo, pasenla bien.

Saludos.

24 de diciembre de 2008

Seguimos con el sistema inmortal

Hola! Como les va queridos lectores? Yo aquí escribiendo un poco en este día especial. Los días en el trabajo han sido una cosa muy movida, con momentos de presión, otro poco de estrés; lo bueno que esto se ha ido reduciendo.

Recuerdan lo que les había comentado? Bueno continúo, la primera semana estuvo llena de mails, llamadas telefónicas, conversaciones, etc. llenas de problemas, con cuentas de usuario faltantes, errores del sistema y, en su mayoría, problemas por inconsistencia en la base de datos, los cuales esperábamos ya desde el principio.

Dicha base de datos es enorme, muchas tablas tienen más de 20 campos,0 documentación, sin restricciones ni llaves, un gran desorden, por más que importamos la info. que ya existía lo mejor que pudimos, faltaron muchas cosas.
De aquí, lo que puedo decirles a todos mis amigos desarrolladores, es que siempre se tomen un rato para documentar, piensen en los demás y no sean mala onda jajaja, que luego a otros nos toca arrancarnos los pelos de la presión, yo ya tengo bien pulida la bola de cristal para adivinar como están los componentes que me toca depurar.

Ahora les comento un poco acerca de los usuarios a los que me toca darles soporte; son malos, son oportunistas y tienen toda la intención de hacernos la vida imposible, somos 3 los que damos soporte, éste consiste en corregir errores en la BD, ya sea reparando registros (cuidadosamente porque hay triggers que hacen mil cosas) o importando registros faltantes, también reparamos código erroneo.

El problema es que los usuarios esperan que el sistema funcione de las mil maravillas y, si algo sale mal, la culpa es totalmente nuestra (aunque nosotros solo hayamos participado en menos del 10% del desarrollo de tal sistema) pero ni como hacerlos entender. En fin, pese a todo lo ocurrido, ahora las cosas ya están más tranquilas y me dedico al desarrollo de una funcionalidad que ellos tenían en su versión anterior y la quieren de vuelta, hasta que se verá algo de código de calidad en el sistema :-p.

En lo que he estado desarrollando, he aprendido más PB y le he agarrado un poco más de gusto, digo a java no lo cambio por nada jaja! (extraño java :() por lo mismo, desquito esos sentimientos haciendo algo de calidad, que funcione correctamente, que sea reutilizable, con colores agradables y, sobre todo, bien documentado; el tema de la documentación lo tomaré más adelante..

Ya me extendí un poco, aprovecho este momento para desearles mucha alegría y diversión en este día, sea lo que sea que celebren jeje, estoy a punto de ir a cenar con mis familiares y seres queridos, algunos tiene mucho que no los veo... un abrazo para todos, seguimos en contacto.

Saludos!
Felices Fiestas!!

7 de diciembre de 2008

JDownloader

Hola, que tal!
Les escribo hoy domingo por la mañana, aunque a través de la ventana se puede ver la luz del Sol, hay un poco de frío en el ambiente.


Esta vez les quiero platicar sobre esta herramienta llamada JDownloader, que últimamente me ha sido de mucha utilidad. A quién va dirigida? A todo aquel que utilice los servicios de sitios que permiten bajar o subir archivos, es decir, sitios como rapidshare, megaupload y muchos otros (inclusive youtube).
Está hecho en java, por lo que la plataforma en la que lo corras no será problema, mientras soporte java. Solo hay que agregar los enlaces que queremos descargar y JDownloader se encargará del resto; podemos indicarle la ruta donde almacenaremos la descarga y si queremos que la descomprima; esta última característica no la he utilizado, va dirigida a los archivos comprimidos si importar si están formados de una o n partes, aunque, no puedo decir si lo descomprime de forma adecuada o no :p.
Si tienes una cuenta en alguno de los sitios soportados, puedes ingresar esos datos en la herramienta y ésta se encargará de gestionar las descargas, si no, la herramienta se encargará de manejar los tiempos de espera (como es mi caso), es decir, que solo ingresamos los enlaces de descarga y podemos dejar lo demás en manos de JDownloader.

Tiene muchas otras características, si están interesados, los invito a acceder al sitio y comprobar la funcionalidad por ustedes mismos, espero sea de utilidad.
Si conocen herramientas parecidas o mejores, o cualquier otra cosa, no duden en comentar.

Saludos.

30 de noviembre de 2008

De vuelta en el blog :p

Hola a todos! Espero les esté llendo bien, ya tenía bastante sin publicar pero no se preocupen, mientras no diga lo contrario, este blog seguirá vivo :)

He tenido una semana bastante pesada en el trabajo y, al parecer, la semana que viene lo será aún más... por tal o cual razón, estoy en un proyecto para una empresa de TV y bueno, el proyecto trata de revivir un sistema mas viejo que uds. y yo juntos jajajaj, nah no tanto, pero tengo entendido que existe desde el 2001 aprox. y que ha pasado por varios cambios hasta la fecha; el problema aquí es que la matriz de esa empresa es la que daba soporte y tenia las BD y toda la cosa, pero ahora nos va a tocar a nosotros :o, lo malo es que no nos van a dar el sistema solo la info. y la versión que nosotros tenemos de ese sistema es del 2004... bueno, en realidad es una mezcla de código a la que todo mundo le ha metido mano y no tiene ninguna buena práctica de programación :s hasta miedo da ver el código.

Está desarrollada en PowerBuilder que es una especie de sistema de desarrollo para aplicaciones que interactúan mucho con datos en una BD. Tiene un módulo para diseñar las interfaces de usuario e indicar si jalan datos de la bd y de que tabla o tablas los obtienen. Puedes indicar qué debe hacer al ejecutar un update u ordenarle que haga una consulta, están bien, se llaman DataWindows.

El lenguaje de PB es como una mezcla de C con VisualBasic, soporta el paradigma orientado a objetos, aunque también se puede desarrollar de forma estructurada; como imaginarán, el sistema con el que estoy lidiando no siguen ninguna metodología.

No me gusta PB, es feo, privativo y no me inspira a programar, pero bueno, mientras dependa de mí el funcionaminento del sistema haré lo mejor que pueda.

Me interesa tu opinión, ya sea como usuario o desarrollador, si te ha tocado utilizar un sistema lleno de errores y pocas soluciones o si te ha tocado decifrar o navegar código mal hecho, qué camino tomaste? Cómo resolviste el problema? etc. Conoces PowerBuilder? Cualquier comentario es bien recibido.

Saludos.