Songbird

febbraio 1, 2009

songbird è un eccellente programma per gestire la propria collezione di file musicali. Carica automaticamente informazioni sugli album, può gestire gli ipod, si interfaccia con lastfm e ha una lista di radio online invidiabile.
Un ottimo plugin per questo programma è lyricmaster, scaricabile sullo stesso sito e installabile molto facilmente. Trova praticamente ogni tipo di testo possibile, eccezionale.

Unico neo di questo programma è sicuramente la pesantezza, quindi non è indicato su pc con poca ram

link al sito ufficiale link

songbird


Notifica nuove email (gmail) in conky

febbraio 1, 2009

Proprio così, se avete una casella di posta gmail potete semplicemente sapere quando avete  nuova posta guardando conky, l’applicazione che abbiamo visto qualche post fa.

Per fare questo dobbiamo solo creare un documento di nome gmail.pl in una cartella scripts nella nostra home. Se non abbiamo una cartella scripts possiamo crearla dando da terminale mkdir ~/scripts e poi creiamo il file con touch ~/scripts/gmail.pl

all’interno di queto file incolliamo lo script sottostante (preso dalla rete):

#!/usr/bin/perl

use Switch;
use Text::Wrap;

my $what=$ARGV[0];

$user=”username”; #username for gmail account
$pass=”password”; #password for gmail account
$file=”/tmp/gmail.html”; #temporary file to store gmail

#wrap format for subject
$Text::Wrap::columns=65; #Number of columns to wrap subject at
$initial_tab=”"; #Tab for first line of subject
$subsequent_tab=”\t”; #tab for wrapped lines
$quote=”\”"; #put quotes around subject

#limit the number of emails to be displayed
$emails=4; #if -1 display all emails

&passwd; #give password the proper url character encoding

switch($what){ #determine what the user wants
case “n” {&gmail; print “$new\n”;} #print number of new emails
case “s” { #print $from and $subj for new email
&gmail;
if ($new>0){
my $size=@from;
if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
for(my $i=0; $i<$size; ++$i){
print “From: $from[$i]\n”; #print from line
$text=$quote.$subj[$i].$quote.”\n”;
print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
}
$size=@from;
if ($emails!=-1 && $size >$emails){print “$emails out of $size new emails displayed\n”;}
}
}
case “e” { #print number of new emails, $from, and $subj
&gmail;
if($new==0){print “You have no new emails.\n”;}
else{
print “You have $new new email(s).\n”;
my $size=@from;
if ($emails!=-1 && $size>$emails){$size=$emails;} #limit number of emails displayed
for(my $i=0; $i<$size; ++$i){
print “From: $from[$i]\n”; #print from line
$text=$quote.$subj[$i].$quote;
print wrap($initial_tab, $subsequent_tab, $text); #print subject with word wrap
}
$size=@from;
if ($emails!=-1 && $size >$emails){print “$emails out of $size new emails displayed\n”;}
}
}
else {
print “Usage Error: gmail.pl <option>\n”;
print “\tn displays number of new emails\n”;
print “\ts displays from line and subject line for each new email.\n”;
print “\te displays the number of new emails and from line plus \n”;
print “\t\tsubject line for each new email.\n”;
} #didn’t give proper option
}

sub gmail{
if(!(-e $file)){ #create file if it does not exists
`touch $file`;
}

#get new emails
`wget -O – https://$user:$pass\@mail.google.com/mail/feed/atom –no-check-certificate> $file`;

open(IN, $file); #open $file

my $i=0; #initialize count
$new=0; #initialize new emails to 0

my $flag=0;

while(<IN>){ #cycle through $file
if(/<entry>/){$flag=1;}
elsif(/<fullcount>(\d+)<\/fullcount>/){$new=$1;} #grab number of new emails
elsif($flag==1){
if(/<title>.+<\/title>/){push(@subj, &msg);} #grab new email titles
elsif(/<name>(.+)<\/name>/){push(@from, $1); $flag=0;} #grab new email from lines
}
}

close(IN); #close $file
}

sub passwd{ #change to url escape codes in password
#URL ESCAPE CODES
$_=$pass;
s/\%/\%25/g;
s/\#/\%23/g;
s/\$/\%24/g;
s/\&/\%26/g;
s/\//\%2F/g;
s/\:/\%3A/g;
s/\;/\%3B/g;
s/\</\%3C/g;
s/\=/\%3D/g;
s/\>/\%3E/g;
s/\?/\%3F/g;
s/\@/\%40/g;
s/\[/\%5B/g;
s/\\/\%5C/g;
s/\]/\%5D/g;
s/\^/\%5E/g;
s/\`/\%60/g;
s/\{/\%7B/g;
s/\|/\%7C/g;
s/\}/\%7D/g;
s/\~/\%7E/g;
$pass=$_;
}

sub msg{
#THE HTML CODED CHARACTER SET [ISO-8859-1]
chomp; s/<title>(.+)<\/title>/$1/; #get just the subject
#now replace any special characters
s/\&\#33\;/!/g;        #Exclamation mark
s/\&\#34\;/”/g; s/\&quot\;/”/g;      #Quotation mark
s/\&\#35\;/#/g;        #Number sign
s/\&\#36\;/\$/g;        #Dollar sign
s/\&\#37\;/%/g;        #Percent sign
s/\&\#38\;/&/g; s/\&amp\;/&/g;        #Ampersand
s/\&\#39\;/’/g;        #Apostrophe
s/\&\#40\;/(/g;        #Left parenthesis
s/\&\#41\;/)/g;        #Right parenthesis
s/\&\#42\;/*/g;        #Asterisk
s/\&\#43\;/+/g;        #Plus sign
s/\&\#44\;/,/g;        #Comma
s/\&\#45\;/-/g;        #Hyphen
s/\&\#46\;/./g;        #Period (fullstop)
s/\&\#47\;/\//g;        #Solidus (slash)
s/\&\#58\;/:/g;        #Colon
s/\&\#59\;/\;/g;        #Semi-colon
s/\&\#60\;/</g; s/\&lt\;/</g;        #Less than
s/\&\#61\;/=/g;        #Equals sign
s/\&\#62\;/>/g; s/\&gt\;/>/g;        #Greater than
s/\&\#63\;/\?/g;        #Question mark
s/\&\#64\;/\@/g;        #Commercial at
s/\&\#91\;/\[/g;        #Left square bracket
s/\&\#92\;/\\/g;        #Reverse solidus (backslash)
s/\&\#93\;/\]/g;        #Right square bracket
s/\&\#94\;/\^/g;        #Caret
s/\&\#95\;/_/g;        #Horizontal bar (underscore)
s/\&\#96\;/\`/g;        #Acute accent
s/\&\#123\;/\{/g;        #Left curly brace
s/\&\#124\;/|/g;        #Vertical bar
s/\&\#125\;/\}/g;        #Right curly brace
s/\&\#126\;/~/g;        #Tilde
s/\&\#161\;/¡/g;        #Inverted exclamation
s/\&\#162\;/¢/g;        #Cent sign
s/\&\#163\;/£/g;        #Pound sterling
s/\&\#164\;/¤/g;        #General currency sign
s/\&\#165\;/¥/g;        #Yen sign
s/\&\#166\;/¦/g;        #Broken vertical bar
s/\&\#167\;/§/g;        #Section sign
s/\&\#168\;/¨/g;        #Umlaut (dieresis)
s/\&\#169\;/©/g; s/\&copy\;/©/g;        #Copyright
s/\&\#170\;/ª/g;        #Feminine ordinal
s/\&\#171\;/«/g;        #Left angle quote, guillemotleft
s/\&\#172\;/¬/g;        #Not sign
s/\&\#174\;/®/g;        #Registered trademark
s/\&\#175\;/¯/g;        #Macron accent
s/\&\#176\;/°/g;        #Degree sign
s/\&\#177\;/±/g;        #Plus or minus
s/\&\#178\;/²/g;        #Superscript two
s/\&\#179\;/³/g;        #Superscript three
s/\&\#180\;/´/g;        #Acute accent
s/\&\#181\;/µ/g;        #Micro sign
s/\&\#182\;/¶/g;        #Paragraph sign
s/\&\#183\;/·/g;        #Middle dot
s/\&\#184\;/¸/g;        #Cedilla
s/\&\#185\;/¹/g;        #Superscript one
s/\&\#186\;/º/g;        #Masculine ordinal
s/\&\#187\;/»/g;        #Right angle quote, guillemotright
s/\&\#188\;/¼/g; s/\&frac14\;/¼/g;       # Fraction one-fourth
s/\&\#189\;/½/g; s/\&frac12\;/½/g;       # Fraction one-half
s/\&\#190\;/¾/g; s/\&frac34\;/¾/g;       # Fraction three-fourths
s/\&\#191\;/¿/g;        #Inverted question mark
s/\&\#192\;/À/g;        #Capital A, grave accent
s/\&\#193\;/Á/g;        #Capital A, acute accent
s/\&\#194\;/Â/g;        #Capital A, circumflex accent
s/\&\#195\;/Ã/g;        #Capital A, tilde
s/\&\#196\;/Ä/g;        #Capital A, dieresis or umlaut mark
s/\&\#197\;/Å/g;        #Capital A, ring
s/\&\#198\;/Æ/g;        #Capital AE dipthong (ligature)
s/\&\#199\;/Ç/g;        #Capital C, cedilla
s/\&\#200\;/È/g;        #Capital E, grave accent
s/\&\#201\;/É/g;        #Capital E, acute accent
s/\&\#202\;/Ê/g;        #Capital E, circumflex accent
s/\&\#203\;/Ë/g;        #Capital E, dieresis or umlaut mark
s/\&\#204\;/Ì/g;        #Capital I, grave accent
s/\&\#205\;/Í/g;        #Capital I, acute accent
s/\&\#206\;/Î/g;        #Capital I, circumflex accent
s/\&\#207\;/Ï/g;        #Capital I, dieresis or umlaut mark
s/\&\#208\;/Ð/g;        #Capital Eth, Icelandic
s/\&\#209\;/Ñ/g;        #Capital N, tilde
s/\&\#210\;/Ò/g;        #Capital O, grave accent
s/\&\#211\;/Ó/g;        #Capital O, acute accent
s/\&\#212\;/Ô/g;        #Capital O, circumflex accent
s/\&\#213\;/Õ/g;        #Capital O, tilde
s/\&\#214\;/Ö/g;        #Capital O, dieresis or umlaut mark
s/\&\#215\;/×/g;        #Multiply sign
s/\&\#216\;/Ø/g;        #Capital O, slash
s/\&\#217\;/Ù/g;        #Capital U, grave accent
s/\&\#218\;/Ú/g;        #Capital U, acute accent
s/\&\#219\;/Û/g;        #Capital U, circumflex accent
s/\&\#220\;/Ü/g;        #Capital U, dieresis or umlaut mark
s/\&\#221\;/Ý/g;        #Capital Y, acute accent
s/\&\#222\;/Þ/g;        #Capital THORN, Icelandic
s/\&\#223\;/ß/g;        #Small sharp s, German (sz ligature)
s/\&\#224\;/à/g;        #Small a, grave accent
s/\&\#225\;/á/g;        #Small a, acute accent
s/\&\#226\;/â/g;        #Small a, circumflex accent
s/\&\#227\;/ã/g;        #Small a, tilde
s/\&\#228\;/ä/g;        #Small a, dieresis or umlaut mark
s/\&\#229\;/å/g;        #Small a, ring
s/\&\#230\;/æ/g;        #Small ae dipthong (ligature)
s/\&\#231\;/ç/g;        #Small c, cedilla
s/\&\#232\;/è/g;        #Small e, grave accent
s/\&\#233\;/é/g;        #Small e, acute accent
s/\&\#234\;/ê/g;        #Small e, circumflex accent
s/\&\#235\;/ë/g;        #Small e, dieresis or umlaut mark
s/\&\#236\;/ì/g;        #Small i, grave accent
s/\&\#237\;/í/g;        #Small i, acute accent
s/\&\#238\;/î/g;        #Small i, circumflex accent
s/\&\#239\;/ï/g;        #Small i, dieresis or umlaut mark
s/\&\#240\;/ð/g;        #Small eth, Icelandic
s/\&\#241\;/ñ/g;        #Small n, tilde
s/\&\#242\;/ò/g;        #Small o, grave accent
s/\&\#243\;/ó/g;        #Small o, acute accent
s/\&\#244\;/ô/g;        #Small o, circumflex accent
s/\&\#245\;/õ/g;        #Small o, tilde
s/\&\#246\;/ö/g;        #Small o, dieresis or umlaut mark
s/\&\#247\;/÷/g;        #Division sign
s/\&\#248\;/ø/g;        #Small o, slash
s/\&\#249\;/ù/g;        #Small u, grave accent
s/\&\#250\;/ú/g;        #Small u, acute accent
s/\&\#251\;/û/g;        #Small u, circumflex accent
s/\&\#252\;/ü/g;        #Small u, dieresis or umlaut mark
s/\&\#253\;/ý/g;        #Small y, acute accent
s/\&\#254\;/þ/g;        #Small thorn, Icelandic
s/\&\#255\;/ÿ/g;        #Small y, dieresis or umlaut mark
s/^\s+//;
return $_;
}

e modifichiamolo mettendo all’inizio i nostri veri user e password.
Fatto questo non ci resta che modificare conky aggiungendo nel punto desiderato

${execi 60 perl ~/scripts/gmail.pl n}

e avremo il numero di nuove mail nel nostro conky.

Ultima cosa interessante, se al posto di n passate allo script come argomento e avrete anche visualizzati il nome di chi vi ha inviato l’email e il soggetto dell’email stessa.


L’alternativa c’è: JABBER

gennaio 30, 2009

Se volete chattare con i vostri amici utilizzando un insieme di protocolli open probabilmente state cercando JABBER.

Con un qualsiasi Client (Il mio consiglio non può che cadere su gajim)  che supporti questa tecnologia potrete avviare conversazioni di messaggistica istantanea, usare emoticon, scambiare file… Insomma, tutto quello che è possibile chiedere ad un client di messaggistica.

Jabber è una soluzione ottimale per salvaguardare la propria sicurezza sul web in quanto essendo open possiamo stare sicuri che i dati e le conversazioni che scambiamo con i nostri amici o colleghi di lavoro non vengano smistati verso terze parti o archiviati presso qualche server per chissà quale motivo. Una soluzione trasparente in internet dove la privacy sta facendo davvero una brutta fine.

Oltre a motivi puramente tecnici jabber è totalmente compatibile con le politiche del mondo gnu/linux essendo open e quindi non va incontro alle mille problematiche di programmini che cercano di emulare protocolli proprietari come msn. La questione etica non è da sottovalutare. Che senso ha utilizzare gnu/linux e quindi seguire una filosofia votata alla sicurezza, alla comunità, alla libertà se poi non si vede l’ora di avviare il proprio bel programmino in grado di farci chattare con i nostri amici su msn emulando un protocollo proprietario, di cui non si possono conoscere le specifiche e gli insiti pericoli che questo può portare?

Pensateci bene la prossima volta che volete aprire un software per chattare, magari la vostra scelta potrebbe cadere su gajim, emphaty, psi, etc… aiutando un po’ la filosofia che regge in piedi il nostro caro sistema gnu/linux


Controllare le ventole dei Dell (Inspiron e Latitude)

gennaio 29, 2009

il pacchetto i8kutils permette di controllare abbastanza agevolmente le ventole dei Dell Inspiron e Latitude.

Per installarlo, in Debian, basta dare at-get install i8kutils.

Per attivarlo dobbiamo editare il file /etc/modules e aggiungere alla fine di tale file la riga

i8k force=1

fatto questo salviamo e chiudiamo il file.

Ora dobbiamo configurare la gestione delle ventole. Per fare questo dobbiamo modificare il file /etc/i8kmon. Un esempio di tale file è questo:

set config(0) {{0 0} -1 40 -1 40}
set config(1) {{1 1} 36 50 36 50}
set config(2) {{2 2} 44 128 44 128}

La prima riga indica che le ventole sinistra e destra devono rimanere spente fino a 40 gradi (a sinistra i valori indicano i gradi di quando il portatile è attaccato alla corrente, a destra alla batteria). Superati i 40 gradi si attivano le ventole, in modo lieve fino a riportare la temperatura della cpu a 36 gradi, fatto questo si torna alle ventole spente.

Nel caso in cui le ventole non siano abbastanza forti e la temperatura continua a salire si passa al terzo stadio, ovvero ventole a palla finchè la temperatura non scende a 44 gradi.

Settato questo file non ci resta che avviare in automatico il comando i8kmon -d -a all’avvio del pc. Sotto Gnome basta aggiungere questa istruzione in Sessione, mentre in fluxbox dobbiamo aggiungere questo comando in ~/.fluxbox/startup


Piccola applicazione grafica per when

gennaio 28, 2009

Per seguire il resto dell’articolo conviene leggere prima l’introduzione a when

Semplicemente un piccolo script per visualizzare gli eventi dei prossimi TOT giorni. Per farlo dovrete aver installato zenity che serve a creare delle semplici finestre.

create un file, chiamatelo promemoria e dentro scrivete questo:

#!/bin/bash
cd ~
when –future=20  > ~/find.tmp
zenity –text-info –width=700 –height=300 –title=”prossimi eventi importanti” –filename=find.tmp
rm ~/find.tmp
exit 0

salvate, chiudete il file e dategli i permessi di esecuzione (con gnome basta andare nelle proprietà del file, altrimenti basta un chmod +x nomefile)

Se volete potete porre tale script in /usr/bin con il comando cp promemoria /usr/bin (eseguito da root).  In questo modo dal terminale potete semplicemente digitare promemoriae vi apparirà la finestra con i promemoria dei prossimi 20 giorni (20 perchè così è impostato nello script).


Follow

Get every new post delivered to your Inbox.