Dopo un po’ di aggiornamenti sulla mia debian Sid, ho un warning che mi spamma in maniera fastidiosa. WTF?

sim@idrogeno:~$ dpkg-query -W dpkg
dpkg-query: warning: parsing file ‘/var/lib/dpkg/available’ near line 473010 package ‘cnews’:
 error in Version string ‘cr.g7-40.4′: version number does not start with digit
dpkg    1.16.0.2

‘Sto messaggio esce ad ogni giro di cron.daily, dunque abbiamo da capirci.

Per togliere il warning:

# dpkg –clear-avail

che pulisce il file /var/lib/dpkg/available (è un file che cacha informazioni sui pacchetti della distro).

Un po’ di discussione qua.
Il man di dpkg-query.

Su di un forum che seguo si è presentato uno col seguente curriculum.

Buon giorno,
mi chiamo [...] e sono qui alla ricerca di alcune info sulla tiger 800, moto che mi intrigava molto ma dopo averla vista a milano e scoperto la capienza serbatoio mi ha intrigato molto meno.

Questo il mio curriculum moto:

  • vespa 50 special 20000
  • aprilia tuareg wind 125 21000
  • aprilia ext 350 26000
  • honda cbx 750f 12000
  • morini excalibur 350 29000
  • aprilia pegaso 650 60000
  • motoguzzi quota 1000 56000
  • ducati st2 20000
  • cagiva elephant 900 24500
  • motoguzzi quota 1100 38000
  • cagiva gran canyon 900 19500
  • aprilia pegaso 650 cube 34000
  • aprilia caponord 1000 101000
  • husky sm 610 5000
  • aprilia caponord 1000 rally 40000
  • aprilia caponord 1000 abs 39000
  • motoguzzi breva 1100 75000
  • motoguzzi norge 1200 60000
  • ktm lc8 adventures 60000
  • moto guzzi stelvio 1200 ntx 82000
  • tenere’660 20000

Lo scorso settembre dopo 15 mesi di servizio e con la stelvio che aveva passato gli 80.000 [...] sono ritornato al mio vecchio amore i monociclindrici..
e nei 20.000km con il tenere posso dire che ne sono molto soddisfatto soprattutto dal punto di vista consumo\autonomia… mai meno di 400 con un pieno spesso piu’ di 500… con 22\23 litri…
quindi spendo davvero poco e per come uso la moto io…
Sinceramente della potenza me ne faccio poco… certo in due con le valigie da 40 litri faccio un po’ fatica pero’ poi sul misto vado bene e in off… Be’ sono su un altro pianeta…
Personalmente molto meglio anche della lc8 che ho avuto abbastanza di recente..

Ora mi piacerebbe sapere il consumo reale della tiger 800xc da parte degli utenti che ne fanno un uso turistico… e se c’e’ nell’aria qualche produttore che si sta’ prodigando per un serbatoio maggiorato..( ai tempi della ktm avevo montato quello touratech che poi e’ il safari tanks da 45 litri..che poi e’ da 48.5 litri…)
per me l’autonomia e’ fondamentale percorro circa 50.000km all’anno e sono stato 13 volte in scandinavia… e in generale mi piace fermarmi dove dico io e non stare sempre con la paranoia del pieno.

Detto questo il tiger 800 mi interessa anche per la cilindrata perche’ dopo tante over 1000 dico che oggi giorno anche 50\60 cv bastano se ben erogati…

Nella vita io ho [...]
La formula per fare tanti km è venirci a lavorare quasi sempre anche in inverno facendo anche varie devizioni per allungare il percorso e [facendo] circa 100km al giorno… poi gia’ ora che ci sono giornate piu’ lunghe…farmi magari alla sera alle 18.00 alle 21.00 mi faccio 300km. [...] mediamente il we macino 1000km…
Insomma ogni momento libero salgo su e vado… e spesso quando devo andare a consegnare campioni urgenti magari a 3\400km di distanza salgo in moto e vado…

Che figata. Lode a lui.

Quando si scrive qualcosa sulla linea di comando, si può scoprire che la shell fa qualcosa, come ad esempio espandere caratteri speciali.
Questa espansione di pattern alla ricerca di nomi corrispondenti, si chiama globbing.

Situazione:

sim@idrogeno:~/dev/perl/markdown$ ls -1
index.html
index.html.tidy
index.text
Markdown_1.0.1
mathjax-MathJax-5a7e4d7
remarkable
test_multi.html
test_multi.pl
test_multi.txt

sim@idrogeno:~/dev/perl/markdown$ ls *html
index.html  test_multi.html

sim@idrogeno:~/dev/perl/markdown$ echo *html
index.html test_multi.html

La shell espande la stringa *html nelle eventuali corrispondenze trovate nei nomi dei file nella directory.

Nel caso la shell non trovi corrispondenze, tratta il pattern come una stringa qualsiasi.

sim@idrogeno:~/dev/perl/markdown$ echo *xyz
*xyz

man bash, paragrafo Pathname Expansion.
Dopo aver diviso le parole (word splitting), bash cerca ogni parola coi caratteri *, ? e [; se uno di questi compare la parola viene trattata come un pattern e rimpiazzata con una lista di nomi di file corrispondenti il pattern in ordine alfabetico.
Se non vi è alcuna corrispondenza, e l'opzione nullglob non è abilitata, la parola viene lasciata immutata - se nullglob è impostata, la parola viene rimossa dall'elenco.

Riguardo il Pattern Matching: ogni singolo carattere (esclusi quelli indicati sopra, nel caso non vengano "escapati" col backslash) che appare nel pattern corrisponde a se stesso.

  • * corrisponde a qualunque stringa
  • ? corrisponde a un qualunque singolo carattere
  • [...] (range expression) corrisponde a un qualunque carattere di quelli contenuti. [!...] o [^...] per negare la corrispondenza col carattere.
sim@idrogeno:~/dev/perl/markdown$ echo test_multi.[hp]*
test_multi.html test_multi.pl
sim@idrogeno:~/dev/perl/markdown$ echo test_multi.[!hp]*
test_multi.txt
sim@idrogeno:~/dev/perl/markdown$ echo test_multi.[^hp]*
test_multi.txt

In Perl il globbing funziona alla stessa maniera utilizzando l’operatore glob oppure il “diamond“:

my @images = glob "*.jpg"
my @all_files = glob "* .*"
# oppure
my @all_files = <* .*>

Ovviamente se si vogliono fare le cose per bene, si va con i directory handles (opendir, readdir, closedir).

Perl è fantastico.

sub custom_sort {
    return
        $a->{foo} cmp $b->{foo}
        ||
        a$->{bar} cmp b$->{bar}
}

Questo codice (preso da qui dove viene anche spiegato) è affascinantissimo: compila perfettamente, ma fa tutto il contrario di ciò che ci si aspetta (presumibilmente fallirà miseramente e non riuscirete comodamente, in un listato normale, a risalire all’errore).

Mi ricorda la sensazione di quando guardo uno tsunami in tv: so che è una catastrofe pazzesca però se stacco il cervello dai danni che sta facendo lo trovo terribilmente affascinante.

Nota; il compilatore lo reinterpreta così:

$ perl -MO=Deparse foo.pl
sub custom_sort {
    return $$a{‘foo’} cmp $$b{‘foo’} || $–>a > {‘bar’} cmp $–>b > {‘bar’};
}
foo.pl syntax OK

Quali sono i moduli Perl appartenenti al core presenti sulla macchina?

perl -MData::Dumper -MModule::CoreList -e ‘print Dumper $Module::CoreList::version{$]}’
(by @dada)

Non ho capito perchè, ma su una mia vecchia debian $] – che rappresenta il numero di versione della Perl distro – l’ho dovuto “hardcodare” nel codice.

Altrimenti

$ corelist /./

Eh…

Schnell!

Generalmente Mutt va a leggere i file relativi la posta in /var/spool/mail/ – lo spoolfile.

Con l’opzione -f è possibile andare a vedere una specifica mbox, sia in locale,

$ mutt -f /path/alla/mbox

che in remoto:

$ mutt -f pops://username@pop.mailserver.it
$ mutt -f imaps://username@imap.mailserver.it

Ulteriori info sulle folder e sulla sintassi dell’url.

« Previous Articles    
SIMOTRONE WEB PAGE is based on WordPress platform, RSS tech , RSS comments design by Gx3.