"Yo si estoy a favor del Colegio"

  1. #33   #30

    Vale, si vamos a analizar las grandes cosas de un "ingeniero", seguimos en ese camino:

    1. OpenMosix ya está abandonado.

    2. Estuve mirando los CVS y las contribuciones de este "desarrollador" son como las comentadas en #26.

    3. No sólo tiene problemas graves de seguridad, sino auténticas chapuzas de alguien que ni siquiera sabe programar en C. Por ejemplo mira uno de sus parches más "serios": openmosix.cvs.sourceforge.net/openmosix/userspace-tools/setpe/setpe.c?

    Función original:

    if(!err && ip_need_two_phase(pe, n, oldpe, oldmosnet, oldnents))
    {
    if(!two_phase)
    {
    fprintf(stderr, "%s: The proposed change will modify the current node's mapping,n", pname);
    fprintf(stderr, "requiring a full MOSIX restart, including bringing all processes back home:n");
    fprintf(stderr, "If you are sure about the change, use 'setpe -W' (instead of 'setpe -w').n");
    exit(1);
    }
    }
    else
    two_phase = 0;

    Función modificada:

    if(!err)
    {
    if(ip_need_two_phase(pe, n, oldpe, oldmosnet, oldnents))
    {
    if(!two_phase)
    {
    fprintf(stderr, "%s: The proposed change will modify the current node's mapping,n", pname);
    fprintf(stderr, "requiring a full MOSIX restart, including bringing all processes back home:n");
    fprintf(stderr, "If you are sure about the change, use 'setpe -W' (instead of 'setpe -w').n");
    exit(1);
    };
    };
    }
    else
    {

    two_phase = 0;
    };

    Es una auténtica chapuza que no la hacen ni mis alumnos.

    Para los que no las ven:

    1. Sólo descompone el primer if en dos if distintos para poner otro, pero pone un if dentro de otro cuando debería ir en la misma condición

    2. Pone ";" después de las "}" cuando no hace falta (el } ya es un separador y no es ninguna instrucción).

    3. No respeta el estilo y sangrado del resto del código (pone el { en la línea siguiente y no en la misma línea).

    Cómo debería ser en C correcto:

    if(!err) {
    if(ip_need_two_phase(pe, n, oldpe, oldmosnet, oldnents) && ! two_phase) {
    fprintf(stderr, "%s: The proposed change will modify the current node's mapping,n", pname);
    fprintf(stderr, "requiring a full MOSIX restart, including bringing all processes back home:n");
    fprintf(stderr, "If you are sure about the change, use 'setpe -W' (instead of 'setpe -w').n");
    exit(1);
    }
    } else {
    two_phase = 0;
    }

    Moraleja

    Cuidado con criticar el merito profesional de los demás.

    Aún los ingenieros que van de "yo sé más que cualquier "intruso"" o "ricardo galli no sabe de lo que habla" pueden cometer errores como cualquier otro. Y así puede pasar que un "intruso" (que no estudió informática en la universidad) de 20 añitos como jcarlosn, o este mismo "criticado", puedan demostrar las chapuzas que cometes en tan poco código.

    Solución

    Esos problemas no se solucionan con colegios ni regulaciones, sino con mucha humildad e intentando aprender de todos, que la informática es más compleja que otras ingenierías, y ni los más expertos tenemos las herramientas de otras ingenierías para asegurarnos de no cometer errores importantes.

    PD (agregado): #32, pues me alegra que seas físico, porque el apunte enlazado justamente surge porque hablé bien de todo lo que aprendí trabajando dos años con físicos e ingenieros nucleares: gallir.wordpress.com/2008/03/14/relaciones/ (y soy doctor en informática, no sé si notas las diferencias de actitud lo que se refiere a "profesión").
    100  votos: 8   link
    el 06-04-2008 17:27 UTC por gallir gallir
     twitter  facebook  tuenti  
comentarios cerrados

menéame