linus [http://lkml.org/lkml/2007/6/12/232]
vs.
jonathan [http://blogs.sun.com/jonathan/entry/one_plus_one_is_fifty]
terminaran comiendo juntos o en una entrevista como bill y steve [http://www.youtube.com/watch?v=_5Z7eal4uXI] ???
linus [http://lkml.org/lkml/2007/6/12/232]
vs.
jonathan [http://blogs.sun.com/jonathan/entry/one_plus_one_is_fifty]
terminaran comiendo juntos o en una entrevista como bill y steve [http://www.youtube.com/watch?v=_5Z7eal4uXI] ???
en un post anterior les contaba de la visita a una planta de producción en el interior de la provincia. bueno, esa visita era para dar el kick off de un proyecto de implementación de rfid en la gestión de almacenes. hoy unas semanas adelante estoy muy contento por los resultados que estamos obteniendo y por eso voy a dedicarle esta entrada…
rfid representa radio frecuency identification y hoy en día es una de las tecnologías mas novedosas aplicada a problemas de logística y manejo de almacenes [http://en.wikipedia.org/wiki/RFID].
mas alla de detalles puntuales de esta implementación que vamos a dejar de lado por pactos de confidencialidad, lo bueno de este proyecto es que nos permite conocer nuevas herramientas y tecnologías no tan habituales en los desarrollos que realizamos y que hasta cierto punto representan un desafío para cualquiera.
para generar la etiqueta que posee la identificación de rfid o tag, tenemos que interactuar con una infoprint 6700 [http://www.printers.ibm.com/internet/wwsites.nsf/vwwebpublished/6700home_ww], una impresora de ibm que nos permite generar las etiquetas y grabarles la información rfid. para realizar esto no solo utilizamos las apis que nos brinda java para interactuar con impresoras, sino que también tuvimos que aprender a programar en pgl (printronix graphic language), un lenguaje interpretado que es con el que se programan estas impresoras y le permiten a uno evitar soluciones cerradas del estilo bartender [http://www.seagullscientific.com/aspx/products.aspx].
como segunda pata de este proyecto está la integración con las lectoras, el equipo que recolecta la información de los tags que atraviesan un portón del almacén. En este caso y siguiendo con las soluciones ofrecidas por un canal de ventas de ibm, el lector es el infinity 510 de sirit [http://www.sirit.com/index.php?option=com_content&task=view&id=157&Itemid=92]. la verdad que todavía no tenía el placer de trabajar con un equipo así, pero aparentemente y por las pruebas que estuvimos haciendo, es un equipo bastante interesante. para empezar con los aspectos técnicos, este equipo es una computadora que corre un linux y oculta en un gabinete casi indestructible y que hace las veces de disipador para el procesador. la configuración de este equipo es mediante una interfaz web y la integración es mediante un protocolo propietario montado sobre una conexión ssh. fuera de lo que utilizamos, este equipo viene con algunos chiches, como ser la capacidad de correr aplicaciones java y scripts python en forma natural. para establecer el vinculo utilizamos la librería de jsch y desarrollamos un esquema de comunicación a prueba de fallas (desconexiones, timeouts y otros problemitas). por encima de esto, utilizamos el protocolo de sirit, implementando solo algunos de los comandos posibles.
finalmente como tercera pata de nuestra solución, tenemos que integrarnos con el sistema de gestión de la empresa, intercambiando cierta información critica para el circuito de despacho de producto. hoy en día, este sistema es un desarrollo inhouse montado en un iseries de ibm –si, son fanáticos de ibm-, pero dentro de unos meses pasaran a utilizar sap –increíble como ganan terreno!!!-, por eso el desarrollo de las interfaces y la política de integración con el erp de turno tiene que ser lo suficientemente flexible para minimizar los cambios a la hora de cambiar de interlocutor.
para mencionar un poquito de la mecánica de la solución, utilizamos struts, hibernate, spring, quartz, tomcat y mysql –si bien son fanáticos de ibm, hay cosas que pudimos evitar, como ser el websphere!-.
si hay una problemática repetida y subestimada en casi todos los sistemas desarrollados es la de reporting. los listados y reportes son la forma habitual de presentar información en ambientes administrativos y por lo tanto el reflejo no solo del correcto funcionamiento del sistema utilizado, sino del negocio (proceso, circuito, área, o el alcance que se le quiera dar).
como buena empresa que basa sus desarrollos en productos open source, siempre tratamos de utilizar jasper reports [http://jasperforge.org/sf/projects/jasperreports] que realmente es una solución muy buena para la generación de los reportes más variados, pero que a pesar de esto, tiene sus falencias. de todas estas características cuestionables, la que mas nos pegaba era no poder definir reportes con columnas variables -elegir que columnas se presentan en tiempo de ejecución- y por eso es que nace DynamicJasper [http://dynamicjasper.sourceforge.net/index.html].
uno de los objetivos del desarrollo de esta api fue, aparte de proveer la funcionalidad de columnas dinámicas, el de mejorar la productividad evitando el desarrollo de funcionalidad ad-hoc para cada cliente o proyecto particular.
el DJ es una extensión al famoso jasper, que nos permite generar reportes en forma totalmente programática, evitando tocar archivos .jrxml. el DJ nos da la facilidad de generar reportes con una sola línea de código y agregarles un chart en otra [http://www.jfree.org/jfreechart/]. algunas de las otras características del DJ que lo hacen muy útil son la posibilidad de contar con cortes de control, totales, subtotales, columnas de formulas y algunas otras cositas que voy a dejar que descubran probándolo.
para demostrar algunas de las funcionalidades del DJ y a su vez como proyecto de investigación de la empresa, armamos un playground [http://dynamicjasper.sourceforge.net/docs/playground.html], totalmente desarrollado en gwt y en donde no solo mostramos al DJ, sino también algunas de las cosas que se pueden hacer con el framework de google [http://code.google.com/webtoolkit/]. este playground fue reconocido como un ejemplo de uso de gwt en aplicaciones por uno de los blogs mas importantes sobre gwt [http://www.ongwt.com/post/2007/03/09/GWT-and-JasperReport].
hoy tenemos más de mil descargas en sourceforge y hemos recibido bastante apoyo de la comunidad, incluyendo al equipo de rasper reports.
una buena manera de empezar a usarlo es siguiendo esta guía: http://dynamicjasper.sourceforge.net/docs/getting_started.html
ante cualquier duda o consulta no duden en preguntarnos a través de los foros del producto que respondemos lo más rápido que podemos y espero que les sea de tanta utilidad como es para nosotros.
siguiendo la línea de un mail que escribí hace poquito a un grupo de alumnos de la facu, sobre la utilidad de los business cases y mostrando que estas cosas son reales, les voy a contar un poco de que estamos haciendo en la empresa para crecer…
aparte de las iniciativas "comunes", de tomar nuevos clientes, capturar proyectos interesantes y la gente adecuada, tenemos bastante participación en distintos eventos del segmento, por ejemplo la Cessi [http://www.cessi.org.ar] y el Polo IT [http://www.itbuenosaires.com.ar/]. de estos eventos surgen bastantes ideas e iniciativas interesantes y ya hace un tiempito aplicamos para un par de programas de sponsoreo y financiación a emprendedores argentinos que fuimos descubriendo…
en este momento, estamos en carrera con el Fontar [http://www.agencia.secyt.gov.ar/], EmpreTic [http://www.cessi.org.ar/empretic/] y CrearCIT [www.forocrearcit.secyt.gov.ar]
existen muchas otras iniciativas de este estilo, así que si alguien esta pensando en aplicar o no, vayan y prueben…
hace mucho que no escribo, y tengo muchas cosas pendientes que bajar, pero voy a dedicarle esta entrada a algo que me llamo mucho la atención.
desde hace un tiempo a la fecha los juegos de simulación se van haciendo cada vez mas populares, al punto que en algún momento se comenzaron a utilizar en ciertos aspectos insospechados como entrevistas laborales.
hoy en día con el furor de Second Life, una simulación llevada al extremo de simular una vida, al menos yo ya no entiendo mas nada. Un mundo virtual donde la gente se hace millonaria en la vida real explotando la vida virtual, campañas de marketing de empresas de celulares, juegos, ropa donde hacen evaluaciones de mercado, proyectos de desarrollo de grandes complejos virtuales -hoteles, campus universitarios- y grosos como Booch dando conferencias en su segunda vida.
fuera de este nuevo estilo de vida, algo mas sencillo que descubrí el otro día, el ITMG2 de Intel (http://itmg2.intel.com/spa/), que es un juego de simulación en donde uno toma el rol de un director de IT, tomando decisiones sobre datacenters, servidores y estrategia de it. Todavía no le pude dedicar mucho tiempo así que me voy a reservar la opinión para mas tarde, pero solo en la introducción detecte un par de cosas que me llamaron muchísimo la atención. El personaje con el sable laser (Luke es de IT???) y el apartado con la imagen de un titiritero y la leyenda de "Conviértase en el amo del universo". Me gustaría saber que imagen tiene la gente de Intel de los directores de IT!!!
espero que se diviertan!
pd: esta entrada la estoy publicando desde el nuevo office que tiene integración con blogs. Es una prueba para ver que tal anda…