Archive for the ‘Python’ Category

Impostare il refresh ration del monitor su Gnome Shell

26 ottobre 2013

Mi ci stò impazzendo da giorni ma l’ho appena scoperto come fare, in particolare volevo impostare la massima frequenza del monitor per evitare un fastidioso sfarfallio dei caratteri.

Stante il fatto che vorrei evitare come la morte la modifica del file /etc/X11/xorg.conf, che fa molto anni ’80 e un po’ spinto anche dalla comodità di altri sistemi operativi, mi sono buttato alla ricerca di qualche soluzione alternativa, la prima che ho trovato è stata quella di dare il comando

xrandr --rate valore

soddisfatto, ma fino ad un certo punto. (Non posso certo mettermi ad aprire un terminale e dare questo comando ogni volta che accendo o riavvio il computer, e non ho voglia neanche di capire come si faccia uno script che me lo esegua automaticamente ad ogni avvio di Gnome)

Cosi ho continuato la mia ricerca, venendo a conoscenza di un paio di tool grafici per randr (Resize and Rotate), venendo a conoscenza di progetti come urandr (del nostro Alberto Milone) e arandr.

taglio secco, il primo installato da A.U.R. non parte proprio (command not found) e neanche a farlo partire localmente con python.

Il secondo invece parte, permette di cambiare risoluzione, rotazione, ma non fa quello che voglio, ovvero cambiare frequenza!

Confesso che mi son anche messo anche a leggere un po’ i sorgenti, sempre in python per cercare di capire come funzionava e se era possibile aggiungere questa funzionalità ma ho presto lasciato perdere quando ho capito che il programma non utilizzava una libreria apposita ma si limitava a richiamare il comando xrandr, copiarne il contenuto e propolo all’utente, permettendo modifiche sempre richiamando il comando, insomma una sorta di wrapper al comando xrandr.

Insomma, alla fine la soluzione definitiva si nascondeva proprio li, nel file

~/.config/monitors.xml

nella sezione “rate”, e questo è tutto, per ora.

edit: sembra che neanche questo medoto sia funzionante, ho trovato per ora un’altra soluzione.

Addio Windows Live Messenger?

6 novembre 2012

Da stamattina stà cominciando a girare la notizia dell’abbandono da parte di Microsoft di questo client di messaggistica a favore di skype, proprietà sempre di Microsoft, offrendo spero, la possibilità di loggarsi col proprio account msn su skype.

Da un punto di vista affettivo lo vedo come una grande perdita, anche se l’ho odiato agli inizi della mia esperienza su linux a causa della grande assenza di un client definitivo, amsn e gaim se la giocavano ai tempi, poi subentrò mercury, kmess, kopete e un giorno, da un blog di un tizio chiamato marianoguerra cominciò a spuntare un client in python e gtk chiamato emesene, fin dal primo post capii che sarebbe stato il progetto definitivo e cominciai a seguirlo.

Sono sempre stato vicino a questi progetti, in particolare amsn, partecipando attivamente al forum, segnalando bug e richiedendo funzionalità ma dal punto di vista del codice non ho mai potuto e voluto fare niente, visto che era scritto in un linguaggio chiamato TCL ed utilizzava le librerie TK.

Poi ci furono altri avvenimenti, gaim cambiò nome in pidgin per via di alcuni problemi di brevetti sui nomi e non so perché ma dopo il cambio di nome ha subito un’accelerata nello sviluppo e nell’implementazione di funzioni.

(Da parte mia c’è stato anche un cambio parallelo di protocollo, passando da msn a jabber, con l’OTTIMO client gajim)

Un giorno sbucò emesene, che come ho detto usava python + gtk, ho cominciato subito a seguirlo e a contribuire con le traduzioni, posso affermare che è stato questo progetto a spingermi ad imparare il python, di cui avevo sempre sentito parlare bene (e ne sento in continuazione ancora adesso) e cosi sono arrivato (e per me è molto) persino a scrivere un plugin, molto semplice, o una mia versione di cui avevo modificato l’interfaccia.

Altri eventi degni di nota furono il mai raggiunto accordo tra amsn e emesene di realizzare un unico progetto, ovvero amsn2 scritto in python e multi-librerie grafiche, ovvero qt, gtk, tk, efl, e ncurses (che inutile spreco di risorse). Il progetto è stato creato ma è stato sviluppato solo dai programmatori di amsn, e tra l’altro mai rilasciato (ancora oggi è un progetto morto, malgrado le smentite degli sviluppatori).

Mentre emesene2 invece è stato rilasciato alla grande, molto più snello e ben scritto (stando agli esperti) della versione precedente, certo, qualcosa l’ha perso, come il supporto ai tanti plugin o alcune funzioni, ma ne è valsa la pena.

Un’altra particolarità di emesene2, che però non ho apprezzato molto, è il passaggio ai log memorizzati in un database, che per leggerli bisognava loggarsi, è su questo punto che ho realizzato alcuni esperimenti, con in mente un solo obiettivo, interoperabilità.

E così per iniziare ho scritto uno script in python per unire due diversi file di log della stessa persona (generati dal client Microsoft) in un solo file, inoltre era mia intenzione modificare emesene affinchè utilizzasse lo stesso formato del client Microsoft per la scrittura dei log, ovvero il formato standard XML, visualizzabile da client o da un qualsiasi browser.

Inoltre mi sono interessato anche a questo progetto, emesene-logviewer, per la visualizzazione dei log senza effettuare il login, in modo da integrare i miei lavori in esso.

(Ah grazie ad emesene ho anche scoperto l’utilissimo google groups, utilizzato in questo caso come forum o mailing list.)

Sembra che però tutte queste “avventure” stiano per giungere alla fine, dal momento che, a partire da adesso, ogni ulteriore sforzo potrebbe non avere un futuro certo se non essere del tutto vano.

Personalmente credo che lascerò perdere tutto, e comincerò a pensare ad un modo per salvare emesene, ad esempio quest’ultimo supporta tranquillamente gtalk, facebook e jabber (in realtà i primi due si appoggiano alla rete jabber)

La lezione da tutto questo è la seguente, ancora una volta si vede come il software proprietario è dannoso, perché spenti i server Microsoft la rete msn, che è centralizzata, muore. Se invece si fosse usata la rete open jabber, lo spegnimento dei server non avrebbe causato il benché minimo problema, dal momento che non esiste un server unico. Per farvi un esempio, SE facebook attivasse una particolare funzione sui server (transport? non ne sono sicuro) e gmail pure, un utente gmail potrebbe aggiungere tranquillamente uno facebook tra i suoi contatti di chat, senza essere registrato a facebook, e ciò secondo me è favoloso.

Vi lascio con qusta citazione, direttamente da wikipedia:

The architecture of the XMPP network is similar to email; anyone can run their own XMPP server and there is no central master server.

[Python] Classifiche europei 2012

8 giugno 2012

Edit: 15/06: il testo barrato indicano modifiche effettuate.
In questi giorni ho buttato giù 2 righe di codice per creare un programmino che visualizzi le classifiche delle partite degli europei 2012, mi piacerebbe che salvasse i risultati in modo da poterli visualizzare anche offline, e che se ne stia bello nella tray e mostri notifiche quando inizia un match. Ovviamente il tempo stringe non so se riuscirò ad implementare queste feature..

Chi è interessato trova il codice qui (Windows e Linux):

https://github.com/Fabioamd87/europei.git

[Python] Rimuovere caratteri speciali da stringhe (\n, \b), differenza script/interprete

6 giugno 2012

Ho appena scoperto, dopo aver passato piu di mezz’ora a smadonnarci che rimuovere un ‘\n’ da una stringa nell’interprete python è diverso dal rimuoverlo in uno script.

nel primo caso bisogna dare ad esempio:

‘stringa con \n’.strip(‘\n”)

se invece il codice lo state dando all’interno di un file di testo bisogna prestare attenzione perché la stringa \n viene interpretata come un’andata a capo e quindi va indicata con il doppio \\

‘stringa con \n’.strip(‘\\n’)