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.

Go back from the Hell

20 febrero, 2011 at 20:07

Debo confesar que Lacosox.org tiene más suerte que «tanga de una actriz porno», hace algunas horas ( más de 48 ), el servidor donde Lacosox.org vive como un bil parásito, junto con todas las otras máquinas del datacenter de una conocida universidad, se vieron forzados a realizar un pequeño viaje sin retorno asegurado al mismísimo infierno.

De la que nos salvamos!.

Seguramente todos ya conocen la noticia, el edificio ardió en llamas. Sin embargo sobrevivimos, la mala hierva nunca muere!. Y hemos retornado felices de conocer como se siente estar con el culo a 2 manos de perderlo todo!… naaa exajero, tenemos todo fríamente calculado…

Acá una imágen de nuestro viaje al hogar de satán.

FOTO_0620110419110037

«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

el 2010 de Lacosox.org

1 enero, 2011 at 15:37

lacosox_2010

El 2010 en Lacosox.org terminó con 29387 visitas únicas aproximadamente, que juntas realizaron más de 1 millón de conexiones al dominio, generando un tráfico aproximado de 60.65 GB.

Los 3 temas más populares fueron:

Programa para descomponer un número N en sus factores primos utilizando una estrategia voraz
Descomposición L/U de una Matriz en Python (Programa anexo)
Manual de referencias para el Usuario Zimbra ZCS 4.0.2 en español

resulta curioso, ya que estos temas no fueron escritos en 2010!, datan de 2008.

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.