lunes, 27 de agosto de 2012

Mi visión particular del verano

El verano se ha terminado, por lo menos para mí. Hoy he comenzado a trabajar después de 21 días de vacaciones. Apenas he viajado, sólo un paseo de 3 días a Bueu y Cangas. No puedo quejarme, máxime después de visitar Polonia el pasado mes de mayo.

Estas vacaciones no me apetecía nada ponerme a estudiar C# ni ASP.net, que es con lo que estoy lidiando últimamente, sin embargo si he tocado, aunque fuese por encima:


  • Squid : He actualizado el repo de Github.com de la versión 2.X. Si os interesa podéis echarle un vistazo a la configuración básica en :  https://github.com/apermuy/squid2
  • He colaborado con GALPon redactando un "mini-howto" para la instalación de un Moodle 2.4 en Debian GNU/Linux Squeeze. Podéis echarle un vistazo en  http://www.galpon.org/wiki/index.php/Instalando_Moodle_en_%C2%ABlocal%C2%BB_para_pruebas
  • He re-escrito el formulario de inscripción del IX Ciberencontro Kernel 2012 de Mugardos, además también me he currado una app en Gambas para la lectura de los datos.
  • tune2fs : Un "tune2fs -m 0 /dev/sda4" me "ha devuelto" todo el espacio que non encontraba en una de la particiones de mi PC de sobremesa.
  • Drupal: He tocado Drupal 6 + CCK + Views en la web de "Asociación Comunidade O Zulo". Espero que en el Kernel 2012 podamos migrar todo el contenido a Drupal 7.
  • Zentyal: He trasteado con la versión 2.2. Nada nuevo, pero igual de interesante.
  • Debian GNU/Linux: Encantado con la versión unstable en mi PC de escritorio.
  • PHP: Recomiendo visitar  http://www.eugeniabahit.com/ , sobre todo la sección PHP POO.

He dejado miles de temas en el tintero, supongo que con algo más de tiempo y ganas, algún día los escribiré en este espacio.


martes, 24 de julio de 2012

Moodle, logs y cómo salvar el culo...

Ayer Lunes día 23 de Julio de 2012 fue uno de los días más jodidos desde que estoy trabajando en esta empresa. Estamos en plena "justificación", es decir: "sacar/imprimir/generar miles de informes de toda la actividad de los últimos 12 meses", y todo se necesita "ya".

El pasado Viernes día 20 me avisaron de que "para ayer" deberíamos tener listos los accesos y calificaciones de todos los alumnos que han cursado algún plan formativo con nosotros. Lo de todos los años: ir a Moodle, entrar en el curso, generar informe y asunto zanjado. Nada más lejos de la realidad!

Comienza el "marrón" con la operación descrita en el párrafo anterior y bueno, la verdad es que aunque suene raro, hasta parecía divertirme y todo! Que si un informe por aquí, que si lo guardo por allá, hasta que "0 registros" encontrados para el curso XXXYYYZZZ: "No puede ser!"  pensaba en voz baja. "Voy a generar de nuevo el informe", pero nada: 0 registros! Llamo a mi compañero y le comento el problema: "Yo genero los informes cuando termina el curso, pues 'el Moodle' está configurado para eliminar los registros después de 100 días de inactividad", responde. El cielo se vuelve negro y yo comienzo a plantearme seriamente abandonar el país de inmediato, dejarlo todo y comenzar una nueva vida en Cuba vendiendo postales en el Malecón. "Keep calm and carry on!".

"Copias de seguridad, eso es" vuelvo a repetir en voz baja. Descargo vía "scp" los últimos backups de los cursos en cuestión y los intento restaurar en mi máquina local. Imposible! Ni aumentando "timeouts" , ni "tuneando MySQL", nada, ni una sola operación de restauración se realizaba correctamente...Las 16:05. 35ºC en el estudio. No sabía qué hacer. Bajo a tomar algo frío, subo de nuevo al estudio y pienso "puedo descargar toda la bbdd e intentar recuperar los logs de acceso, luego los exporto a XLS y asunto arreglado". No fue tan fácil como pensaba, pero sí, lo logré. Es muy probable que a nadie le interese cómo lo he logrado pero voy a dejarlo escrito por aquí, por que es probable que algún día necesite volver a leer este post.

1.- Restaurar la bbdd.

mysql -u root -p bbdddepruebas < copiabbdd.sql

2.- Ni se os ocurra trabajar con PhpMyAdmin o similar. En mi caso he usado MySQLWorkBench y no he tenido ni un problema. Hablamos de 2.100.000 registros en una sóla tabla.....

3.- Crear una "View" sólo con los registros del curso en cuestión. Sabéis que en Moodle todos los cursos tienen un "id" único, pues bien, yo he creado una "View" para cada curso del que había perdido los logs.

CREATE VIEW idcurso AS SELECT * FROM mdl_log WHERE course = 80

4.- Bien, ahora creamos una consulta sobre la vista pero con dos "INNER JOIN" sobre las tablas mdl_user(para obtener el nombre del usuario a partir del userid) y mdl_resource(para obtener el nombre del recurso/actividad a partir del resource_id).

SELECT
    FROM_UNIXTIME(x.time),
    x.ip,
    CONCAT(u.firstname, ' ', u.lastname) AS NombreAlumno,
    x.action as Accion,r.name as Informacion
FROM
    idcurso x
INNER JOIN mdl_user u ON x.userid = u.id
INNER JOIN mdl_resource r ON x.info = r.id
LIMIT 0 , 100000 


Pasteamos directamente la consulta en MySQLWorkbench, esperamos a que finalice la ejecución y listo! Ya podemos pulsar el botón exportar y generar el informe de acceso.


Así es como pasé el Lunes 23 de Julio de 2012, entre Moodle y sentencias SQL. Lo bueno: he entregado el trabajo a tiempo. Lo malo: era mi día libre.

Salud!



jueves, 31 de mayo de 2012

mount.nfs: access denied by server

Sigo bastante rayado con Fedora 17 y esta tarde me he encontrado con un pequeño problema al configurar un servidor nfs y montar los directorios desde un cliente:


root@mabu apermuy#mount -a
mount.nfs: access denied by server while mounting 192.168.20.50:/home/apermuy/Música



La solución es muy sencilla, basta con añadir "nfsvers=3" a la cadena correspondiente en el fichero /etc/fstab, en mi caso:


 #Polinico BTMS
192.168.20.50:/home/apermuy/Música /home/apermuy/Desktop/nfs/polinico/Musica    nfs     nfsvers=3,rsize=8192,wsize=8192,nosuid,soft     0 0



Ahora intentamos montar los directorios y comprobar que todo está en orden.


root@mabu apermuy#mount -a && df -hT
Filesystem                          Type      Size  Used Avail Use% Mounted on
rootfs                              rootfs     78G  8.1G   70G  11% /
devtmpfs                            devtmpfs  976M     0  976M   0% /dev
tmpfs                               tmpfs     985M   88K  985M   1% /dev/shm
tmpfs                               tmpfs     985M  1.3M  984M   1% /run
/dev/sda4                           ext4       78G  8.1G   70G  11% /
tmpfs                               tmpfs     985M     0  985M   0% /sys/fs/cgroup
tmpfs                               tmpfs     985M     0  985M   0% /media
192.168.20.50:/home/apermuy/Música/ nfs       801G  543G  218G  72% /home/apermuy/Desktop/nfs/polinico/Musica



Parece que si... :)

miércoles, 30 de mayo de 2012

Sublime Text Fedora 17

Dejo un pequeño "tip" para la instalación del editor  "Sublime Text" en Fedora 17. Es muy probable que al ejecutar "sublime_text" devuelva este error:

"./sublime_text: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory"

Un simple " ldd sublime_text" devolverá las dependencias de las librerias con las que ha sido compilado el binario.  En mi caso:

root@mabu Sublime Text 2#ldd sublime_text
        linux-vdso.so.1 =>  (0x00007fff72dff000)
        libgtk-x11-2.0.so.0 => /lib64/libgtk-x11-2.0.so.0 (0x0000003a3b800000)
        libgdk-x11-2.0.so.0 => /lib64/libgdk-x11-2.0.so.0 (0x0000003a3c000000)
        libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x0000003a3b400000)
        libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x0000003a42600000)
        libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x0000003a38a00000)
        libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x0000003a38e00000)
        libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x0000003a37a00000)
        libcairo.so.2 => /lib64/libcairo.so.2 (0x0000003a39200000)
        libpng12.so.0 => not found

No busqueis el paquete "libpng12.so.0" en Fedora 17 por que no lo encontraréis. La librerías compartidas para libpng 1.2.x se encuentran en el paquete libpng-compat, así que ese el paquete que debemos instalar. Así de simple:

yum install libpng-compat

y en medio minuto tendréis "Sublime Text" funcionando.




Mis impresiones sobre Fedora 17


Desde hace unas semanas uso Fedora 16( desde ayer Fedora 17 ) tanto el PC de escritorio como el portátil. El cambio no tiene un por qué concreto, simplemente me apetecía cambiar de distrubución y de entorno de escritorio.

Me ha gustado:
  • KDE 4. Mucho no, muchísimo. A mi enteder es mucho más sencillo e intuitivo que GNOME3. No voy a entrar en guerras ni afirmaciones absurdas, actualmente me gusta más KDE. Desactivando los efectos el entorno, Dolphin y demás es rapidísimo, desde mi punto de vista, está años luz por encima de GNOME3. 
  • Kernel 3.3. Indispensable contar con un Kernel actualizado. En esta versión se incluyen mejoras en el driver Nouveau para Nvidia;mejoras en los sistemas de ficheros Btrfs, FUSE, NFSD; mejoras en Netfilter(iptables)...Si queréis ver todas las novedades del Kernel 3.3 os dejo un enlace a los "features".
  • Yum. Rapidísmo. Por el momento no echo de menos apt.
  • Software: Versiones actualizadas de la mayoría de apps que uso a diario : Firefox, git, vim, Thundebird, K3B...
  • Instalación: Si sabes leer puedes instalar Fedora 16 / 17. Sencillo e intuitivo. 
  • Fedora Spins: Ya he hablado de los Spins en este blog, y vuelvo a insistir, echadle un ojo si no os convence la versión "out of the box" . http://spins.fedoraproject.org/
  • Documentación . Aunque la versión 17 está sin traducir, la documentación de Fedora es muy completa. Incluye apartados para: instalación, mantenimiento de paquetes, guía de seguridad. http://docs.fedoraproject.org/es-ES/index.htmlhttp://docs.fedoraproject.org/es-ES/index.html
 De momento estoy muy contento con esta gran distribución, de lo que no tengo duda, es que tarde o temprano regresaré a Debian GNU/Linux.