Ya hablé sobre python y dbus hace un tiempo. Ahora vamos a aprender como atender a las señales que se mandan a través de este bus de escritorio. En el interesante tutorial de Pidgin tenemos un buen ejemplo. En este ejemplo se va a atender a la señal que emite pidgin cuando algún amigo se conecta. En el ejemplo de la web se lanza una ventana de notificación.
#!/usr/bin/env python
import dbus, gobject, dbus.glib
# Initiate a connection to the Session Bus
bus = dbus.SessionBus()
# Associate Pidgin's D-Bus interface with Python objects
obj = bus.get_object(
"im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
pidgin = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
# Create a global Pidgin buddy data cache
buddy_data_cache = {}
def onSignOn(bId):
# Extract a Pidgin buddy's name and alias
buddyAlias = pidgin.PurpleBuddyGetAlias(bId)
buddyName = pidgin.PurpleBuddyGetName(bId)
# Generate notification text based on the buddy's name and alias
print "Se ha conectado: %s"%(buddyName)
# Bind the onSignOn function with Pidgin's BuddySignedOn event
bus.add_signal_receiver(onSignOn,
dbus_interface="im.pidgin.purple.PurpleInterface",
signal_name="BuddySignedOn")
# Start the main loop
gobject.MainLoop().run()
Como veis es bastante sencillo. Iniciamos un bus de sessión. Obtenemos el objeto de purple (el servicio de pidgin). Creamos una función (onSigOn) que será la que se lance cuando ocurra la señal. Y ya solo nos queda unir esta función con la señal con el método add_signal_receiver. ¿Sencillo no? Como mola python
Para otro dÃa dejo la parte final, crear un “servidor” que se conecte a dbus y atienda peticiones a través de el.
August 26th, 2008
Categories: NoSabeNoContesta | Author: moebius | Comments: No Comments |
Sacado de:
- Buscar y listar todos los ficheros que tengan la cadena ABCÂ en el directorio actual y su subdirectorios:
find ./ -name "*" -exec grep -H ABC {} \;
find ./ -type f -print | xargs grep -H "ABC" /dev/null
egrep -r ABC *
- Buscar por extensión del directorio actual hacia abajo
find ./ -name "*.conf" -print
- Buscar los ficheros de los usuarios mayores de 5Mb:
find /home -size +5000000c -print
- Buscar todos los ficheros de un usuario (usando su UID) en todo el sistema:
find / -user 501 -print
- Buscar todos los ficheros creados o actualizados en los últimos 5 minutos:
find / -cmin -5
- Buscar todos los ficheros del usuario 20 y cambiarlos a 102
find / -group 20 -exec chown :102 {} \;
- Buscar todos los ficheros ejecutables con suid y setgid (útil para buscar fallos de seguridad):
find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -ldb {} \;
find / -type f -perm +6000 -ls
- Buscar directorios en los que cualquiera puede escribir:
find / -perm -0002 -type d -print
- Buscar ficheros en los que cualquiera puede escribir:
find / -perm -0002 -type f -print
find / -perm -2 ! -type l -ls
Buscar ficheros sin usuario:
find / -nouser -o -nogroup -print
- Buscar ficheros modificados en los últimos 2 dÃas
find / -mtime 2 -o -ctime 2
- Comparar 2 discos para ver si son iguales:
find / -path /proc -prune -o -path /new-disk -prune -o -xtype f -exec cmp {} /new-disk{} \;
August 22nd, 2008
Categories: NoSabeNoContesta, laconsolamola, sysadmin | Author: moebius | Comments: 1 Comment |
Aupa,
Mientras preparo las piadas/relatos de vacaciones he rescatado algunas piadas de mendiak (por si peta otra vez y se vuelven a perder datos) y las he puesto en el blog d ela CBP. De momento he rescatado las del puente de Mayo:
Puente de Mayo 2008: Norte de Madrid (El Vellon, Pedriza 1 y 2 y Patones)

Agur.
August 22nd, 2008
Categories: NoSabeNoContesta | Author: moebius | Comments: No Comments |
Bon Giorno!
Ya estamos de vuelta de Dolomiti
Y hemos venido a tope, ya os contaré mas, pero de momento os dejo con un nombre: Myriam. (no no he pillado con una Italia, ya me gustarÃa, como estaban algunas :P)
De momento aprovechando el buen estado de forma y mental, nos hemos quitado una espinita:
http://cordadabrazospartidos.es/blog/2008/08/1%C2%BA-espolon-de-atxarte-la-nueva/

Ciao.
August 21st, 2008
Categories: NoSabeNoContesta | Author: moebius | Comments: 2 Comments |
Segunda mudanza (por eso el 2.0) del curro.

Abandonamos la Jakincueva 2.0 para ir a la Jakincueva 3.0 en pleno centro de Bilbo, cerquita de la Plaza Nueva, una zona muy animada. Se me ha juntado todo un poco y el estress previo a irme de vacaciones a sido interesante. Gracias a las compis del curro por ayudar con la mudanza. De momento solo hemos llevado todos los trastos a la nueva ofi, queda apañarla (luz, internet, cables,…) Pero eso será a la vuelta de vacatas, junto con unas fotos de la nueva Jakincueva 
July 31st, 2008
Categories: NoSabeNoContesta | Author: moebius | Comments: No Comments |

O lo que es lo mismo, vacaciones en los dolomitas. En unas horitas (a las 4AM del mañana dÃa 1) salimos hacia alli. 1500km, 14h de coche (ja, ya serán 20h). Algo de estress previo y la furgoneta de ga (gañoneta) a reventar de comida, trastos e ilusiones. Esperemos poder escribir algo desde allÃ.
July 31st, 2008
Categories: NoSabeNoContesta | Author: moebius | Comments: No Comments |
Otro post/notamental. Cuando tenemos en una maquina GNU/Linux varias tarjetas de red (o cambiamos alguna) no siempre tienen el nombre de dispositivo (eth0, eth1,…) que esperamos/queremos (un caso tÃpico es el de la wifi de los portatiles, que en algunos aparece como eth0).
Antiguamente esto se solucionaba editando el fichero /etc/iftab y asociando la MAC de la tarjeta de red con un nombre de dispositivo. Pero ahora hay que hacerlo a traves de udev, editando el fichero
/etc/udev/rules.d/70-persistent-net.rules y en el editamos/añadimos entradas del estilo:
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:1d:XX:XX:XX:XX”, ATTR{type}==”1″, NAME=”eth0″
July 22nd, 2008
Categories: linux, sysadmin | Author: moebius | Comments: No Comments |
July 9th, 2008
Categories: NoSabeNoContesta | Author: moebius | Comments: No Comments |
Para que no se me olvide:
Cambiar el elemento separador de campos
FS=”LOQUESEA”
Concatenar un comando del sistemas para que awk manipule su salida
BEGIN { “comando” | getline; blablabla }
Todo junto en un ejemplo
Como obtener el ultimo directorio de un path completo desde donde estamos trabajando:
dir=`awk ‘BEGIN { FS=”/” ; “pwd” | getline ; print $NF; }’`
Tengo que usar mas awk.
July 2nd, 2008
Categories: laconsolamola | Author: moebius | Comments: 1 Comment |
Llevaba este articulo mucho en la nevera y es hora de soltarlo: Tengo nuevo portátil! La verdad es que mi viejo portatil (powerbook alu 15″ de cuando los macs eran ppc) aun funciona a la perfección, pero el mundo moderno (osea, mi trabajo) me pide más potencia, una arquitectura x86 y más autonomÃa (baterÃa y más cómodo de llevar). Asà que mirando, me gusto el modelo XPS 1330 de Dell. Es una joyita:
- 13″ pulgadas.
- Aluminio y magnesio en la carcasa y chasis
- Pantalla white led, mas fina y menos consumo
- Core 2 Duo. Bienvenida vitrualización!
- 4Gb de ram (está el precio de la RAM por los suelos)
Llevo con el algunos meses (desde semana santa), y creo que es hora de comentar las impresiones y los truquitos que he acumulado en este tiempo.
(more…)
July 2nd, 2008
Categories: Ubuntu, hardware | Author: moebius | Comments: No Comments |