miércoles, 29 de agosto de 2012

Desarrollo Web: estado actual y mejores prácticas

Otra de las charlas dada en el marco del Java Day 2 celebrado el pasado 28 de Julio de 2012.  Germán escobar nos habla sobre el estado actual del desarrollo web y buenas prácticas.

Introducción a Git

Hola a todos:

Después de mucho tiempo sin publicar en este blog, vuelvo con este video de la charla que dí sobre Git en el marco del Java Day 2 organizado por el Grupo de Usuarios Java en Colombia (@cojug en Twitter) y celebrado el pasado 28 de Julio de 2012 en las instalaciones de Globant Bogotá.


Para más información sobre Git y GitHub, pueden consultar los siguientes sitios:

Git Pro - Libro virtual
Git Hub
Git en Wikipedia

viernes, 23 de julio de 2010

Investigación de Operaciones, Que es eso?

No se trata de un estudio y/o encuesta adelantados por alguna revista de farándula ni tampoco tiene que ver cirugías o cosas por el estilo.

Cuál es la forma más eficiente de asignar ciertos recursos escasos para conseguir la más alta tasa de retorno? ¿Cuál es la mejor manera de asignar rutas a una flotilla de transporte de bienes que deben ser colocados en bodegas de distribuidores para que los costos sean más bajos? ¿Cuántas ventanillas deben colocarse en un banco en las horas normales y en las horas y días pico para que los clientes no se desesperen y se larguen al banco que está cruzando la calle?

Este tipo de preguntas se pueden resolver con la investigación de operaciones. A lo largo de la historia se han ido creando y aplicando métodos como resultado de la investigación de operaciones para resolver problemas de optimizar y toma de decisiones gerenciales. Múltiples autores la han definido y en síntensis se puede decir que : "Es un enfoque científico de la toma de decisión. Podemos decir que la Investigación de Operaciones utiliza un enfoque planeado (método científico) y un grupo interdisciplinario para representar, mediante modelos simbólicos, las relaciones funcionales que se dan en la realidad, lo cual suministra una base cuantitativa para la toma de decisiones". Cuando se aplica alguna herramienta de la IO, se busca obtener el óptimo resultado del uso de los recursos escasos.

Se dice que no se requiere de preparación formal para hacer investigación de operaciones, sin embargo hacer una interpretación y aplicación adecuada de la misma se requiere buenas bases en Estadística Descriptiva e Inferencial, conocimientos sobre las aplicaciones del Cálculo Diferencial e Integral y del Algebra Lineal, y desde luego, principios generales de Economía.

Una característica adicional es que la Investigación de Operaciones intenta encontrar la mejor solución, o la solución óptima, al problema bajo consideración. En lugar de contentarse con sólo mejorar el estado de las cosas, la meta es identificar el mejor curso de acción posible. Es un aspecto muy importante dentro de la Investigación de Operaciones.

Como se trabaja en la investigación de operaciones?


La Investigación de Operaciones busca el óptimo resultado en la utilización de recursos escasos y usa el método científico. El orden habitual de las investigaciones que se realizan con este instrumento es el siguiente:


  1. Se define el problema que se desea resolver en la forma más completa y clara que sea posible.
  2. Se construye un modelo apropiado que represente al sistema o al proceso en estudio (un modelo matemático).
  3. Se deduce una o varias soluciones a partir del modelo construido.
  4. Se hace una prueba del modelo y de la solución obtenida, contrastando esto con la realidad, si es que existe información suficiente, de lo contrario el contraste se hace con modelos secundarios.
  5. Se ajusta el modelo y se monitorea el resultado.
  6. Se implementa la solución, esto es, se pone a trabajar al modelo y sus soluciones.

Principales herramientas

Cuando se habla de herramientas en Investigación de Operaciones, se hace referencia a los diferentes modelos teóricos (como por ejemplo, modelos de transporte y teoría de colas), y a otras disciplinas (como matemática, administración, economía, etcétera), que se utilizan como instrumentos de trabajo habitual.


De la misma manera la Investigación de Operaciones es considerada, en si misma como una herramienta al servicio de otras disciplinas. Es bien conocido que la Administración de Negocios se ha estado beneficiando grandemente de la Investigación de Operaciones ahora que se ha iniciado toda una revolución con el uso de Planificación Estratégica, Reingeniería y los programas de Calidad Total, entre otros.


La siguiente es una lista de diferentes tipos de modelos que se pueden considerar como herramientas de la Investigación de Operaciones:


  1. Modelos gráficos de programación lineal.

  2. Modelos algebraicos de programación lineal.

  3. Redes y programación lineal para transporte.

  4. Modelos de toma de decisión en condiciones de incertidumbre.

  5. Modelos de toma de decisión en condiciones de certeza.

  6. Modelos Bayesianos.

  7. Procesos estocásticos con cadenas de Markov.

  8. Líneas de espera (Teoría de colas).

  9. Modelos de optimización con redes para la planeación, ejecución y control de proyectos.

  10. Cadenas de Markov para el reemplazo de activos fijos.

  11. Modelos de inventarios determinísticos.

  12. Modelos de inventarios probabilísticos.

  13. Modelos de programación dinámica y teoría de juegos.

  14. Modelos de simulación para la obtención de información experta.

  15. Modelos heurísticos de autoaprendizaje y autocorrección.


Investigación de operaciones al servicio de la ingeniería, administración y economía.

Pese a que para poder leer e interpretar adecuadamente una red CPM-PERT sólo se necesita saber leer y escribir, esta técnica para la planificación de proyectos es un instrumento gerencial por excelencia, ya que permite al ejecutivo mantener un control muy preciso durante la ejecución de los mismos.


Este ingenioso y elegante método para la optimización de tiempos y minimización de costos es la mezcla de dos instrumentos creados hace algunos años; el CEMP (Crithical Path Method) y el PERT (Program Evaluation on Review Technique).


El primero fue diseñado en el segundo lustro de los años 50, por los investigadores de Dupont: J.E. Kelly y M.R. Walker y originalmente fue denominado CPPSM (Crithical Path Planing and Scheduling Method), se usó para la programación y control de la factoría química en Kentuky y demostró sus grandes ventajas respecto a los métodos clásicos por su aptitud de integrar modificaciones sin dificultad.


El segundo método fue diseñado en la misma época por Naval Special Project Office, con la colaboración de la Lockhead Aircraft y de la firma Booz-Allen & Hamilton. Lo extraordinario es que habiendo sido diseñados por grupos diferentes que buscaban resultados diferentes (uno la minimización de costos y el otro la optimización de los tiempos), y que el primero fuera de tipo determinístico y el segundo probabilístico, las coincidencias gráficas fueran tan notables en ambos métodos. Puede decirse que a primera vista no existe ninguna diferencia desde el punto de vista gráfico.


Estos dos métodos aportaron los elementos administrativos necesarios para formar el método actual CPM-PERT que definitivamente es de más difícil lectura y más elegante y poderoso que sus antecesores, se usa para el control de los tiempos de ejecución y los costos de operación buscando que el proyecto sea realizado en tiempo óptimo y al menor costo posible.


Los métodos de redes, en general, habían estado siendo manejados como secretos militares por la NASA, que como ahora sabemos había tenido una serie de sonados fracasos en sus lanzamientos de satélites artificiales. Fue en el momento de la desesperación y angustia (1957), cuando los soviéticos colocaron el primer Sputnik en órbita, cuando dieron mayor abertura a otras personas e instituciones para que les ayudaran a poner a punto a su cohete Polaris y a recuperar el tiempo perdido por haber trabajado aislados.


De ese momento en adelante toda la programación de NASA se hizo usando redes y esto les permitió, como lo hace con cualquier proyecto, manejar simultáneamente la enorme cantidad de actividades desarrolladas por subcontratistas ligadas entre sí pero desarrolladas en lugares diferentes por personas que no tenían relación directa.


La administración y las ingenierías fueron las grandes ganadoras ya que en forma casi natural comenzaron a utilizar CPM y PERT como instrumentos.

miércoles, 18 de noviembre de 2009

Virtualización en la Semana del Saber y Bienestar Cunista

En la semana del Saber y Bienestar celebrada del 9 al 14 de de Noviembre pasados, se desarrolló la muestra técnica de los estudiantes de Ingeniería de Sistemas en sus diferentes semestres. Los proyectos que hicieron parte de la muestra técnica cubrían variados campos de aplicación como el software para organizaciones, hardware, comunicaciones, aprendizaje, software libre, entre otros. Donde fuera que se mirara se podía observar proyectos interesantes, algunos con gran potencial comercial, otros para entretenimiento, otros como aquellas rarezas tecnológicas que llaman la atención. Sin embargo en cada uno de ellos hacia presencia la creatividad de los estudiantes que lo pensaron y llevaron a cabo estos proyectos para compartirlos con la comunidad Cunista.

Una de las muestras que más me llamó la atención fue la de virtualización presentada por Juan Pablo Hoyos en la cual pude observar las ventajas que trae el poder ejecutar múltiples sistemas operativos en una sola máquina. En el último par de años ha aumentado el número de usuarios caseros que acceden a aplicaciones en diferentes sistemas operativos en sus pc de escritorio y/o portátiles, esto puede ser debido a que el hardware es mucho más potente que hace un tiempo atrás, pero esto por si solo no sería una novedad si no fuera por que se ha dado una tendencia a reducir los precios de los pc con óptimo rendimiento permitiendo acceder a un equipo versátil. En el caso de las empresas, aquellas que pasan por procesos de migración a plataformas abiertas y que requieren mantener el acceso a aplicaciones de la antigua plataforma que son de uso crítico encuentran en la virtualización una solución especial a sus necesidades. También se dan casos en donde la actualización a un nuevo sistema operativo ya no da más soporte a un tipo de hardware específico que el anterior si cubría, en ese caso también resalta la virtualización como solución a esta situación.



Durante la muestra, el compañero Juan Pablo hizo la demostración utilizando Sun xVM Virtual Box, este producto es de distribución gratuita y de puede descargar de www.virtualbox.org, este software es un poderoso software de virtualización Open Source que correo sobre Windows, Linux, Macintosh y Open Solaris y que soporto sistemas como Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7), DOS/Windows 3.x, Linux (2.4 and 2.6), Solaris, OpenSolaris y OpenBSD. En cuanto a las plataformas de hardware soportadas están x86 y AMD64/Intel64.

Como explicaba Juan Pablo el concepto de virtualización es familiar en muchas empresas y es entendido como la consolidación de cargas de trabajo y reducción de costos. La virtualización de servidores es reconocida por ofrecer un camino de costo efectivo para condensar servicios de aplicaciones empresariales en un único servidor, lo cual ayuda a incrementar la utilización del servidor, mejorar la administración, reducir el consumo de energía, particionar las cargas de trabajo de manera segura manejando múltiples capas o varios sistemas operativos en una solo máquina física.


En el caso de la virtualización de escritorios, permite el acceso a usuarios individuales a aplicaciones específicas en múltiples sistemas operativos en un pc de escritorio o portátil, con beneficios similares que extienden de consolidar varias máquinas virtuales o una sola plataforma virtualizada.



Hace unos meses atrás, cuando Microsoft lanzó las versiones Beta de Windows 7, esta debía ser instalada en limpio sin dar la opción de ajustar una partición propia para ello, en este caso use Virtual Box y sobre la máquina virtual creada instalé Windows 7, esto me permitió probarlo sin alterar el sistema operativo.


Volviendo a la parte de las empresas y antes de glorificar la virtualización hay que recordar que la misma solución no siempre se ajusta a todas las situaciones o necesidades y que ninguna tecnología ofrece una solución total que la convierta en la panacea. La virtualización ofrece la ventaja de la reducción de costos operativos, sin embargo al tener corriendo varias sistemas operativos en una misma máquina requiere que la misma tenga unas características de rendimiento adecuadas para su operación, igualmente requiere persona capacitadas para su administración y un lugar adecuado para albergarla. En pocas palabras la máquina donde corran las demás máquinas virtuales no se puede caer, dañar o quedar fuera de operación porque así mismo dejaría todos lo servicios, aplicaciones o cualquier otro sistema en ella. Una indisponibilidad puede provocar costos y pérdidas en la operación de la organización, algo que dejaría a la virtulización con la fama por el piso. No solamente es la herramienta en si, sino la forma en que se use que determinará le éxito de la virtualzación como solución en una empresa; considero que aquellos servicios u operaciones que sean críticas deben tener todos los recursos disponibles para asegurar su funcionamiento, por lo tanto estos no se deben implementar o desplegar en entornos virtualizados; por otra parte aquellos servicios que usen recursos compartidos, que sean de apoyo o diferentes a producción pueden ser desplegados en entornos virtualizados.


Por último y volviendo a la primera parte sobre las muestras, me parece que el acompañamiento por parte de los profesores a los proyectos debe mejorar ya que considerando que para los proyectos de software se cuenta con apenas 2/3 del semestre para su planeación, desarrollo y entrega la gestión debería ser verdadera y de la mano de la calidad para así ofrecer unas muestras más reales que conceptuales. Algo que no va a dejar de generarme inconformidad es la insistencia en respetar lo procesos de ciclo de vida de desarrollo, entregar la documentación para que a lo último los jueces ni siquiera tengan un ítem que evalúe el proceso y la gestión del proyecto. Esto lo manifiesto como participante de varias muestras en la CUN en donde he visto como se convence con poco a algunos jueces mientras que para otros lo que no está implementado no existe aunque en el diseño y documentación esté contemplada. Ah! y también deberían tener en cuenta los incentivos para los proyectos, con eso al siguiente semestre no se quedarían tantos en el papel.