Archivo para 21/12/10

España: No se aprueba la Ley “Sinde” en el Congreso

Ha habido suerte y la ley no se ha aprobado a última hora.

Como bien comenta el pais:

La polémica ley Sinde ha fracasado esta noche en el Congreso por 20 votos a 18. El PSOE se ha quedado solo con la enmienda contemplada en el proyecto de Ley de Economía Sostenible (LES) que prevía el cierre de webs que favorezcan las descargas de archivos protegidos por derechos de autor como películas o música. Después de frenéticas negociaciones a última hora de la tarde con CiU y el PP, la disposición conocida como ley Sinde no ha logrado avanzar, por lo que la Ley de Economía Sostenible pasará al Senado sin esa parte. En la Cámara alta el Grupo Socialista tratará de conseguir los apoyos necesarios el próximo año para que se pueda incluir.

Pero no me conformo. No se puede cantar victoria, y la lucha “seguirá”. El margen es demasiado ajustado para mi gusto: 18 votos a favor, 20 en contra. y el PSOE seguirá intentando conseguir (a cualquier coste) apoyos para que la ley sea aprobada. Me da que ésto sólo es un aplazamiento pero tendremos que seguir haciendonos oir, que la gente sepa, y empiece a “mojarse”.

Esto de todas formas le pasará factura al PSOE. Partido que parece más a favor de eliminar derechos y servir a los intereses de las empresas que a la ciudadania. Su mala fé, y su mediocridad no será olvidada y es casi de “cajón” que le ha costado unos cuantos millones de votos en las urnas.

Pero aqui está el problema. ¿vivimos en una democracia o en una dictadura?. ¿que pesa más, lo que quiere el pueblo o lo que quieren unos pocos?. Nuestros politicos a quienes deben servir: ¿a nosotros o a su propios intereses?.

No me conformo como he dicho y no me vale que una ley no sea aprobada o si. Quiero “integridad” en nuestros “supuestos” representantes, quiero “transparencia”, quiero que trabajen para quien tienen que trabajar (el pueblo) no para sus bolsillos ni para paises extranjeros. De hecho, Si(nde) tuvieran verguenza, más de uno de ellos, deberia presentar su “dimisión”.

Skype Indicator 0.2

Recordais que empece ( a intentar ) a crear mi propio indicador para poder usar Skype. Bien, pues al final he utilizado las fuentes de Andreas Happe que comentaba al final del post y que permite crear un indicador que se integra con el menu de mensajeria del sistema. El problema que tuve es que su código no se me llegaba a ejecutar (me daba error en tiempo de ejecución y no hacia nada), asi que al final he tenido que adaptarlo un poco y al menos ya se ejecuta y aunque no puedo decir que es 100% funcional, si que puedo decir que he podido usarlo, y me ha permitido saber los mensajes que tenia pendientes de leer. Todo esto me ha servido tambien para aprender bastantes cosas del API de Skype: como recuperar el historial, los contactos, los mensajes pendientes, o enviar un mensaje a una persona en particular.

Nota: en los cambios que he hecho al codigo está que siempre muestre “1” como información de mensajes por leer, asociado al usuario que te esta escribiendo por el chat.

Nota 2: Para que funcione teneis que tener previamente abierto Skype.

Aunque puede que aun lo revise y si mis conocimientos me lo permiten lo haga “estable” por completo, dejo el código de todas formas para quien lo quiera usar/estudiar/mejorar:

#!/usr/bin/env python
#
#Copyright 2010 Andreas Happe
#
#Authors:
#    Andreas Happe <andreashappe@snikt.net>
#
#This program is free software: you can redistribute it and/or modify it 
#under the terms of either or both of the following licenses:
#
#1) the GNU Lesser General Public License version 3, as published by the 
#Free Software Foundation; and/or
#2) the GNU Lesser General Public License version 2.1, as published by 
#the Free Software Foundation.
#
#This program is distributed in the hope that it will be useful, but 
#WITHOUT ANY WARRANTY; without even the implied warranties of 
#MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR 
#PURPOSE.  See the applicable version of the GNU Lesser General Public 
#License for more details.
#
#You should have received a copy of both the GNU Lesser General Public 
#License version 3 and version 2.1 along with this program.  If not, see 
#<http://www.gnu.org/licenses/>
#

# Diciembre 2010 - Modificaciones: Piwi (primera revision) 

import indicate
import gobject
import gtk
import Skype4Py
import time

from time import time

def do_nothing(indicator):
    True

# this is the high-level notification functionality
class NotificationServer:
  def __init__(self):
    self.server = indicate.indicate_server_ref_default()
    self.server.set_type("message.im")
#   this is kinda ugly, or?
    self.server.set_desktop_file("/usr/share/applications/skype.desktop")
    pass

  def connect(self, skype):
    self.skype = skype
    self.server.connect("server-display", self.on_click)

   # CAMBIO: me da el error: TypeError: on_click() takes exactly 2 arguments (3 given), asi que inserte 1 tercer parametro en la funcion:
 
  # ESTA FUNCION ES PARA ABRIR LA VENTANA DE SKYPE
  def on_click(self, server, ignore):
    #self.skype.Client.Focus()
    print "==========================="
    # CAMBIO: me da error al intentar mostrar la ventana a Skype, insertando lo siguiente se soluciono:
    skype.skype.Client.Focus()
    #self.self.skype.Client.Focus()
    print "==========================="

  def activate_timeout_check(self):
    # CAMBIO de 5 lo cambie a 15, un poco mas de tiempo entre chequeos 
    gobject.timeout_add_seconds(15, self.skype.check_timeout, self.server)

  # ESTA FUNCION ES PARA ABRIR UN CHAT CON ALGUIEN
  def show_conversation(self, indicator, timestamp):
    display_name = indicator.get_property("name")
    print "CHAT_NAME es = "+display_name
    self.skype.show_chat_windows(display_name);

  # this is needed, cause otherwise the skype menu is only showed
  # when there are new unread messages.. another workaround
  def workaround_show_skype():
    indicator = indicate.Indicator()
    indicator.set_property("name", "workaround..")
    indicator.connect("user-display", self.show_conversation)
    indicator.show()
    indicator.hide()

  def show_indicator(self, conversation):
       
    print "adding " + conversation.display_name
    
    try:
      # Ubuntu 9.10 and above
      indicator = indicate.Indicator()
    except:
      # Ubuntu 9.04
      indicator = indicate.IndicatorMessage()

	# CAMBIO: Propiedades de los INDICADORES aqui hice bastantes cambios, deje solo la propiedad
    # Contador de conversaciones como String que muestra siempre el valor 1	
	  
    #indicator.set_property("name", conversation.display_name)
    indicator.set_property("name", conversation.display_name)
    #indicator.set_property("name", conversation.skype_id)
    indicator.set_property("subtype", "instant")
    indicator.set_property('draw-attention', 'true');
    #indicator.set_property('time', str(conversation.timestamps[0]))
    indicator.set_property('count','1');
    indicator.connect("user-display", self.show_conversation)
    indicator.show()

    # TODO: why?
    #print "Esperando 15..."
    gobject.timeout_add_seconds(15, do_nothing, indicator)


class UnreadConversation:
  def __init__(self, display_name, timestamp, skype_id):
    self.display_name = display_name
    self.skype_id = skype_id
    self.count = 0
    self.timestamps = [timestamp]

  def imprime() :
     print "display_name:"+display_name

  def add_timestamp(self, timestamp):
    if not timestamp in self.timestamps:
      self.timestamps.add(timestamp)
      self.count += 1


class SkypeBehaviour:
  # initialize skype
  def FOCUS(self):
     
     skype.skype.Client.Focus()

  def __init__(self):
    self.skype = Skype4Py.Skype();
    self.skype.OnAttachmentStatus = self.OnAttach;
    self.skype.OnMessageStatus = self.OnMessageStatus; 
    self.skype.Attach();
    self.name_mappings = {}
    self.unread_conversations = {}
    self.cb_show_conversation = None
    self.cb_show_indicator = None

  def SetShowConversationCallback(self, func):
    self.cb_show_conversation = func

  def SetShowIndicatorCallback(self, func):
    self.cb_show_indicator = func

  def OnAttach(self, status):
    if status == Skype4Py.apiAttachAvailable:
      self.skype.Attach();
    if status == Skype4Py.apiAttachSuccess:
      print 'connected to skype!'

  def OnMessageStatus(self, mesg, Status):
    print 'message status\n'
    print "========================"
    print "LLEGA UN MENSAJE========"
    print "========================"
    if Status == 'RECEIVED':
      print(mesg.FromDisplayName + "sent a message")
      display_name=mesg.FromDisplayName
      #print "PENDIENTE CHAT NUEVO: "+display_name
      if display_name in self.unread_conversations:
        #print "Ya esta metido"
        conversation = UnreadConversation(display_name, mesg.Timestamp, mesg.Name)
        self.cb_show_indicator(conversation)
      else :
        #print "Anadiendo..."
        conversation = UnreadConversation(display_name, mesg.Timestamp, mesg.Name)
        self.unread_conversations[display_name] = conversation
        self.cb_show_indicator(conversation)

  def remove_conversation(self, display_name):
    skype_name = self.name_mappings[display_name]
    del self.unread_conversations[display_name]
    return skype_name

  # update unread message collection
  # TODO: also remove messages that have been read through skype, otherwise
  #       they would stay until somebody clicks them in the indicator-applet
  def check_timeout(self, server):
    #print "timeout.\n"

    #----------------------------
	# CAMBIO IMPORTANTE: Aqui cambie la lista de mensajes que se consulta por la de chats pendientes (MissedChats)
    print "******** CONSULTANDO MENSAJES PENDIENTES **************** "
   
    for mesg in self.skype.MissedChats:
      display_name= mesg.FriendlyName
      # Recuperar el ultimo mensaje del chat y quien lo envio
      for m in mesg.Messages[:1]:
        print "MENSAJE:"+m.Body
        print "LO ENVIO:"+m.Sender.Handle
      #display_name= mesg.Name
      print "PENDIENTE CHAT: "+display_name
      if display_name in self.unread_conversations:
        #print "Ya esta metido"
        conversation = UnreadConversation(display_name, mesg.Timestamp, mesg.Name)
        self.cb_show_indicator(conversation)
      else :
        #print "Anadiendo..."
        conversation = UnreadConversation(display_name, mesg.Timestamp, mesg.Name)
        self.unread_conversations[display_name] = conversation
        self.cb_show_indicator(conversation)
    return True

  # ESTA FUNCION SE USA PARA ABRIR UNA CONVERSACION EN CONCRETO	
  def show_chat_windows(self, skype_name):
    #self.skype.Client.OpenMessageDialog(self.name_mappings[skype_name]);
    #self.skype.Client.OpenMessageDialog(skype_name);
	# No consegui que me funcionara, asi que al final abro la ventana principal de SKYPE
    conversation = self.unread_conversations[skype_name]
    print "Skype_NAME es "+skype_name
    print "conversation es "+conversation.skype_id
    self.skype.Client.Focus()


if __name__ == "__main__":

  skype = SkypeBehaviour();
  server = NotificationServer()

  skype.SetShowConversationCallback(server.show_conversation)
  skype.SetShowIndicatorCallback(server.show_indicator)
  server.connect(skype)

  #workaround_show_skype()

  # why is this needed?
  server.activate_timeout_check()

  # check for newly unread messages..
  skype.check_timeout(server)

  gtk.main()



Interesante tambien la opción que comenta Andrew para tener varias pestañanas de skype abiertas en Linux (aunque el programa tambien tiene sus “problemillas” y es aconsejable no mover la ventana de posición).

Ubuntu-savos Wallpaper

Descarga | Gnome-Look

Tema “Humanity” para Jdownloader…Genial!!!

A muchos de nosotros nos gusta tener todas las aplicaciones integradas con el mismo “look” o similar. Un pequeño inconveniente para JDownloader (aplicación Java) que va a resolverse con este tema.

– Bajate el tema y descomprimelo en la carpeta donde tengas instalado Jdownloader.

– Despues abre JDownloader y ve a:

_Settings tab_
-> _Basics
-> _User Interface
-> En Look_ section, elige _humanity_ under _Theme_.

Reinicia Jdownloader y listo.

Por cierto: Sinde dimite!!!

Descarga | Gnome-Look





¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
diciembre 2010
L M X J V S D
« Nov   Ene »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Blog Stats

  • 30.929.283 hits