Tareas: lunes, 7 de febrero de 2022

7 febrero 2022

Encontrado algo muy raro en el desarrollo y otros problemas en la empresa.

Depuración en Perl

Había dedicado parte de la mañana a completar el programa skeleton del módulo mydevtools con la intención de hacerlo útil hoy mismo pero he visto algo rarísimo cuando lo estaba depurando.

Para depurar empleo el módulo Devel::ptkdb porque aúna la potencia del depurador Perl con la comodidad del entorno gráfico. Lo he hecho desde hace años y no he tenido mayores problemas. Hoy he descubierto que si llamas al programa a depurar con el parámetro –name (una o varias veces), el módulo se lo traga, a él y a su valor, y desaparece cuando comienza la depuración.

El siguiente código es algo que uso desde plantillas. No ha cambiado nada excepto en la definición de los parámetros:

GetOptions( 'name=s'        =>  \$project,
            'init'          =>  sub { $operation = q(init); }, 
            'complete'      =>  sub { $operation = q(complete); },
            'templates=s'   =>  \$templates,
            'output=s'      =>  \$output,
            'git'           =>  sub { $use_git = 1; },
            'type=s'        =>  \$project_type,
            'help'          =>  \$help,
            'verbose'       =>  \$verbose,
            'quiet'         =>  sub { $verbose = 0; },
    ) or pod2usage ( 1 );

Ahora utilizo la siguiente línea para depurar y el parámetro –name se elimina. Todas y cada una de las veces que se encuentre. No es, entonces, cosa del orden de aparición ni de nada semejante. Y no sólo eso, es que desaparece también si lo pones con un guión simple. Es acojonante. En serio, ¿ era necesario ésto a estas alturas de mi vida ?

perl -d:ptkdb bin/skeleton --name prueba --init 

He mirado en todas partes y sólo he visto algo que me llama la atención. El módulo hace una copia de los parámetros del programa en la siguiente línea de ptkdb.pm:

sub BEGIN {
 $Devel::ptkdb::scriptName = $0 ;
 @Devel::ptkdb::script_args = @ARGV ; # copy args

}

Pero no parece que luego haga nada concreto con el nombre name o su valor. Y quizás sea porque tengo muy mal día pero no encuentro rastro de ello en otra parte. Sé que guarda esos parámetros para reconstruir la línea de llamada cuando se le pide reiniciar el programa:

##
## build up the command to do the restart
##

$fname = "perl -w -d:ptkdb $Devel::ptkdb::scriptName @Devel::ptkdb::script_args" ;

Y ahora que lo veo entiendo por qué el reinicio no funciona en muchos de mis programas. Tengo otras asignaciones en la línea de llamada que no se tienen en cuenta en este fragmento. Y además, se supone que ha hecho copia de los parámetros, no anotado su referencia, ¿ verdad ?

Necesito descansar (y cambiarle el nombre al parámetro, que ya les vale).

Registro de horas trabajadas

Como es costumbre en esta santa casa las cosas se hacen chapuceramente porque siempre hay intereses ocultos que lastran cualquier decisión, y luego se ponen de los nervios y te los ponen a ti porque deben cumplir normas y leyes que, claro está, no están contempladas en los mecanismos que implementaron para que las cosas se hiciesen.

En este caso concreto lamento tener que hablar de algo que no sea técnico pero es que ya me toca las narices. El dire nos llama a mi compañero y a mí y nos dice, en manos libres, que hay muchas, muchísimas inspecciones -del monstruo malo que es el estado- sobre el control del registro de horas trabajadas. Que no vale eso de firmar una semana por anticipado y que hay que hacerlo a diario. ¿ A que parece razonable ? Bueno, es discutible.

Al principio de esta obligación, cuando se hizo inevitable cumplirla más bien, se inventaron algo que ya de por sí era raro de narices. Antes, eso sí, se intentó una desarrollar una aplicación propia para llevar los horarios y el muchacho externo 1 la cobró bien cobrada y lo dejó todo a medias y sin funcionar. Bueno, esa es la marca personal del mercenario informático tipo, no hay mucho de qué extrañarse, pero parece que perdimos una oportunidad porque el acceso era vía web y todo el mundo tenía fácil su registro.

Cuando vi el percal busqué una solución externa y encontré tropecientos. Algunas tan cómodas y baratos como 20 empleados por 10 € al mes. Pero no, aquí el amigo me dijo que todo suma y que era caro al finalizar el año. ¿ Razonable ? No.

Así que se sacaron de la manga un impreso que nos remitió el asesor fiscal (de los cojones) que no hay quien lo entienda y que no contempla cosas como el teletrabajo ni las horas extras. Bueno, el gerente tampoco lo contempla porque lo último que me preguntó fue que si yo en mi casa trabajaba o no. Después fue diciendo a sus socios que no sabía qué hacía yo y si lo estaba haciendo. Era cuestión de minar un poco más mi confianza, claro está, y de terminar de hundirme psicológicamente. Luego que si tengo ganas de que se muera entre terribles sufrimientos. Pues sí, qué coño, si es tan cobarde que prefiere torturar a los demás en lugar de ir de frente y despedirlos se lo deseo … Pero me estoy desviando del tema y quiero mostrar el impreso:

¿ Se entiende algo ? ¿ Cuándo se sale ? ¿ Y cuándo se entra ? ¿ Eso son rangos o periodos o qué coño ?

Así que he bajado con mi encanto personal y le he entregado al director el impreso firmado del mes pasado y le he dicho lo que pensaba de ese. Y él se ha puesto a la defensiva y me ha soltado eso de que:

  1. Eso se lo dieron en la gestoría
  2. Él tiene orden de decirnos que firmemos todos los días
  3. Se reserva su opinión personal sobre el formato del impreso.

¿ Y para qué coño me sirves, hijo mío ? No te he pedido tu opinión sobre el uso legal o no del impreso (que ni de coña cumple los requerimientos -véase pausa para el bocadillo u horas extras-) si no sobre el formato para recoger información.

Pues he subido temblando de rabia porque se ha resguardado bajo la excusa de su intimidad y reconoce que él sólo cumple órdenes. Muchacho, eso se intentó en 1946 y no funcionó.

El problema es que la disputa de los socios ha conseguido que el gerente se centre en ella de tal manera que para él no parece haber otra cosa. Y el director ha elegido bando y tampoco parece haber nada más. La única similitud entre ahora y el pasado es la escalada de argumentos para que hagas algo. Que si inspeccionan mucho, que si ahora sí que sí van a pillarnos, que imagínate que nos ponen multa, … que vamos a morir.

¿ Y sabes qué ? Que me la suda que a la empresa le multen. No soy la empresa. Trabajo para ella. Y no hace falta que me amenaces con el apocalipsis para que haga algo bien. Recordemos que han tenido el poder y la capacidad de hacerlo correctamente desde el principio.

En realidad sí sé por qué rechazaron contratar cualquiera de los servicios que se ofrecían para llevar el registro. Porque se han pasado la vida pidiendo al personal que se sacrifique un poco más por el bien de la empresa mientras que ésta, año tras año, nos iba dando menos y menos por dicho sacrifico. Si se lleva el control de horas de manera correcta se encontrarían con horas extras a pagar a final de mes. Y mira, eso sí que no. Se hundiría el modelo de negocio (o el puto universo, vete tú a saber).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *