Google calendar y cron (Gentoo)

Desde hace tiempo vengo usando habitualmente Google Calendar para apuntar mis horarios de clase, entre otros eventos. Pero hace unas semanas que he dejado de usarlo para el resto de citas en favor de una agenda de las de toda la vida.

Sin embargo gracias a las googlecl le he encontrado otro uso. Basándome en un script en Bash muy simple que encontré en la wiki de Funtoo para mantener sincronizado tu árbol de portage en Gentoo (o en Funtoo como es mi caso) le he añadido una pequeña porción de código que me permite ver en Google Calendar si tengo algún paquete por actualizar. Pero con googlecl quien dice Google Calendar, dice Blogger o Docs o incluso Picasa o Youtube.

El código está totalmente comentado así que no creo que haya dudas, pero si las hay, preguntad :)

Es importante, tal y como se comenta en el código, que hayamos usado con anterioridad googlecl con nuestro usuario habitual para que tengamos concedidos los permisos. Con hacer un simple:

$ google calendar list

Se nos pedirá el usuario y la contraseña de nuestra cuenta de Google. Y ya está, usad ese usuario en el script (al principio hay una variable donde ponerlo).

Luego como root solo tenéis que copiarlo a /etc/cron.daily/

En caso de que lo vuestro sea Debian, en la siguiente entrada pongo una versión para Debian y familiares.

Si se os ocurre alguna mejora, avisad o hacedla vosotros ;)

AS KLIK AKI PA BER EL CODIJO TOO REXULON!

Spam with bacon

Entre mi lista de las cosas que más me molestan está el spam. Y creo que coincidirás conmigo en que recibir correo sobre viagra no es muy divertido.

Spam-IP es un sitio web orientado a la lucha contra el spam.

Me entero por Security By Default de que tienen un honeypot dedicado a la lucha contra el spam. Así que incluyo el enlace en mi pagina para aportar un poco al proyecto que no cuesta nada y puede que haga mucho :)

Si NO eres bot NO le des al Submit del formulario del enlace.
Spam Sucks

Evolution data server y adressbook

Hay un bug reportado de evolution que imprime este error en el stdout:

(evolution:18385): libebook-WARNING **: e-book.c:3079: cannot activate book: Error calling StartServiceByName for org.gnome.evolution.dataserver.AddressBook: Timeout was reached

Realmente este problema afecta a todo aquel programa que haga uso de evolution-data-server

Si tienes este error échale un ojo a las USE de cairo y asegúrate de tenerlo compilado sin qt4. Tras eliminar la use, recompila evolution-data-server.

Suerte ;)

Genkernel, initramfs y SystemRescueCD

Si estás leyendo esto, probablemente ya sepas lo que es Genkernel y lo que es SystemRescueCD. Si no lo sabes y lees esto por aburrimiento, te lo explico pero si no eres usuario de Gentoo alguna cosa puede sonarte a chino.

En el mundo de Gentoo, tenemos dos opciones para compilar un kernel de Linux. La primera es la manual. Aunque parezca mentira es realmente sencillo y para la mayoría de situaciones es hasta cómodo y rápido, una vez tienes tu fichero de configuración creado y funcionando (lo cual lleva un poco de practica), siempre que quieras actualizar solo tienes que usarlo. Ahora bien, existe otra opción y esa es Genkernel. Se trata de un conjunto de scripts que nos permiten automatizar la tarea, evitándonos realizar la mayor parte del proceso manualmente. Generalmente se usa para crear un kernel similar al de un LiveCD que reconozca gran parte del hardware que tenemos sin mayor problema. En mi caso, me era necesario para inicializar cierta configuración del hardware antes del arranque del sistema. Esta tarea depende de initramfs, el sucesor de initrd, un pequeño sistema embebido en el kernel que es lanzado en las primeras instancias del sistema y que generalmente sirve para inicializar configuraciones un poco peculiares (y no tan peculiares: es necesario para crear las bootsplash por ejemplo) como RAIDS o sistemas cifrados.

Este proceso se puede hacer a mano pero con genkernel es extremadamente sencillo, y dado que se puede configurar el kernel como si lo hiciéramos manualmente, el resultado es excelente.

Por otro lado tenemos SystemRescueCD, un LiveCD basado en Gentoo con montones de herramientas. Desde que lo conozco, siempre llevo un LiveUSB encima con el. No solo es útil para realizar instalaciones de Gentoo.

A lo que íbamos. Estaba yo realizando una preciosa instalación de Gentoo en un nuevo disco duro y me dispuse a usar Genkernel para evitar problemas creando el initramfs, pero cual es mi sorpresa cuando al decirle a Genkernel que compile este falla en el script gen_initramfs_list.sh con el siguiente mensaje entre otros muchos errores:

/usr/src/linux-2.6.32/scripts/gen_initramfs_list.sh: Cannot open ‘/var/tmp/genkernel/initramfs-2.6.32.14-std155-i386.cpio.gz’
make[1]: *** [usr/initramfs_data.cpio.lzma] Error 1

El error tiene toda la lógica del mundo:

Para la utilización de Genkernel había usado el fichero de configuración del LiveCD y este contiene una opción llamada: CONFIG_INITRAMFS_SOURCE=”" y entre las comillas un path a un cpio.gz (el mismo que sale en el error). Genkernel busca ese initramfs pero al estar dentro del entorno chroot de la instalación este fichero no existe.

La manera de solucionar este problema es localizar el fichero de configuración que genkernel está usando y que generalmente estará en:

/usr/share/genkernel/arch/x86_64/kernel-config-2.6
NOTA: Cambia x86_64 por tu arquitectura
Y editar la opción CONFIG_INITRAMFS_SOURCE=”" dejándola precisamente así, con la cadena vacía entre las comillas. Ale, a compilar :D

Disfruta de tu nuevo kernel y recuerda quitarle unos cuantos módulos que fijo que no necesitas tantos ;)