Atentiendo señales dbus en python


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 :P Para otro día dejo la parte final, crear un “servidor” que se conecte a dbus y atienda peticiones a través de el.



Chuletilla rápida de find


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{} \;


Rescatando piadas


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.



Vía “La Nueva”, con las pilas cargadas


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.



Mudanza 2.0


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 :)



ferie nelle dolomiti


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í.



Como liga un geek


http://www.geekets.com/2008/07/09/un-geek-ligando/



Como descubrir que paquetes deb ocupan mas en tu HD


Vía linux.com(en un árticulo sobre creación/modificación de livecd-s) encuentro esta útil orden para saber que paquetes deb desinstalar cuando estas en plena “operación bikini” en tu compu:

dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less



Pizarra electrónica con el mando de la Wii


Mi curro es la leche. La semana pasada me “endiñaron” un mando de la wii sin yo pedirlo, y claro, geek que es uno….

Ya posteare los avances que vaya haciendo.



No se que tienen los mallos de Riglos que huelen especial


Será la mezcla del olor de las chimeneas del pueblo mezclado con el de tu sudor al tener la adrenalina disparada. Pero para mi Riglos tiene un olor especial. Esas patatas. Esas panzas. Esos alejes. Escalar mirando hacia arriba, sin mirar abajo, sin pesar lo que hay debajo. Esas vistas. Esas reuniones,…

La verdad es que Riglos te lo puede dar todo o dejarte hundido si tienes un mal día. Afortunadamente este fin de semana nos lo ha dado todo.

http://cordadabrazospartidos.es/blog/2008/06/espolon-adamelo-esta-vez-si/

Aprovecho para anunciar el blog que comparto con el resto de cordada :)

Next Page »

moeblog is proudly powered by WordPress and themed by Mukkamu