{"id":868,"date":"2016-01-19T11:38:46","date_gmt":"2016-01-19T11:38:46","guid":{"rendered":"http:\/\/esferas.org\/msqlu\/?p=868"},"modified":"2016-01-20T11:47:34","modified_gmt":"2016-01-20T11:47:34","slug":"el-pasado-nos-alcanza","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2016\/01\/19\/el-pasado-nos-alcanza\/","title":{"rendered":"El pasado nos alcanza &#8230;"},"content":{"rendered":"<p><a href=\"http:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/02\/printer-out-of-order-01.png\" rel=\"attachment wp-att-559\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-559\" src=\"http:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/02\/printer-out-of-order-01-150x150.png\" alt=\"printer-out-of-order-01\" width=\"150\" height=\"150\" \/><\/a>&#8230; y estamos cual conejo deslumbrado por los faros de un coche: perplejos.<\/p>\n<p><!--more--><\/p>\n<p>Ten\u00eda que haberlo contado antes pero se me pas\u00f3 por completo. A finales del a\u00f1o pasado estaba poniendo a punto varios programas de gesti\u00f3n en mi trabajo, demasiados al mismo tiempo, que deb\u00edan empezar a funcionar el 4 de enero. Tantos y tan relacionados entre s\u00ed que ni pod\u00eda optimizarlos ni mucho menos verificarlos.<\/p>\n<p>Y fue entonces cuando me llamaron para preguntarme si pod\u00edan facturar ya con la fecha del siguiente a\u00f1o, el 2016. Respond\u00ed que s\u00ed, que desde hac\u00eda varios periodos el sistema reiniciaba las numeraciones autom\u00e1ticamente, y me olvid\u00e9 por completo de ello.<\/p>\n<p>Muy poco despu\u00e9s vuelven para decirme que no, que <em>da error<\/em> cuando quieren crear una factura (o un albar\u00e1n, no estoy muy seguro) y que lo mirase porque si no el mundo iba a implosionar o algo as\u00ed de feo.<\/p>\n<p>Lo miro y descubro confuso que el error es <em>valor fuera de rango en el a\u00f1o<\/em>. \u00bf Fuera de rango ? Pero qu\u00e9 co\u00f1o.<\/p>\n<p>Y s\u00ed, fuera de rango totalmente. Cuando comenc\u00e9 a escribir el programa de gesti\u00f3n, veinticinco a\u00f1os atr\u00e1s, inclu\u00ed una cla\u00fasula de validaci\u00f3n de las columnas a\u00f1o en la base de datos tal como as\u00ed:<\/p>\n<p><strong>$ between 1990 and 2015<\/strong><\/p>\n<p>Pensaba, iluso, que mucho antes de esa fecha habr\u00eda jubilado las aplicaciones, la base de datos, el servidor Linux anclado en el tiempo. Jo.<\/p>\n<p>La base de datos era, y es, <em>Multibase<\/em>, de la que ya me he quejado otras veces, y en la versi\u00f3n que tengo no dispone de un diccionario de datos como tal. S\u00ed, se puede copiar la definici\u00f3n de una columna: su tipo y longitud, los atributos de entrada y presentaci\u00f3n, su validaci\u00f3n y el valor predeterminado, pero no existe un registro central que me permita propagar cualquier cambio en el resto de las tablas.<\/p>\n<p>Por supuesto en el c\u00f3digo fuente de las aplicaciones, en lenguaje <em>CTL<\/em>, tampoco. As\u00ed que me toc\u00f3 detener todos los procesos (m\u00e1s gritos y protestas pero paso de trabajar por la noche con algo tan delicado) y realizar los cambios manualmente en decenas de tablas de ambas bases de datos, la de desarrollo contra la que compilo y la de explotaci\u00f3n, y recompilar el casi centenar de fuentes en los que pod\u00eda utilizarse el tipo. No me fiaba de que en alg\u00fan punto no estuviese pasando un a\u00f1o a una funci\u00f3n y \u00e9sta se hubiese quedado con la validaci\u00f3n antigua.<\/p>\n<p>Un verdadero asco que me tuvo un par de d\u00edas apagando fuegos y calmando \u00e1nimos, dada la propensi\u00f3n de entrar en p\u00e1nico que se gastan por aqu\u00ed.<\/p>\n<p>Pero lo que de verdad me causo impresi\u00f3n fue darme cuenta de que llevo un cuarto de siglo con este entorno. Un puto cuarto de siglo sorteando sus limitaciones y observando c\u00f3mo se degrada d\u00eda a d\u00eda. Deber\u00eda estar muerto ya, \u00bf verdad ? Pues nada.<\/p>\n<p>Este a\u00f1o parece que s\u00ed, que por fin me van a dar v\u00eda libre para librarme de \u00e9l, pero no termino de cre\u00e9rmelo &#8230;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; y estamos cual conejo deslumbrado por los faros de un coche: perplejos.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[79,204],"class_list":["post-868","post","type-post","status-publish","format-standard","hentry","category-software","tag-bases-de-datos","tag-multibase"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=868"}],"version-history":[{"count":0,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/868\/revisions"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}