En este servidor, esferas.org, ya tengo cuatro instalaciones de wordpress independientes de todo excepto de la base de datos. El servidor no tiene una gran configuración hardware por lo que intento que la cosa vaya lo más fluida posible. Y hoy me ha dado por revisar el asunto de los cachés. En la página de salud del sitio, en el que siempre me dicen que hay uno o dos o tres elementos a comprobar están insistiendo mucho en que necesito un caché de objetos persistente.
Autor: Víctor Moral
100DaystoOffload: día 3 – aclarando conceptos sobre Mastodon y ActivityPub
Ayer estuve hablando con Ángel sobre el tema del fediverso y las diferencias entre Mastodon y cualquier servidor ActivityPub. Voy a transcribir aquí su respuesta para que quede constancia para el futuro.
Menciona a snac como ejemplo de servidor ActivityPub que es mucho más sencillo de instalar y probar que cualquier otra cosa de las que abundan en el fediverso. De lo hinchados que están esos entornos y el hostión que van a darse si tienen éxito de verdad hablaré otro día. Sí que reconozco que haberme acercado al fediverso desde Mastodon ha desvirtuado mucho mi idea sobre ello. He aprendido mal. Pero todos tranquilos, que eso tiene arreglo.
100DaysOfCode: día 7 – nueva idea y continuación de otros
Hoy he tenido un día regular en este reto. Me he pasado parte de la mañana enfrascado en muchos temas y le he dado demasiadas vueltas a la parte de administración. Espero recuperar tiempo mañana.
ttt
Aquí el trabajo ha sido poco. Un test de un módulo Perl escrito y funcional que falla en todos los aspectos que tiene que fallar porque el código que testea no existe en su mayoría. Respecto al módulo he avanzado bastante, especialmente cuando me he dado cuenta de que son tres métodos públicos, sin atributos de clase, y que no merecía la pena emplear bibliotecas de código para automatizar la clase. Vamos, ni ésta ni ninguna de las otras tres en las que está compuesto.
mydevtools
Aquí he estado pensando bastante y me he lanzado a crear una nueva herramienta que las unifique a todas. Así, sin miedo, pero con esperanza brillando en mis ojitos de que esta vez voy a conseguirlo.
No, en serio. El único problema, si puedo llamarlo así, que encuentro con este paquete es que son demasiados los scripts que lo componen y aunque lo tengo bastante documentado me pierdo en el nombre, los parámetros y el orden de uso que tengo que darle en cada momento.
He ideado un programa llamado mybuild que va a reunir toda la funcionalidad que tienen los otros para no tener tanto espacio de nombres ocupado. Si total, las tareas son las mismas de siempre.
Ahora mismo en un archivo make tengo la siguiente disposición con las tareas comunes en un directorio de desarrollo.
all:
build: build-manpages
build-manpages: extract_pod
build_repo_manpages -b -s docs
extract_pod:
extract_pod_manpages -t docs
install: install-docs install-lib
install-docs:
build_repo_manpages -i -s docs -t $(DESTDIR)/usr/share/man
install-lib:
install_repo_files libmyparams-perl $(DESTDIR)
clean: clean-docs clean-tmp
clean-tmp:
find . \( -name "*.bak" -o -name "*.orig" -o -name "*.deb" \) -delete -print
clean-docs:
build_repo_manpages -c -s docs
Más o menos así. Depende de la antigüedad del proyecto utilizaré unos u otros para hacer lo mismo en todas las fases: inicialización, construcción, testeo, instalación y empaquetado. Y siempre tengo que mirar ejemplos de otros proyectos recientes o tirar de página de manual para saber cómo funciona. No está bien.
La herramienta que he comenzado dará un aspecto más sencillo a los archivos make:
all:
build: build-docs build-binary
build-docs:
mybuild build docs
build-binary:
mybuild build bin
clean: clean-repo clean-docs
mybuild clean bin
clean-repo:
mybuild clean repo
clean-docs:
mybuild clean docs
Creo que la idea se pilla. Se llama al programa con la operación y luego el tópico y se encarga, como ya hacen lo otros programas, de mirar valores por defecto, comprobar si se puede o no hacer algo, hacerlo o no, y dar los errores correspondientes; todo con la máxima de que va a ser empleado en otros programas y que debe morirse si hay algo de verdad mal y no decir ni pío si el resto va bien o no ha tenido que hacer nada.
He empezado escribiendo la documentación y luego pasaré a los test. No tengo prisa pero estaría bien que algunos de los tópicos estuviesen cubiertos como la documentación, tema más que trillado por el paquete, lo antes posible.
Ah, lo mismo el nombre es demasiado largo y lo acorto con uno de mis famosos y valorados acrónimos. :-)
100DaysOfCode: día 6 – empaquetando otros programas
Antes de nada voy a hacer un cambio en estas entradas porque no me entero de nada de lo que he escrito. Y mira, así no se puede vivir. Voy a poner un titular pequeño en cada tema y luego lo etiqueto para el futuro.
100DaysOfCode: día 5 – arreglos y nuevos proyectos
El programa gra ya es utilizable. Ángel me indicó el tipo MIME correcto y lo he arreglado, empaquetado e instalado. Se puede ver en http://taquiones.net/cgi-bin/gra. Vale que no es muy impresionante pero es un comienzo importante para mí.
El proyecto ttt (textos teatrales tratados) ya está definido en sus componentes básicos. Podría utilizar bibliotecas ya existentes pero son más las ganas de programar yo que de tener algo útil pronto, así que he llegado a completar una de las escenas de la obra en el formato de texto que he pergeñado.
En el siguiente ejemplo se ve que he tomado elementos de markdown intentando que sea lo más sencillo de transcribir.
# Autos ### neones M=María J=José (Buen coche. Buena familia. Jośe, María y el niño detrás, dormidito. Una de la madrugada) M: Míralo, estaba destrozado. J: Es un ángel. M: Tendríamos que salir más. J: Claro. M: ¡ Qué bien lo pasé ! J: Ya te vi. M: ¿Tú no? J: Te bebiste media botella. M: Tú bebiste más ... J: Sí, pero a mí no me sube igual.
Se indica el título de la obra con un sostenido, el de un acto con dos (opcional), el de una escena con tres (también opcional por si es microteatro o similar) y tiene un par de asignaciones que conforman mínimamente el dramatis personae. Algo más tendré que añadir, como una descripción del personaje, pero la intención es aprovechar y crear atajos para los diálogos que se ven en el texto.
Las acotaciones se indican entre paréntesis y pueden aparecer como elementos sueltos o dentro de los diálogos (o los monólogos) y éstos se marcan con el nombre del personaje, dos puntos y una o más líneas de texto hasta una línea en blanco u otra entrada de personaje.
El programa carga un texto de este tipo, lo organiza en elementos y luego lo convierte a otro formato para imprimirlo, llevarlo en el móvil o colgarlo en la red. La conversión llevará una característica especial para mí: crear el texto sin los diálogos de un personaje para facilitar el aprendizaje. Sé que existe software para estos casos, especialmente aplicaciones móviles pero, de nuevo, vuelvo con la fijación de arrancar a programar.
Se me ocurrió emplear también el formato epub y resulta que Ángel es un experto en sufrir con él. Y mira, me viene al pelo porque me ha descubierto un programa (de un tipo raro llamado Grunk o algo así) para convertir entre formatos. Que voy a emplear claro. No pretendo rehacer todo el trabajo yo solito, que tengo más ideas cociéndose.
100DaysOfCode: día 4 – lo estaba viendo venir
Estaba viendo venir que tendría que reescribir el programa extract_pod_manpages en Perl porque ha alcanzado el límite al que puede llegar un programa en Bash en el que sientes que debes quemarlo todo hasta los cimientos.
100DaysToOffload: día 2 – velatorios y regalos
Pues hoy he ido a un velatorio, a presentar mis respetos a unos amigos por el fallecimiento de un familiar, y me he encontrado con una sorpresa que me ha dejado descolocado.
La empresa funeraria (supongo) estaba regalando arbolitos a los asistentes. Árboles. En un lugar al que vas a despedir a una persona te llevas una planta viva a casa. Es tan pero tan buena idea que me gustaría conocer a la persona que la ideó porque me parece tan «humano» como inesperado el detalle.
Además es un quejigo, un árbol que puede alcanzar los veinte metros de altura y de flora mediterránea.
Y que la tierra sea leve al difunto.
100DaysOfCode: día 3 – aplicaciones web y otros
Día de pequeños arreglos en cosas que he dado por demasiado resueltas y una definición de aplicaciones web para centralizarlas en una página.
100DaysOfCode: día 2 – empaquetando scripts CGI
Según iba intentando empaquetar el script anterior, el gra, me he dado cuenta de que me hacía falta más soporte.
100DaysOfHomeLab: día 1 – algo con wordpress y algo con nextcloud
Comienzo diciendo que para mí los servidores en Internet que tengo alquilados son parte de mi laboratorio casero por lo que cualquier cosa que haga con ellos cuenta para ésto.