Archive for the 'GNU/Linux' Category

Ennesimo motivo per preferire GNU

Monday, May 26th, 2008

Ormai è parecchio tempo che uso prevalentemente Debian (installata ovunque), tuttavia mi capita ancora ogni tanto di usare Windows per lavoro o per l’università… beh in casi come questi non c’è da meravigliarsi se succede qualche cosa di spiacevole! Oggi volevo scansionare una banconota da 500 euro per la realizzazione di un piccolo manifesto e dovendo lavorare molto con la grafica ho preferito il mio caro Paint Shop Pro su Windows… allora ho avviato Epson Twain e ho fatto partire la scansione della banconota… ma!!!???

banknote scanning

Il programma non mi ha lasciato proseguire, impedendomi la scansione… ecco il messaggio nel dettaglio:

banknote warning

Al momento non volevo crederci… capisco che qualche malintenzionato potrebbe voler stampare banconote false, ma questa mi sembra un’esagerazione idiota… se stampo una banconota scansionata a 200 dpi (infatti nemmeno a quella risoluzione si può procedere alla scansione) viene fuori una schifezza e non ci casca nemmeno un matusa cieco over 100 :eek:

Naturalmente non ho perso tempo a fare del reverse engineering perché non ne valeva proprio la pena: ho riavviato su Linux e con XSane ho potuto scansionare la banconota senza problemi… ah quanto mi piace l’open source! Evviva GNU :-)

GNU

Open stickers a gogò

Thursday, April 10th, 2008

In un momento di noia totale mi sono reso conto che il mio laptop tutto grigio era proprio triste, così dopo aver scoperto il sito Free Software Sticker Book non ho esitato ad agghindarlo per le feste :mrgreen:
Bellissimo, nevvero?

Non avendo carta fotografica adesiva a disposizione ho stampato su carta comune, ricoperto con scotch il fronte e con scotch biadesivo il retro, il risultato sono dei bellissimi adesivi che nulla hanno da invidiare a degli adesivi veri. Unica seccatura: bisogna avere molta pazienza per ritagliare i bordi con estrema precisione.

PS: ok, Barney Gumble non c’entrava niente, ma era troppo divertente e l’ho stampato lo stesso… lo piazzerò sul retro!

Risponditore automatico per Pidgin in Python

Sunday, April 6th, 2008

Pidgin è veramente un programma dalle mille risorse: giorno dopo giorno trovo sempre il modo di ampliarne le funzionalità, di personalizzarlo e di aggiungere qualcosa di utile o divertente. Le features di base sono già notevoli, tanto per citare le 3 funzionalità più particolari a cui non potrei più rinunciare:

  • possibilità di vedere se un contatto vi ha rimosso dalla sua lista, molto comodo per sapere chi non vi vuole più parlare :-(
  • possibilità di disabilitare la notifica ai contatti mentre state digitando loro un messaggio, così non lasciate trasparire indecisioni o lentezza…
  • possibilità di loggare tutti i cambiamenti di stato dei contatti, ideale per vedere ad esempio chi si è connesso un attimo mentre non eravate al pc

Oltre a ciò vi sono una moltitudine di plugins, alcuni già installati assieme al pacchetto di base e molti altri scaricabili dalla rete. Anche tra i plugins ve ne sono alcuni di cui veramente non potrei più fare a meno, ovvero:

  • Psychic Mode, per anticipare i vostri amici e sapere quando stanno per scrivervi… un vero must per gli psicotici1 come me :shock:
  • gSMS, che vi notifica tramite sms se qualche contatto vi ha scritto mentre non eravate al pc, sfruttando il servizio sms di Google Calendar
  • Text replacement, ottimo per correggere errori ortografici oppure per trasformare letteralmente il vostro gergo in chat (effetto assicurato!)

Altra comodità sono i Buddy Pounces che vi permettono di pianificare tutta una serie di azioni in seguito ad eventi relativi ai vostri contatti. Detto in questi termini è molto riduttivo, perché in effetti le possibilità offerte sono veramente molto numerose, anche se non del tutto complete. Tuttavia se credete che le potenzialità siano terminate vi sbagliate, infatti è possibile interagire con Pidgin anche tramite D-Bus2, un sistema IPC altamente flessibile con il quale le possibilità di estensioni diventano praticamente illimitate!

Pidgin logoMolto probabilmente sulla vostra linux-box avete già installato Python, mentre invece potreste non avere installata l’interfaccia per l’uso di D-Bus da Python, in tal caso provvedete ad installare il pacchetto python-dbus prima di cominciare a scrivere i vostri scripts. Ora che tutto il necessario è installato non resta che lavorare di fantasia e utilizzare un qualsiasi editor di testo. Il primo script che ho sentito l’esigenza di scrivere è stato un risponditore automatico personalizzabile per singoli contatti e che potesse inviare come risposta l’output di un comando arbitrario, in modo da renderlo molto flessibile. Per aggiungere un pizzico di divertimento vi propongo l’integrazione con il famoso generatore di frasi casuali Polygen, che formalmente è un interprete di un metalinguaggio che permette di definire linguaggi. Potete installarlo comodamente dai repositories, i pacchetti si chiamano polygen e polygen-data. Le grammatiche messe a disposizione sono molto numerose, le potete trovare catalogate all’interno di /usr/share/polygen/ e per poterle usare basta passarle come parametro all’applicativo polygen, ad esempio se volete una frase sul mondo della programmazione ad oggetti digitate:

polygen /usr/share/polygen/ita/oop.grm

Ed otterrete un’esilarante frase tipo questa: “Apriamo la struttura della classe Rockerduck. State attenti. Se osservate bene, il campo DoWriteElement è private. In effetti potremmo chiederci la ragione di quest’apparente complicazione: eh, non è facile: del resto lo sviluppatore non sono io, non so cos’aveva in mente chi l’ha fatto. Come faremo a salvare su XML l’attributo? Niente di più facile, basta spegnere e riaccendere. Fine. Ora fate attenzione perché è importante: se siete ancora svegli, la proprietà DequeueField è in override. C’è una ragione particolare? Purtroppo non ho capito perché sia stato implementato così in questa versione.”

Per rendere più umano il risponditore potete aggiungere una breve attesa di durata variabile prima dell’esecuzione di polygen, ad esempio con un banale comando:

sleep $(($RANDOM/5000)

Il fulcro dello script è l’istruzione import che ci permette di usare la libreria “os” per il lancio di comandi e l’utilizzo dei relativi output all’interno del codice, oltre naturalmente alla librerie fondamentali “dbus” e correlate. Per il resto il codice è piuttosto intuitivo, quindi non ha senso commentarlo e non lo inserisco nemmeno nel post per ovvi motivi di impaginazione. Il risultato finale è disponibile qui Download, scaricatelo e divertitevi a personalizzarlo a seconda delle vostre esigenze! Circa le grammatiche di polygen, le mie preferite per questo scopo sono “telefonia” e “genio”. Con la prima otterrete delle fenomenali frasi del tipo “Benvenuto al customer care RuboTel. Per tirare lo sciacquone digita 4. Sapere dove è Bin Laden e se il suo telefono è raggiungibile digita 7. Per insultare un operatore digita 9. Grazie”. Vi meraviglierete nel vedere come alcuni vostri contatti proveranno veramente a digitare una delle cifre proposte :-D La grammatica “genio” invece genera una domanda ed una relativa risposta, quindi nello script consiglio di limitarsi a scrivere la domanda con il comando:

polygen /usr/share/polygen/ita/genio.grm | head -1

In questo modo gli amici che cercheranno di contattarvi si vedranno bombardare di domande assurde del tipo “Come faccio a inserire Redhat LinuxPPC?” oppure “Non riesco a overclockare la URL a cristalli liquidi da Photoshop 98, come si fa?”. Il risultato è assicurato, ma attenzione a non abusarne :mrgreen:

Ultima nota, il controllo sull’alias all’interno della routine ReceivedImMsg può naturalmente essere utilizzato per personalizzare le risposte ai vari contatti così come anche per filtrare alcuni nick come nell’esempio dove la risposta automatica non viene inviata ai messaggi automatici di IRC da parte del server a cui ci si connette e da parte del NickServ prima dell’identificazione del proprio username.

Non vi resta che rendere eseguibile lo script tramite chmod, avviarlo, lasciarlo attivo in background ed attendere che qualcuno vi scriva un messaggio. Buon divertimento!

1. Attenzione, se non lo siete già… allora l’uso di questo plugin vi farà diventare psicotici sul serio! Se non altro agli occhi degli altri…
2. Se siete su Debian Etch come me, ricordatevi di compilare Pidgin con il supporto a D-Bus: basta aggiungere lo switch –enable-dbus quando eseguite ./configure

MoioSMS: open-source e multi-piattaforma!

Sunday, March 30th, 2008

Sarà che sono fissato con gli sms, ma mi entusiasmo facilmente quando trovo qualche nuovo programma per l’invio di sms da cellulare o da pc che permette di risparmiare sfruttando i servizi gratuiti su web già esistenti. MoioSMS è un programmino multi-piattaforma scritto in Python e completamente open-source che si appoggia ai pochi servizi superstiti di invio sms gratuiti da web e permette di bypassare le scomodissime e lentissime interfacce web associate a tali servizi. Ha un’interfaccia grafica estremamente intuitiva e a mio avviso progettata molto bene sia per la gestione della rubrica che per la gestione delle credenziali, richieste solo al primo invio e poi memorizzabili in maniera criptata e protetta tramite una master password. Insomma semplice ed efficace, solo lo stretto indispensabile e nessun fronzolo! Per i debianizzati come me il programma è disponibile pacchettizzato, la versione .deb per Ubuntu è perfettamente compatibile con Debian. Tra le dipendenze ci sono anche i pacchetti OCR-related gocr e ocrad che servono per bypassare anche i famigerati CAPTCHA ormai onnipresenti! Purtroppo per i CAPTCHA del servizio di alice appare una finestra che richiede di procedere manualmente all’interpretazione, a conti fatti comunque si guadagna un sacco di tempo rispetto all’invio dell’sms tramite il sito di alice, che ritengo molto pesante e mal realizzato! In definitiva questo piccolo programmino mi sembra molto comodo e utile, quindi meglio tenere sempre sotto controllo eventuali aggiornamenti. Qui sotto uno screenshot del programma e uno dell’sms arrivato correttamente sul mio cellulare.

messaggio inviato

messaggio ricevuto