{"id":835,"date":"2022-02-07T16:14:23","date_gmt":"2022-02-07T15:14:23","guid":{"rendered":"https:\/\/esferas.org\/mldt\/?p=835"},"modified":"2022-02-08T10:59:02","modified_gmt":"2022-02-08T09:59:02","slug":"tareas-lunes-7-de-febrero-de-2022","status":"publish","type":"post","link":"https:\/\/esferas.org\/mldt\/tareas-lunes-7-de-febrero-de-2022\/","title":{"rendered":"Tareas: lunes, 7 de febrero de 2022"},"content":{"rendered":"\n<p>Encontrado algo muy raro en el desarrollo y otros problemas en la empresa. <\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\" id=\"depuracion-en-perl\">Depuraci\u00f3n en Perl<\/h3>\n\n\n\n<p>Hab\u00eda dedicado parte de la ma\u00f1ana a completar el programa <em>skeleton<\/em> del m\u00f3dulo mydevtools con la intenci\u00f3n de hacerlo \u00fatil hoy mismo pero he visto algo rar\u00edsimo cuando lo estaba depurando. <\/p>\n\n\n\n<p>Para depurar empleo el m\u00f3dulo Devel::ptkdb porque a\u00fana la potencia del depurador Perl con la comodidad del entorno gr\u00e1fico. Lo he hecho desde hace a\u00f1os y no he tenido mayores problemas. Hoy he descubierto que si llamas al programa a depurar con el par\u00e1metro <em>&#8211;name<\/em> (una o varias veces), el m\u00f3dulo se lo traga, a \u00e9l y a su valor, y desaparece cuando comienza la depuraci\u00f3n. <\/p>\n\n\n\n<p>El siguiente c\u00f3digo es algo que uso desde plantillas. No ha cambiado nada excepto en la definici\u00f3n de los par\u00e1metros: <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">GetOptions( 'name=s'        =&gt;  \\$project,\n            'init'          =&gt;  sub { $operation = q(init); }, \n            'complete'      =&gt;  sub { $operation = q(complete); },\n            'templates=s'   =&gt;  \\$templates,\n            'output=s'      =&gt;  \\$output,\n            'git'           =&gt;  sub { $use_git = 1; },\n            'type=s'        =&gt;  \\$project_type,\n            'help'          =&gt;  \\$help,\n            'verbose'       =&gt;  \\$verbose,\n            'quiet'         =&gt;  sub { $verbose = 0; },\n    ) or pod2usage ( 1 );\n<\/pre>\n\n\n\n<p>Ahora utilizo la siguiente l\u00ednea para depurar y el par\u00e1metro <em>&#8211;name<\/em> se elimina. Todas y cada una de las veces que se encuentre. No es, entonces, cosa del orden de aparici\u00f3n ni de nada semejante. Y no s\u00f3lo eso, es que desaparece tambi\u00e9n si lo pones con un gui\u00f3n simple. Es acojonante. En serio, \u00bf era necesario \u00e9sto a estas alturas de mi vida ? <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">perl -d:ptkdb bin\/skeleton --name prueba --init <\/code><\/pre>\n\n\n\n<p>He mirado en todas partes y s\u00f3lo he visto algo que me llama la atenci\u00f3n. El m\u00f3dulo hace una copia de los par\u00e1metros del programa en la siguiente l\u00ednea de <em>ptkdb.pm<\/em>: <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sub BEGIN {\n $Devel::ptkdb::scriptName = $0 ;\n @Devel::ptkdb::script_args = @ARGV ; # copy args\n\n}\n<\/pre>\n\n\n\n<p>Pero no parece que luego haga nada concreto con el nombre <em>name<\/em> o su valor. Y quiz\u00e1s sea porque tengo muy mal d\u00eda pero no encuentro rastro de ello en otra parte. S\u00e9 que guarda esos par\u00e1metros para reconstruir la l\u00ednea de llamada cuando se le pide reiniciar el programa:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">##\n## build up the command to do the restart\n##\n\n$fname = \"perl -w -d:ptkdb $Devel::ptkdb::scriptName @Devel::ptkdb::script_args\" ;\n\n<\/pre>\n\n\n\n<p>Y ahora que lo veo entiendo por qu\u00e9 el reinicio no funciona en muchos de mis programas. Tengo otras asignaciones en la l\u00ednea de llamada que no se tienen en cuenta en este fragmento. Y adem\u00e1s, se supone que ha hecho copia de los par\u00e1metros, no anotado su referencia, \u00bf verdad  ? <\/p>\n\n\n\n<p>Necesito descansar (y cambiarle el nombre al par\u00e1metro, que ya les vale). <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"registro-de-horas-trabajadas\">Registro de horas trabajadas<\/h3>\n\n\n\n<p>Como es costumbre en esta santa casa las cosas se hacen chapuceramente porque siempre hay intereses ocultos que lastran cualquier decisi\u00f3n, y luego se ponen de los nervios y te los ponen a ti porque deben cumplir normas y leyes que, claro est\u00e1, no est\u00e1n contempladas en los mecanismos que implementaron para que las cosas se hiciesen.<\/p>\n\n\n\n<p>En este caso concreto lamento tener que hablar de algo que no sea t\u00e9cnico pero es que ya me toca las narices. El <em>dire<\/em> nos llama a mi compa\u00f1ero y a m\u00ed y nos dice, en manos libres, que hay muchas, much\u00edsimas 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. \u00bf A que parece razonable ? Bueno, es discutible. <\/p>\n\n\n\n<p>Al principio de esta obligaci\u00f3n, cuando se hizo inevitable cumplirla m\u00e1s bien, se inventaron algo que ya de por s\u00ed era raro de narices. Antes, eso s\u00ed, se intent\u00f3 una desarrollar una aplicaci\u00f3n propia para llevar los horarios y el muchacho externo 1 la cobr\u00f3 bien cobrada y lo dej\u00f3 todo a medias y sin funcionar. Bueno, esa es la marca personal del mercenario inform\u00e1tico tipo, no hay mucho de qu\u00e9 extra\u00f1arse, pero parece que perdimos una oportunidad porque el acceso era v\u00eda web y todo el mundo ten\u00eda f\u00e1cil su registro. <\/p>\n\n\n\n<figure class=\"wp-block-pullquote\" style=\"font-size:8px\"><blockquote><p>Cuando vi el percal busqu\u00e9 una soluci\u00f3n externa y encontr\u00e9 tropecientos. Algunas tan c\u00f3modas y baratos como 20 empleados por 10 \u20ac al mes. Pero no, aqu\u00ed el amigo me dijo que todo suma y que era caro al finalizar el a\u00f1o. \u00bf Razonable ? No. <\/p><\/blockquote><\/figure>\n\n\n\n<p>As\u00ed que se sacaron de la manga un impreso que nos remiti\u00f3 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 \u00faltimo que me pregunt\u00f3 fue que si yo en mi casa trabajaba o no. Despu\u00e9s fue diciendo a sus socios que no sab\u00eda qu\u00e9 hac\u00eda yo y si lo estaba haciendo. Era cuesti\u00f3n de minar un poco m\u00e1s mi confianza, claro est\u00e1, y de terminar de hundirme psicol\u00f3gicamente. Luego que si tengo ganas de que se muera entre terribles sufrimientos. Pues s\u00ed, qu\u00e9 co\u00f1o, si es tan cobarde que prefiere torturar a los dem\u00e1s en lugar de ir de frente y despedirlos se lo deseo &#8230; Pero me estoy desviando del tema y quiero mostrar el impreso:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"287\" src=\"https:\/\/esferas.org\/mldt\/wp-content\/uploads\/sites\/23\/2022\/02\/registro-horas-1024x287.jpg\" alt=\"\" class=\"wp-image-838\" srcset=\"https:\/\/esferas.org\/mldt\/wp-content\/uploads\/sites\/23\/2022\/02\/registro-horas-1024x287.jpg 1024w, https:\/\/esferas.org\/mldt\/wp-content\/uploads\/sites\/23\/2022\/02\/registro-horas-300x84.jpg 300w, https:\/\/esferas.org\/mldt\/wp-content\/uploads\/sites\/23\/2022\/02\/registro-horas-768x215.jpg 768w, https:\/\/esferas.org\/mldt\/wp-content\/uploads\/sites\/23\/2022\/02\/registro-horas-960x269.jpg 960w, https:\/\/esferas.org\/mldt\/wp-content\/uploads\/sites\/23\/2022\/02\/registro-horas.jpg 1048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>\u00bf Se entiende algo ? \u00bf Cu\u00e1ndo se sale ? \u00bf Y cu\u00e1ndo se entra ? \u00bf Eso son rangos o periodos o qu\u00e9 co\u00f1o ? <\/figcaption><\/figure><\/div>\n\n\n\n<p>As\u00ed 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 \u00e9l se ha puesto a la defensiva y me ha soltado eso de que:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Eso se lo dieron en la gestor\u00eda<\/li><li>\u00c9l tiene orden de decirnos que firmemos todos los d\u00edas <\/li><li>Se reserva su opini\u00f3n personal sobre el formato del impreso. <\/li><\/ol>\n\n\n\n<p>\u00bf Y para qu\u00e9 co\u00f1o me sirves, hijo m\u00edo ? No te he pedido tu opini\u00f3n sobre el uso legal o no del impreso (que ni de co\u00f1a cumple los requerimientos -v\u00e9ase pausa para el bocadillo u horas extras-) si no sobre el formato para recoger informaci\u00f3n. <\/p>\n\n\n\n<p>Pues he subido temblando de rabia porque se ha resguardado bajo la excusa de su intimidad y reconoce que \u00e9l s\u00f3lo cumple \u00f3rdenes. Muchacho, eso se intent\u00f3 en 1946 y no funcion\u00f3. <\/p>\n\n\n\n<p>El problema es que la disputa de los socios ha conseguido que el gerente se centre en ella de tal manera que para \u00e9l no parece haber otra cosa. Y el director ha elegido bando y tampoco parece haber nada m\u00e1s. La \u00fanica similitud entre ahora y el pasado es la escalada de argumentos para que hagas algo. Que si inspeccionan mucho, que si ahora s\u00ed que s\u00ed van a pillarnos, que imag\u00ednate que nos ponen multa, &#8230; que vamos a morir.<\/p>\n\n\n\n<p>\u00bf Y sabes qu\u00e9 ? Que me la suda que a la empresa le multen. No soy la empresa. Trabajo para ella. Y no hace falta que me <em>amenaces<\/em> con el apocalipsis para que haga algo bien. Recordemos que han tenido el poder y la capacidad de hacerlo correctamente desde el principio.<\/p>\n\n\n\n<p>En realidad s\u00ed s\u00e9 por qu\u00e9 rechazaron contratar cualquiera de los servicios que se ofrec\u00edan para llevar el registro. Porque se han pasado la vida pidiendo al personal que se sacrifique un poco m\u00e1s por el bien de la empresa mientras que \u00e9sta, a\u00f1o tras a\u00f1o, nos iba dando menos y menos por dicho sacrifico. Si se lleva el control de horas de manera correcta se encontrar\u00edan con horas extras a pagar a final de mes. Y mira, eso s\u00ed que no. Se hundir\u00eda el modelo de negocio (o el puto universo, vete t\u00fa a saber). <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Encontrado algo muy raro en el desarrollo y otros problemas en la empresa.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[121],"tags":[237,145,239,238,240,180],"class_list":["post-835","post","type-post","status-publish","format-standard","hentry","category-el-dia-a-dia","tag-control-de-horarios","tag-desarrollo","tag-develptkdb","tag-empresa","tag-getoptlong","tag-perl","content-box"],"_links":{"self":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts\/835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/comments?post=835"}],"version-history":[{"count":7,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts\/835\/revisions"}],"predecessor-version":[{"id":845,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts\/835\/revisions\/845"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/media?parent=835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/categories?post=835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/tags?post=835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}