Backups de GitLab en un NAS QNAP

Hace tiempo que tengo un GitLab en casa donde guardo mis proyectos personales funcionando sobre una máquina virtual en un microserver HP con ESXi.

El caso es que actualizando el ESXi he visto que uno de los discos del RAID 10 del server está en rebuilding desde hace más de un día y me he decidido a configurar de una vez los backups del GitLab, más que nada por lo que pueda pasar..

Como mi GitLab no tiene mucho movimiento y no me apetece pagar por tener un montón de datos repetidos en la nube, buscando alternativas he visto que QNAP tiene la opción de instalar un ‘Object Storage Server’: Hosting S3 and OpenStack-compatible object storage services in QTS, y como además poseo un NAS QNAP pues perfecto.

El guardar los backups únicamente en un NAS que se encuentra al lado del servidor no es muy resiliente que digamos, pero para mi requisito de evitar un fallo de hardware es más que suficiente. Además es tinfoil friendly, y siempre puedo subir manualmente una copia encriptada a Glacier. Sigue leyendo «Backups de GitLab en un NAS QNAP»

Lexer-Parser en Java para traducir informes que deberían ser excel pero en realidad son HTML.

Este es el primer artículo de programación que escribo en el blog, y tal y como transcurren las cosas imagino que le seguirán unos cuantos.

Tal y como indica el título tengo una serie de informes que quiero analizar, el problema es que la aplicación que los genera no funciona bien, se supone que genera un archivo .xls de excel pero tratas de abrirlo con excel te dice que no puede abrir archivos de ese tipo. Al abrirlo con un editor de textos se ve que en realidad son un archivo codificado en HTML. No se si es debido a un fallo de programación de la aplicación que lo genera, dudo que sepan lo que es la integración continua, o si esta hecho así a posta, aprovechando algún comportamiento extraño de versiones antiguas de excel. LibreOffice se lo traga y lo abre, pero elimina los espacios repetidos que para la integridad de la información que tiene el informe son importantes.

Al principio lo intenté con Python. Primero con HTMLParser, pero se comía los espacios con lo que estaba en las mismas. También trate de hacerlo con DOM y SAX pero no había manera por no estar el documento ‘bien formado’, además, al final se habrían comido los espacios igualmente y no me hubieran valido.

Al final me decidí a hacerlo desde cero, aprovechando un ejercicio de un examen de un curso de Java que estoy haciendo, donde había separar el texto de una cadena HTML según etiquetas.En el examen lo realicé todo en un mismo archivo con una simple máquina de estados, pero para resolver este problema decidí currármelo un poco más, separar el lexer del parser y crear una interfaz gráfica. El objetivo es aprender.

Sigue leyendo «Lexer-Parser en Java para traducir informes que deberían ser excel pero en realidad son HTML.»