Mis andanzas y conocimientos: uno no aprende del día a la mañana

Nunca me he considerado una buena programadora, pero hoy tenía las ganas de avanzar un poco con mi nivel de programación… Realmente, siempre he sido una muy mala programadora, porque no era capaz de entender los conceptos que estaba leyendo o me estaban enseñando. Es simplemente que el enfoque era simplemente incorrecto. Es por ésto que muchas veces me atasco con tonterías…

Aprendí a programar y realmente hacer algo útil con lo aprendido en 2001 (lo de antes con el html en 1998 eran garabatos), cuando tuve la oportunidad de crear un programa para gestionar una imprenta en la que curraba en Cornellà. Además ahí ya estaba empezando a aburrirme, estaba jugando ya con un servidor en gnu/linux, y estaba jugando en hacer pequeños programillas chorras, como descargar los frames del radar de lluvias de la web de metereología y ponerlos en un gif para poderlo visualizar en el applet del tiempo de gnome2. Con ésto pillé curiosidad y sin darme cuenta ya estaba programando y cuando llegó la propuesta (que un poco fue mía porque estaba entusiasmada con lo que estaba haciendo… ¡estaba creando!) pues estaba preparada para ir más allá, con un objetivo, una meta.…

Nextant: Indexador de ficheros de nextcloud

Una vez instalado Nextcloud vemos que la interfaz cambia un poco además de que tenemos un montón de aplicaciones disponibles que no teníamos con owncloud.

En antaño había instalado una aplicación para indexar el contenido que hay dentro de los ficheros almacenados en el cloud, pero a partir de alguna de las actualizaciones de owncloud dejó de funcionar, traté de identificar el bug y solucionarlo, pero la cosa se quedó al aire y fuera de mis capacidades, así que simplemente desactivé dicha aplicación. Ahora con Nextcloud vuelve a aparecer una herramienta, basada en solr/java para indexar el contenido de los ficheros. El solr es un viejo conocido (monstruo) en Alfresco, así que vamos a ver como trabaja en la instancia de cloud que tengo en funcionamiento, mucho mas cargada de ficheros y documentación que la que tenía inicialmente en Alfresco… también los años van pasando…

Vamos a ver pues como instalar Nextant

Solr
Primero tendremos que instalar solr como servicio, para ello tendremos que instalar primero java y después solr.

Mi primera pregunta, ¿cuál java? ¿el SE, JRE, JDK? el JDK.

Lo guardamos en /opt por ejemplo y lo descomprimimos, a continuación creamos un link simbólico en alguno de los directorios de ejecución (mirar printenv para ver cuales son)

# cd /opt
# tar xvzf jdk-9.0.1_linux-x64_bin.tar.gz
# cd /usr/local/bin
# ln -s /opt/jdk-9.0.1/bin/java .

Comprobamos que java nos aparece como un programa escribiendo directamente en la terminal java –version

# java --version
java 9.0.1
Java(TM) SE Runtime Environment 

Migrar de owncloud a nextcloud

Nextcloud es el fork que se hizo de Owncloud cuando éste empezó a ofrecer un servicio premium y aplicaciones de pago. Para ello la comunidad decidió pasarse a Nextcloud, manteniendo las actualizaciones y funcionalidad de y con Owncloud.

Hace ya un par de años instalé Owncloud en un servidor que lo he ido actualizando de vez en cuando, hace unas semanas decidí pasar de Owncloud a Nextcloud, así que lo actualicé a la versión 10.0.3 para previamente pasarlo a Nextcloud pero me encontré que la versión 12.0.3 de Nexcloud aún no estaba preparada para migrar desde Owncloud 10.0.3. Así que tuve que esperar hasta la release de la versión 12.0.4 de Nextcloud ayer mismo :)

Lo primero será realizar una copia de seguridad de los ficheros y de la base de datos. Una recomendación que hago que se realice automáticamente a diario.

Mi instancia de owncloud la tengo instalada en /var/www y tengo separados los ficheros en 2 directorios, owncloud que es donde se almacena el software del programa y ownclouddata que es donde se almacenan los ficheros de los usuarios, además tengo un script que hace un dump de la base de datos.

Nos posicionaremos pues en el directorio superior de donde tenemos owncloud y descargaremos la última versión de nextcloud

# cd /var/www
# wget -c --no-check-certificate https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip
# unzip nextcloud-12.0.4.zip

Copiaremos el fichero de configuración de owncloud a nextcloud

# cp owncloud/config/config.php nextcloud/config/

Tendremos que cambiar el directorio por defecto de trabajo del servidor web (apache en …

radicale: servidor de CalDAV

Hace ya unos meses que me persiguen para integrar el calendario de varias herramientas, como owncloud (nextcloud), egroupware, thunderbird y el móvil pero ninguno de los dos primeros las versiones que tengo instaladas permiten compartir el calendario públicamente para que las otras herramientas puedan acceder a él. Así que sólo nos queda o tirar de googlecalendar o montar nuestro propio sistema de CalDAV.

Primero de todo remarcar que vamos a tener los calendarios en 2 modos, sólo lectura y otros de escritura y lectura, el motivo es que algunos calendarios van a ser públicos y otros privados, los públicos no se van a poder modificar y los entregaremos en formato ics, los privados si :)

Vamos a ello

Aunque radicale está en los repositorios de debian, vamos a descargarnos la última versión de su página web.

root@radicale-dav:~# apt-get install apache2

Instalaremos python-setuptools y apache2-utils para crear passwords y usuarios a nuestros calendarios

root@radicale-dav:~# apt-get install python-setuptools apache2-utils

Ahora descargamos radicale y lo instalamos

root@radicale-dav:~# cd /var/www
root@radicale-dav:/var/www# wget -c --no-check-certificate https://pypi.python.org/packages/source/R/Radicale/Radicale-1.1.1.tar.gz
root@radicale-dav:/var/www# tar xvzf Radicale-1.1.1.tar.gz
root@radicale-dav:/var/www# mv Radicale-1.1.1 radicale

Ahora creamos un sitio donde vamos a almacenar el fichero de configuración

root@radicale-dav:/var/www/radicale# mkdir /etc/radicale
root@radicale-dav:/var/www/radicale# cp config /etc/radicale/

Y ahora lo modificamos y dejamos algunas líneas como indico

root@radicale-dav:/var/www/radicale# vi /etc/radicale/config
hosts = 127.0.0.1:5232
daemon = True
base_prefix = /
type = filesystem
filesystem_folder = /var/www/radicale_collections

Creamos el usuario que va a hacer funcionar radicale y creamos el directorio donde se van a guardar los calendarios de los usuarios

root@radicale-dav:/var/www# 

Arreglar el widget del tiempo de mate

Los usuarios del sistema de escritorio mate os habréis encontrado que ya hace unos días que el widget del tiempo no devuelve datos, el motivo de ello es que la página web de dónde se recolectaban los datos (weather.noaa.gov) ha dejado de funcionar. Para ello la solución es modificar la librería.

El código que hay en github puede requerir versiones de dependencias mas nuevas que las que hay en nuestro sistema, así que una de las soluciones es descargarnos el código de la versión que tenemos instalada en nuestro sistema.
Para no guarrear mucho mi sistema voy a descargarme el código en una maquina virtual (con la misma versión de sistema operativo que en mi portátil), instalar las dependencias necesarias para compilar la librería, descargar el código y modificar la librería, compilar la librería y finalmente copiar el fichero resultante a mi sistema.…

Traducir template de wordpress

Estoy administrando un conjunto de webs multiidioma con el template panaroma, tenía toda la web traducida pero se me resistían algunos textos que vienen incrustados en el tema. El otro día buscando llegué a una página de wordpress donde estaban los ficheros de traducción de dicho tema, así que si existían traducir el template era posible, pero ¿cómo?

Simple aunque poco documentado y después de estar paseándome entre los directorios de wordpress porfín he hallado la solución! :D

En wp-content/languages/themes/ se hallan los ficheros de traducción de cada uno de los temas, algunos temas al instalarlos te los dejan ahí, pero normalmente no y tienes que añadirlos manualmente. Haz un ls antes de preguntar nada mas!

Así que simplemente nos vamos a éste directorio y nos descargamos los paquetes de idioma .po y .mo de translate.wordpress.org que corresponda a nuestro tema. Si el tema no está como proyecto (o la traducción es tan mala que mejor meterle mano uno mismo), en el directorio languages del tema encontraremos el fichero .pot (template) para traducir nosotros mismos el tema.

Recuerdo vagamente las veces que he traducido software el uso de poedit un software para traducir programas y luego que pasarlo a .mo era un coñazo, así que os dejo ésta web (po2mo.net) para pasar los .po a .mo sin muchas complicaciones :)…

Instalar servidor mumble en Debian

Mumble es uno de estos servicios no muy usados pero realmente muy interesantes. Se trata de un programa cliente-servidor para realizar conferencias sólo con Audio.

Una de las cosas que realmente me gusta es que no es necesario un gran ancho de banda para funcionar, además de que es un canal de comunicación relativamente seguro, por lo menos, al tratarse de un servicio en el que puedes instalar TU el servidor donde TU quieras, da un poco mas de seguridad.

Así que vamos al lío… partimos como casi siempre de una Debian recién instalada, en este caso la versión 8.4.

Vamos a instalar 2 partes, el mumble-server en si y luego el mumble-django, una interfaz web para administrar el mumble-server a partir de dbus.…

Instalar OTRS con MySQL

Trac está muy bien, pero tiene un pequeño problema, y es que una de las necesidades que tengo es que los usuarios manden un correo electrónico a una dirección y se añada la petición como tiquet. Estas semanas me he estado peleando con ello, pero el script que encontré estaba desactualizado y no funcionaba muy bien, si insertaba los tiquets, pero no leía correctamente el cuerpo de los correos electrónicos :( traté de pelearme con el script pero no avanzaba. Así que he tenido que buscar otro software, un poquillo mas modernillo que si permita esto, se trata de OTRS.

A continuación todos los pasos que he tenido que realizar para instalarlo, partimos de una debian jessie 8.2.

Empezamos instalando algunas dependencias

root@epsilon-noc:~# apt-get install libapache2-mod-perl2 libdbd-mysql-perl libtimedate-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libpdf-api2-perl libdbd-mysql-perl libsoap-lite-perl libgd-text-perl libtext-csv-xs-perl libjson-xs-perl libgd-graph-perl libapache-dbi-perl libxml-libxml-perl libxml-xslt-perl

Borrar un tiquet en trac

Normalmente no vamos a necesitar borrar un tiquet en trac, ya que lo puedes marcar como duplicado, inválido o simplemente cerrarlo. Esto se puede hacer por el interfaz web. Es una mejor opción porque todos los procesos están documentados y se pueden buscar. Por ejemplo, alguien que reporte un bug, pero que realmente no lo sea.
Pero a veces queremos realmente borrar un tiquet. Por ejemplo, acabo de hacer unas pruebas con el mail2trac y tengo todo de tiquets que realmente no son tiquets. Así que podremos borrarlos con el comando trac-admin.

Iremos al directorio raíz de trac (no el del proyecto), en mi caso /var/trac y ejecutaremos trac-admin y el nombre de la instancia trac:…

Recibir un correo y publicarlo como tiquet en trac

Pues seguimos con nuestro sistema de tiquets, ahora queremos recibir un correo electrónico de un usuario y que se cree un tiquet asociado a él.

Lo primero será instalar el plugin de trac xmlrpc

root@epsilon-noc:/var/trac/capa8/plugins/xmlrpcplugin/0.10# python setup.py bdist_egg
root@epsilon-noc:/var/trac/capa8/plugins/xmlrpcplugin/0.10# cd dist/
root@epsilon-noc:/var/trac/capa8/plugins/xmlrpcplugin/0.10/dist# ls
TracXMLRPC-0.1-py2.7.egg
root@epsilon-noc:/var/trac/capa8/plugins/xmlrpcplugin/0.10/dist# cp TracXMLRPC-0.1-py2.7.egg /var/trac/capa8/plugins/

Ahora lo activamos en trac.ini…