{"id":4388,"date":"2023-01-29T20:30:48","date_gmt":"2023-01-29T19:30:48","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=4388"},"modified":"2023-01-29T20:30:49","modified_gmt":"2023-01-29T19:30:49","slug":"100daysofcode-dia-3-aplicaciones-web-y-otros","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2023\/01\/29\/100daysofcode-dia-3-aplicaciones-web-y-otros\/","title":{"rendered":"100DaysOfCode: d\u00eda 3 &#8211; aplicaciones web y otros"},"content":{"rendered":"\n<p>D\u00eda de peque\u00f1os arreglos en cosas que he dado por demasiado resueltas y una definici\u00f3n de aplicaciones web para centralizarlas en una p\u00e1gina.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>El primer problema que me encontr\u00e9 con mi paquete <em>mydevtools<\/em> es que no pod\u00eda usarlo para crear un paquete Debian para \u00e9l empleando sus programas. Lo intent\u00e9 pero era una pesadilla recursiva, as\u00ed que opt\u00e9 por el empaquetado tradicional en lugar del simplificado <em>equivs<\/em>. Como tambi\u00e9n resulta que los primeros <em>scripts<\/em> los hac\u00eda en <em>Bash<\/em> era tambi\u00e9n muy complicado crear tests para ellos. Total, que al final no hab\u00eda tests automatizados y s\u00f3lo \u00f1apas puntuales en la etapa de desarrollo. Eso consegu\u00eda que los errores, especialmente los regresivos, apareciesen en cada versi\u00f3n nueva del paquete. Esta vez no ha sido una excepci\u00f3n y he tenido que volver atr\u00e1s y arreglarlos para poder avanzar. <\/p>\n\n\n\n<p>La otra opci\u00f3n es reescribir los <em>scripts<\/em> <em>Bash<\/em> en Perl y asegurarme as\u00ed mayor control (algo de control en realidad) y poder efectuar pruebas antes de empaquetar. De momento lo dejo en veremos para el futuro. Ahora toca reparar cositas. <\/p>\n\n\n\n<p>Y respecto al arreglo que menciono me he encontrado hoy con una de las cosas m\u00e1s extra\u00f1as que he visto. Una herramienta como <em>grep<\/em>, fiable como una roca, me ha fallado de manera misteriosa. En el programa que extrae p\u00e1ginas de manual de programas Perl en un directorio tengo una l\u00ednea como la siguiente: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">FILES_LIST=$(grep '^=pod' $DIR\/* | cut -d: -f 1 | egrep -v '.orig|.bak')<\/code><\/pre>\n\n\n\n<p>Selecciona archivos que contengan la directiva, extrae el nombre del archivo del primer campo (retorna el nombre del archivo y la coincidencia separados por dos puntos, y luego filtra. Ha funcionado de maravilla siempre hasta que se ha encontrado con un script Perl como el <em>gra<\/em>, que contiene lo mismo que en otros que he hecho toda-la-vida-de-dios y resulta que no muestra ni el nombre del archivo ni los dos puntos. S\u00f3lo el texto coincidente. Despu\u00e9s de darle muchas vueltas lo he cambiado a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"> FILES_LIST=$(grep -l '^=pod' $DIR\/* | egrep -v '.orig|.bak')<\/code><\/pre>\n\n\n\n<p>Y s\u00ed, ha funcionado sin problemas. No s\u00e9, quiz\u00e1s tendr\u00eda que haberlo hecho as\u00ed desde el principio pero ese programa lleva funcionado m\u00e1s de diez a\u00f1os. En fin. Resuelto el problema. <\/p>\n\n\n\n<p>En otro orden de cosas he retomado una idea que ten\u00eda hace mucho tiempo y que consiste en agrupar en una p\u00e1gina web accesos a las aplicaciones web que est\u00e1n instaladas en la m\u00e1quina. Hay unas cuantas que utilizo mucho como <em>dwww<\/em> y <em>phpmyadmin<\/em> -y otras que tengo planeado hacer yo en un futuro- que est\u00e1n en la m\u00e1quina local (la mayor\u00eda) y a las que me gustar\u00eda ser capaz de acceder desde un \u00fanico punto. <\/p>\n\n\n\n<p>En principio ten\u00eda pensado crear algo que explorase los paquetes instalados buscando aplicaciones conocidas y creando enlaces de acceso hacia ellas. Luego he llegado a la conclusi\u00f3n de que imitar lo que hace freedesktop.org con los archivos de acceso y clasificaci\u00f3n de aplicaciones y voy a crear algo parecido. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>D\u00eda de peque\u00f1os arreglos en cosas que he dado por demasiado resueltas y una definici\u00f3n de aplicaciones web para centralizarlas en una p\u00e1gina.<\/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":[1206],"tags":[16,1209,17,1210],"class_list":["post-4388","post","type-post","status-publish","format-standard","hentry","category-100daysofcode","tag-desarrollo","tag-mydevtools","tag-perl","tag-webapps"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4388","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=4388"}],"version-history":[{"count":2,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4388\/revisions"}],"predecessor-version":[{"id":4390,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4388\/revisions\/4390"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=4388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=4388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=4388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}