Cálculo automático de porcentaje para tareas madres y porcentaje de avance de proyecto en web2project

9 mayo, 2011 at 11:39

Llevo varios años utilizando sistemas de gestión de proyectos y uno de los sistemas libres que más me gusta el DotProject , sin embargo el poco movimiento que ha tenido en los últimos años me ha hecho moverme a una de sus variantes, Web2project.

Web2project es un clon mejorado de Dorproject, tiene varios plugins publicados que incrementan notablemente las capacidades del sistema. Sin embargo posee algunos detalles que se podrían considerar como críticos por algún project manager.

Una problemática que me ha dejado bastante intranquilo es que actualmente en web2project no se calcula automáticamente el porcentaje de avance de las tareas madres cuando una tarea hija es modificada. Es decir si una tarea contiene 4 subtareas, es lógico que el porcentaje de avance cambie si una de sus subtareas lo hace. De la misma forma si una subtarea de una tarea cambia, es lógico que el porcentaje de avance total del proyecto también lo haga, cosa que actualmente no sucede.

Para solucionar este problema, hemos implementado un trigger, que se preocupa de verificar los % de avance de cada tarea madre cada vez que una tarea hija sufre cambios. de esta forma el % de avance total del proyecto siempre indicará el valor correcto del momento.

Dejo a continuación los códigos SQL que implementan la función que calcula el nuevo porcentaje y el código del Trigger que se mantendrá atento cuando se realicen cambios.

//*****************************************
// FUNCION QUE CALCULA EL NUEVO PORCENTAJE
//*****************************************
CREATE FUNCTION new_percent (id_tarea int) RETURNS decimal(6,2)
BEGIN
DECLARE salida decimal(6,2);

SELECT
CAST(
round(
IF(
( SELECT COUNT(stasks.task_id)
FROM ((`tasks` AS stasks))
WHERE stasks.task_id <> tasks.task_id
AND stasks.task_parent = tasks.task_id
) = 0,
task_percent_complete,
( SELECT ifnull(SUM(stasks.task_percent_complete),0)/if(COUNT(stasks.task_id)=0,1,COUNT(stasks.task_id))
FROM ((`tasks` AS stasks))
WHERE stasks.task_id <> tasks.task_id
AND stasks.task_parent = tasks.task_id
)
),2)
AS DECIMAL(6,2)
)
AS X into salida
FROM ((`tasks` AS tasks))
where task_id = id_tarea;
RETURN salida;
END

//*****************************************
// Trigger
//*****************************************

CREATE TRIGGER update_task AFTER UPDATE ON tasks
FOR EACH ROW
BEGIN

update tasks set task_percent_complete = round(new_percent(task_id),0);
END

espero les sea útil.

«Para poder tener internet en Linux necesitas Windows» … Fail !

31 enero, 2011 at 13:39

Según nuestros amigos de VTR.com, para poder instalar un plan de banda ancha en tu computador con linux, uno de los requerimientos es tener Windows…. WTF.!

Vtr_Linux_Fail

Alternativa a json_encode() de php

22 diciembre, 2010 at 11:54

La versión 5.2 de php tiene la posibilidad de agregar la función json_encode() si cargamos una librería en el php del servidor. json_encode() tiene la capacidad de convertir la mayoría de los datos de php en estructuras de datos válidos para JavaScript.

Lamentablemente algunos proveedores de hosting no habilitan json_encode(). Pero no se precupen, ya tenemos la alternativa :).

jsonwrapper ( http://www.boutell.com/scripts/jsonwrapper.html ), provee de las funciones necesarias para reemplazar y/o crear una alternativa a json_encode en los servidores que no la tengan soportada. Solo es necesario agregar un » require ‘jsonwrapper.php’; » en nuestro código ( y evidentemente subir la librería a nuestro directorio fuente ) para que todo funcione de maravilla.

sitio oficial de jsonwrapper –> http://www.boutell.com/scripts/jsonwrapper.html

Delineación Asistida de Cuerpos de Agua con Lake Walker para OpenStreetMap

12 diciembre, 2010 at 17:00

Hace algunos días me he encontrado con LakeWalker, un buen plugin para delineación asistida, disponible para el editor JOSM de OpenStreetmap. No es espectacularmente bueno, pero al menos cumple con las funcionalidades básicas esperadas en una herramienta como esta.

Para quienes realizamos aportes constantes a OpenStreetmap, puede resultar bastante interesante la integración de esta herramienta en el proceso de delineación de cuerpos de agua u otros sectores de características parejas ( como bosques o caminos ).

LakeWalker por ahora solo trabaja con imágenes liberadas de LANDSAT, por lo que no siempre es posible acceder a resultados en donde no se quieran correcciones.

Según el destripe que he realizado del plugin, el funcionamiento consta en descargar una imagen satelital infraroja desde landsat de la zona donde se ha seleccionado la delineación asistida. Generando de esta forma la traza de puntos, lineas y/o polígonos necesarios.

No es mala idea usar Landsat, pero según he visto estos último días, el servidor WMS de la NASA que cuenta con estas imágenes, no siempre está disponible ( al menos para la red de Chile ). ( He estado pensando seriamente en mejorar el plugin para permitir usar imagenes infrarojas propias ).

LakeWalker ya viene incorporado en las últimas versiones de JOSM, por lo que si actualizar su software podrán probarlo.

Historia de como integrar correctamente el motor de búsqueda google a un sitio web

27 agosto, 2010 at 14:04

Todos sabemos que google permite crear busquedas «personalizadas» , permitiendo restringir los dominios de búsqueda y «acomodar» los resultados a un estilo parecido a la de la web que desplegará los resultados.

Sin embargo algunos webmasters que desean personalizar los resultados gráficos, más allá de los que google les ofrece, no tienen opción más que meter las manos a los códigos y diseñar inventos raros.

Hace algunos días (o semanas), en lacosox.org nos propusimos mejorar el motor de búsqueda del «Grupo de usuarios GNU/Linux IX región Chile» ( http://www.gulix.cl ).  Ellos anteriormente tenían una búsqueda «personalizada» a través del motor de búsqueda de google, pero a decir verdad esta «personalización» dejaba mucho que desear. El motor de búsqueda era excelente, pero la integración gráfica era pésima.

280px-Busqueda_antes_de_personalizar

Al realizar la búsqueda el resultado era este.


Nos Propusimos encontrar la forma de integrar correctamente el buscador Goole en la web,  permitiendo que los resultados se desplegaran dentro de la lógica gráfica del sitio y manteniendo al mismo tiempo los derechos y lógica de Google Inc.

Después de algunas horas de trabajo logramos finiquitar el tema , obteniendo como resultado una visión similar a esta.

280px-Busqueda_despues_de_personalizar

Resultados actuales de la búsqueda.

La lógica ingenieril que está detrás de este proces puedes revisarlo en el acta de actualización del sitio de Gulix.cl, donde se encuentran todas las características técnicas que permiten realizar esta personalización extrema. Puedes revisar el acta aquí -> ( http://gulix.cl/wiki/WebGulix_2.0.3 )

Aunque te puedo adelantar que la lógica se basa en este diagrama:

 Diagrama que explica toda la lógica de solución.

Diagrama que explica toda la lógica de solución.

Problema de la controladora Sata de la placa DP55KG

7 julio, 2010 at 01:15

DP55KGHace algunos días teníamos la necesidad de armar un servidor que usaría la placa madre DP55KG de intel, la cual según especificaciones del fabricante, podría soportar desde un procesador i5-650 en adelante, con socket 1156, y un montón de otras cosas, entre ellas una de las importantes es que cuenta con una controladora raid de 6 puertos sata, más 2 puertos sata adicionales.

 

A los pocos minutos de testeo, nos logramos percatar que la versión de la bios que el fabricante utilizó para la distribución de fabrica, no soporta el procesador i5-650 y además cuenta con problemas al montar la placa con 6 discos duros en los puertos sata de la controladora raid, que se supone,  son para tal efecto.

Durante la configuración básica del equipo nos encontramos con problemas de arranque en la bios, cuando la máquina era cargada con más de 4 discos duros de 2TB c/u . Lo que se reduce en grabes problemas a la hora de configurar la máquina. La placa DP55KG con la versión de bios de fábrica anterior a Mayo de 2010 solo logra configurar correctamente en algunas ocaciones los 6 discos duros western digital sataII de 2TB c/u .

La solución es actualizar la Bios a la última versión disponible en el sitio del fabricante. Esto al menos permitirá utilizar de mejor forma las cuales de esta placa tan particular.

El proceso de actualización de la Bios no es para nada doloroso, en nuestro caso lo hemos hecho utilizando un disco de arranque el cual al correr un proceso desde una terminal totalmente automatizada, actualiza la versión de la Bios. Se recomiendo durante este proceso utilizar una fuente de energía suplementaria  ( UPS )

Espero que esta experiencia le sea útil a alguien , ya que al intentar encontrar información sobre este problema, no hemos encontrado nada en la gran red. Seguramente por que los usuarios tradicionales no forzarán esta placa a tan descabellada capacidad de almacenamiento.