Blog

  • Sul perché io detesti tanto il calcio

    Io odio il calcio. E oggi vi spiegherò il perché.

    Partiamo dal fatto certo e conosciuto a tutti che siamo in un periodo di crisi economica: non c’è lavoro, le persone faticano a trovare lavoro o a tenersi quello che già hanno, alcuni fanno addirittura fatica ad arrivare a fine mese.
    Ora passiamo al fatto che, nella vita, tutti fanno un lavoro per guadagnare dei soldi: c’è chi fa l’operaio, chi fa l’impiegato e così via. Una vita all’insegna della varietà, ma alla fine (a parte pochi casi), tutti lavorano per portare a casa i dindini.

    La questione principale è, da sempre, quanti soldi si guadagnano. C’è chi ne guadagna molti e meritatamente, chi ne guadagna pochi ma immeritatamente, e tutte le varie combinazioni.
    Ormai cinque anni fa ho deciso di smettere di seguire il calcio: smetto di ascoltare (o cambio canale) qualsiasi cosa sia inerente il calcio. Perché?

    Per un semplice motivo: la quantità immeritata di soldi che i calciatori percepiscono (ultimamente alla radio ho sentito la notizia degli stipendi miliardari dei calciatori). Ad esempio: un famoso calciatore guadagna 13 milioni di euro all’anno (senza contare i guadagni da premi e sponsor).

    Perché dico immeritati?

    • Conosco persone che percepiscono uno stipendio molto più alto di quello della media (ma non comparabile sicuramente a quello dei calciatori). Eppure queste persone si meritano tutti i soldi che guadagnano! Perché? Lavorano 26 ore al giorno, si sono distinti nel proprio lavoro per capacità, studi ed esperienza e ora sono arrivati dove sono. E i calciatori invece? Non ho statistiche alla mano, ma non credo proprio che molti di loro non abbiano studiato come noi; non credo neanche che molti di loro sappia cosa significa lavorare (visto che fanno allenamenti giornalieri, la domenica giocano 2-3 ore per la partita, magari una partita infrasettimanale) e il resto del tempo sono in locali a spendere i loro soldi, magari con veline al seguito (cfr. le riviste scandalistiche).
    • Il Presidente della Repubblica Italiana ha premiato i calciatori che hanno vinto la coppa del mondo con un’onoreficenza… Quale sarebbe il titolo di merito? Avere tirato una palla dentro una porta? I calciatori sono equiparabili a degli eroi nazionali?
    • La quantità di soldi che percepiscono costituisce una specie di indennizzo perché ogni volta che giocano rischiano la vita? Assolutamente NO! Infatti non rischiano la vita come i piloti di Formula1 e MotoGP. Sono d’accordo a strapagare campioni come Michael Schumacher e Valentino Rossi: oltre a rischiare la propria vita ogni volta che salgono in macchina/moto, contribuiscono, in parte, a migliorare le misure di sicurezza (innovazione tecnologica) che poi noi potremo riusare sulle nostre macchine o moto (vedi caschi, abbigliamento per moto, etc). Che innovazione tecnologica può nascere dal calcio? Forse i walkie-talkie che vengono usati per comunicare dall’arbitro con i guardalinee?
    • Qualcuno potrebbe dire che la quantità di soldi che guadagnano è una specie di assicurazione dato che i calciatori finiscono di lavorare intorno ai 30 anni, e poi la loro carriera è finita. Due repliche: innanzitutto i soldi che percepiscono sono più che sufficienti per vivere di rendita a partire dai 30 anni, e in secondo luogo molti calciatori poi si trovano comunque un impiego da allenatore, preparatore atletico, … e quindi rimangono nel giro d’affari per altri anni! E noi persone “normali” dobbiamo lavorare 40 anni per arrivare alla pensione
    • La copertura mediatica del calcio rispetto agli altri eventi: avete mai provato ad andare sulla home page della Gazzetta e visualizzare quanto spazio è riservato alle notizie riguardanti il calcio? E quanto quello relativo agli altri sport? Ma non soltanto sulla Gazzetta gli altri sport ricevono lo stesso trattamento. Basta guardare i programmi televisivi riguardanti, appunto, “LO SPORT”. 80% sono servizi sul calcio; 20% sono dedicati agli altri sport. Forse gli altri sport sono meno nobili (! ditelo a quelli che praticano fioretto…)? O forse gli altri sport non hanno lo stesso giro d’affari del calcio quindi è comodo non parlarne?
    • Tutti questi fattori (strapagati, festaioli, cavalieri della Repubblica, copertura mediatica) contribuiscono a creare un’immagine SBAGLIATA dei calciatori, soprattutto nei più giovani. Mentre in passato si chiedeva “Cosa vuoi fare da grande?” e le risposte erano variegate e coinvolgevano un periodo di crescita formativa e professionale, ora la maggior parte dei bambini punta a fare il “calciatore”. Perché? Perché il calciatore è ricco, esce con le veline, è un personaggio mediatico, è una persona che lancia le mode. È un vero peccato che la maggior parte dei calciatori non sappia coniugare un congiuntivo. OK, è vero che il calcio è uno sport che è facile da praticare, basta soltanto un pallone e una porta. E quindi rappresenta un meccanismo di aggregazione per i bambini. Su questo non c’è dubbio. Anche per il ciclismo basta soltanto una bicicletta.
    • I bambini crescono quindi con il mito del “calciatore”, sacrificando (probabilmente) altre attività in cui potrebbero essere più portati e che potrebbero costituire il loro futuro; si impegnano nel calcio, salvo poi scoprire che non faranno mai i calciatori professionisti

    Tutto questo porta ad un circolo vizioso, per cui il calcio guadagna attraverso l’attenzione degli spettatori e questi ultimi influenzano altre persone a seguire il calcio, creando l’ideologia generale che i calciatori sono l’esempio da imitare e da raggiungere. È un’ideologia senza dubbio sbagliata, che si può combattere solo in un modo: smettendo di seguire il calcio. In questo modo ci sarebbe meno pubblicità, meno investimenti nel mondo del calcio, meno soldi per retribuire i calciatori

    Se sei arrivato fino a qui a leggere, bene! Avrai probabilmente uno di questi prevedibili commenti:

    • Sei solo un invidioso! Molto probabile! Ma devi comunque convenire che quello che ho scritto è senza ombra di dubbio vero e soprattutto più che condivisibile.
    • Ma a te cosa interessa dei calciatori, vivi la tua vita! Mi piace pensare che parlare e proporre soluzioni ai problemi della società moderna possa cambiarla
    • Vai a fare il calciatore! Se ci avrebbi potuto l’avessi sicuramente fatto! (ho un futuro da calciatore… :-))
  • Apache: come nascondere il banner contenente la versione, il packaging, etc. [ServerTokens]

    Ispirato dalla filosofia “security by obscurity” [sicurezza tramite segretezza], ho sempre avuto l’abitudine di limitare le informazioni rivelate dai server Apache che amministro. Solitamente (= di default), Apache rivela le seguenti informazioni:

    • Versione, major build [1, 2]
    • Packaging [Ubuntu, Fedora, etc.]
    • Eventuali moduli installati [mod_security, mod_python, etc.]
    • Versione estesa [2.0.47]

    Un po’ troppe per i miei gusti… Quindi limito la quantità di informazioni che Apache rivela al mondo in questo modo [istruzioni personalizzate per Ubuntu]:

    • Diventando root, modificate il file /etc/apache2/conf.d/security
    • Andate alla riga ServerTokens: # ServerTokens
      # This directive configures what you return as the Server HTTP response
      # Header. The default is 'Full' which sends information about the OS-Type
      # and compiled in modules.
      # Set to one of:  Full | OS | Minimal | Minor | Major | Prod
      # where Full conveys the most information, and Prod the least.
      #
      ServerTokens Minimal

      Come vi viene spiegato, potete scegliere il livello di granularità delle informazioni rivelate, andando da Full (che rivela tutte le informazioni possibili) fino a Prod, che non rivela quasi nulla (solo che usate Apache). Sui miei server, di solito, scelgo una via di mezzo e di conseguenza imposto ServerTokens a Minimal.

    • Salvate e riavviate Apache: sudo /etc/init.d/apache2 reload
  • Cheese: un’applicazione per fare fotografia con la webcam per Ubuntu [un clone di Photo Booth]

    imageSe state cercando un’alternativa a Photo Booth, il popolare software di Apple per scattare fotografie tramite la webcam del proprio computer, allora dovreste considerare Cheese.

    Si tratta di un programma molto semplice: una volta aperto, mostra l’immagine della webcam e vi permette di scattare una foto. Inoltre, è possibile applicare alcuni effetti “simpatici” [le foto sono degli sviluppatori di Gnome/Cheese].

    Cheese è incluso nei repository di Ubuntu, quindi per installarlo è sufficiente digitare: sudo apt-get install cheese

    Senza dubbio da provare!

  • mp3.it: la mia recensione

    Navigando qua e là sul web in cerca di materiale audio sul mio cantante preferito [per chi non lo sapesse ancora è Ligabue] mi sono imbattuto in un sito interessante: mp3.it
    A differenza di tutti gli altri siti di musica, autorevoli e non, questo portale mi ha dato la possibilità di ascoltare ogni singolo brano del mio beniamino senza pagare e di consultare il catalogo multimediale alla ricerca di qualche pezzo ancora sconosciuto (cosa improbabile!).

    Subito ho ascoltato “Urlando contro il cielo”, un classico intramontabile, e devo dire che anche la qualità del suono era superiore alla media. Insomma qualche ora piacevole ascoltando buona musica e condividendo le mie passioni musicali su Facebook, grazie alla possibilità di condivisione sui maggiori social.
    Niente da aggiungere, provare per credere!

    Nota: il servizio è legale e garantisce il rispetto dei diritti d’autore. Il servizio è gestito da Register.it

  • Ubuntu: Apache2 con certificati self-signed e senza password all’avvio

    Recentemente mi è capitato di dover installare apache [in particolare, apache2] su una macchina Ubuntu. In particolare, mi è stato chiesto di installare la versione con ssl, ovvero che implementa il protocollo cifrato https.

    Apache2+ssl richiede l’utilizzo di un certificato firmato da un’autorità [es. Thawte, Verisign, etc.]. Se non vogliamo pagare una CA per ottenere un certificato firmato, possiamo generare un certificato firmato da noi stessi. Tuttavia, seguendo molte delle guide che si trovano in rete, apache viene installato con l’opzione ssl ma ogni volta che viene avviato richiede la password per l’utilizzo del certificato.

    Per questo riporterò qui una guida passo-passo che fa in modo che Apache2 non richieda la password per l’utilizzo del certificato: questa procedura è consigliata solamente se l’utilizzo è volto al testing o allo sviluppo. Qualsiasi altro uso è sconsigliato [richiedere una password per l’utilizzo del certificato è più che normale].

    • Abilitate il modulo ssl per apache2: sudo a2enmod ssl
    • Generiamo il certificato: cd /tmp; sudo openssl req -new > new.cert.csr
    • Vi verranno chieste delle informazioni a scopo puramente informativo e che compariranno nel certificato. Riempite le varie informazioni come credete
    • Ed ora una serie di comandi per generare tutti i file richiesti dai certificati: sudo openssl rsa -in privkey.pem -out new.cert.key
      sudo openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825
      sudo cp new.cert.cert /etc/ssl/certs/server.crt
      sudo cp new.cert.key /etc/ssl/private/server.key
    • Ora abilitiamo l’utilizzo dei certificati appena generati:sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
    • Modificate il file /etc/apache2/sites-available/default con il vostro editor preferito, ad esempio vi: sudo vi /etc/apache2/sites-available/default e cambiate le seguenti linee:
      Cambiare da…A…
      NameVirtualHost: *NameVirtualHost: *:80
      <VirtualHost *><VirtualHost *:80>
    • Modificate ora il file /etc/apache2/sites-available/ssl sempre con il vostro editor preferito e cambiate le seguenti linee:
      Cambiare da…A…
      NameVirtualHost: *NameVirtualHost: *:443
      <VirtualHost *><VirtualHost *>

      Dopo la linea che contiene DocumentRoot, aggiungete le seguenti righe:

      SSLEngine on
      SSLOptions +StrictRequire
      SSLCertificateFile /etc/ssl/certs/server.crt
      SSLCertificateKeyFile /etc/ssl/private/server.key
      
    • Ora date il seguente comando per abilitare l’utilizzo dei certificati in apache2: sudo a2ensite ssl
    • Infine riavviate Apache2 e finalmente non chiederà più la password del certificato: sudo /etc/init.d/apache2 restart

    Nota: se avete problemi controllate che il vostro file /etc/hosts sia fatto in questo modo:

    127.0.0.1 localhost localhost.localdomain {il vostro hostname}
    127.0.1.1 {il vostro hostname}
    {IP statico se ne avete uno} {DNS fully qualified se ne avete uno}
  • Python: come ordinare un dizionario [dict] per chiave o per valore

    Python: come ordinare un dizionario [dict] per chiave o per valore

    In Python, i dizionari (dict) sono una struttura dati associativa che associa una chiave ad un valore (k, v):

    d = {}
    d['bart'] = 'marge'
    d['maggie'] = 'homer'
    d['milhouse'] = 'nelson'
    d['lisa'] = 'skinner'
    >>> d
    {'maggie': 'homer', 'lisa': 'skinner', 'bart': 'marge', 'milhouse': 'nelson'}
    

    Esistono due modi di ordinare un dizionario:

      • La modalità “classica” e più conosciuta: ovvero ordinare il dizionario sulla base delle chiavi che lo compongono:
    for k in sorted(d.keys()):
    print k + ' : ' + d[k]
    
    bart : marge
    lisa : skinner
    maggie : homer
    milhouse : nelson
    
      • La modalità meno conosciuta e che ho dovuto ricercare [e che quindi condivido con voi] ovvero quella di ordinare il dizionario sulla base dei valori che sono associati alle chiavi:
    sorted(d.items(), key=lambda(k,v):(v,k))
    >>> [('maggie', 'homer'), ('bart', 'marge'), ('milhouse', 'nelson'), ('lisa', 'skinner')]
    

    Come vedete questa volta abbiamo ottenuto una lista degli elementi ordinati secondo il valore associato ad ogni chiave. Può tornare utile!

    Esistono molteplici versioni di quest’ultima istruzione, ma questa ritengo che sia la più compatta e veloce.

  • Come impostare ssh in modo che non richieda la password di accesso (chiavi asimmetriche per il login)

    Alcuni client ssh permettono di definire “sessioni salvate” di connessioni in modo che username e password vengano salvati e non vengano richiesti ad ogni connessione verso un host. Trovo che permettere all’utente di poter salvare la password sia profondamente sbagliato dal punto di vista della security, soprattutto se l’utente ha privilegi non indifferenti sulla macchina remota [ad esempio è nei sudoers].

    Detto questo, trovo anche che sia abbastanza noioso inserire la propria password ad ogni connessione. Ma non disperate: il meccanismo standard per risparmiarvi preziosi secondi esiste e ve lo spiegherò tra poco. Inoltre, il meccanismo standard è sicuro di per sé e non indebolisce la struttura di ssh perché utilizza un’autenticazione basata sulla crittografia asimmetrica.

    Innanzitutto: queste istruzioni sono per Linux e OSX. In futuro posterò anche le istruzioni per Windows/PuTTY.

    Obiettivo: loggarsi dalla macchina locale (local) alla macchina remota (remote) senza inserire la password

    Sulla macchina locale: generare le chiavi di autenticazione [1/2]

    Le chiavi di autenticazione sono composte da 2 chiavi, una pubblica e una privata. La chiave pubblica rappresenta la nostra identità nel mondo esterno. La chiave privata, invece, rappresenta la nostra chiave segreta, la nostra “password” [anche se è molto più lunga di una password].

    Per generare le chiavi bisogna dare questo comando:
    local$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/mbologna/.ssh/id_rsa):

    Accettate il path che vi viene proposto premendo Invio
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:

    Vi consiglio fortemente di inserire una password a questo punto. Nonostante molte persone consiglino (sbagliando) di non inserire una password perché si ripeterebbe il problema di dover inserire una password, vi posso assicurare che impostare un ulteriore livello di sicurezza per poter accedere ad un file così delicato come la vostra chiave privata è più che consigliato [e per sfatare un falso mito: non è vero che bisogna reinserire la password, basta affidarsi a un’implementazione sicura di ssh-agent].

    Ora controllate che effettivamente il comando abbia creato le vostre chiavi:

    local$ ls -la .ssh/
    drwx------  2 mbologna mbologna   4096 2009-09-24 18:43 .
    drwx------ 55 mbologna mbologna   4096 2009-11-13 00:42 ..
    -rwx------  1 mbologna mbologna   1743 2009-08-04 16:52 id_rsa
    -rwx------  1 mbologna mbologna    433 2009-08-04 16:52 id_rsa.pub

    id_rsa contiene la vostra chiave privata, mentre id_rsa.pub contiene la vostra chiave pubblica.

    Sulla macchina remota: autorizzare l’autenticazione tramite chiave pubblica [2/2]

    Loggatevi sulla macchina remota inserendo la vostra password [per l’ultima volta :)]:

    local$ ssh username@remote
    A questo punto seguite i seguenti passi:

    • create una directory .ssh nella vostra home mkdir .ssh
    • impostate i permessi appropriati chmod 700 .ssh
    • spostatevi nella directory .ssh cd .ssh
    • create un file chiamato authorized_keys touch authorized_keys
    • impostate i permessi approppriati chmod 600 authorized keys
    • aprite il file authorized_keys con il vostro editor preferito [ad esempio vi] vi authorized_keys
    • copiate e incollate il contenuto del file ~/.ssh/id_rsa.pub presente su local nel file authorized_keys
    • fate un logout

    Abbiamo finito! Ora potete semplicemente loggarvi sulla macchina remote semplicemente con ssh username@remote

    Nota: se non volete digitare la password ogni volta che accedete alla vostra chiave privata, date un’occhiata a ssh-agent.

  • Dell Precision M4400: la mia recensione

    DSCN1936Dopo aver valutato per molto tempo l’acquisto di un notebook, ho recentemente acquistato un notebook di fascia aziendale prodotto da Dell, il Dell Precision M4400 per la precisione; l’acquisto è avvenuto ad aprile 2009 e dopo 7 giorni dall’ordine ho ricevuto il notebook completo di alimentatore, manuali e CD.

    Il notebook ha le seguenti caratteristiche:

    • Intel Core2 Duo T9400 a 2.53Ghz;
    • 4096MB di RAM;
    • Hard disk: 500GB a 7200 RPM;
    • Scheda video NVIDIA Quadro FX 770M [scheda grafica ottimizzata per CAD]; DSCN1927
    • Schermo LED 15.4’ con risoluzione 1440×900;
    • Windows Vista Business SP1

    Dopo alcuni giorni di test, il notebook si è comportato molto bene: la capacità computazionale è davvero eccezionale, sia per le performances della CPU che per la potenza della scheda video. Il case è in plastica ma è comunque molto resistente e con un design tutto sommato accattivante. Il peso è sicuramente inferiore rispetto ai notebook aziendali della stessa fascia. Inoltre, caratteristiche quali il disco fisso a 7200 RPM, lo schermo a LED e lo schermo opaco con una risoluzione più alta rispetto ai “notebook da supermercato”, costituiscono senza ombra di dubbio un punto di forza per questo notebook.

    DSCN1932 Un primo grave difetto di progettazione è comparso dopo soltanto un mese dall’utilizzo. Infatti, ho cominciato a notare uno strano aspetto del case all’altezza del processore: molto probabilmente, il calore dissipato dalla CPU scioglie l’adesivo nero che copre gli speaker, lasciando scoperta la struttura metallica sottostante; il risultato è sconcertante, come potete vedere dalle foto. Tengo a precisare che il notebook è stato conservato con molta cura, quindi l’effetto che si vede in foto non è dovuto a usura ma semplicemente alla verniciatura del notebook che si scioglie dopo nemmeno 7 mesi di vita. Sull’altro lato del notebook, invece, il fenomeno è presente in minore quantità ma è comunque presente: la mia intuzione è che sia causato dal calore dissipato dall’hard disk, che è sicuramente inferiore a quello dissipato dal processore.

    Un altro difetto molto vistoso è la dimensione dell’alimentatore: acquistando il prodotto online purtroppo non era presente una foto dell’alimentatore, quindi non potevo sapere a priori le dimensioni dello stesso. L’alimentatore è davvero molto ingombrante e pesante rispetto ai notebook della stessa fascia.

    Un altro difetto che però è parzialmente imputabile a Dell è la latenza dei drivers della scheda video con l’utilizzo di Windows Vista: misurando il ritardo della scheda audio [con dpclat], possiamo notare che in alcuni casi il driver audio ha una latenza molto alta, che si traduce in interruzioni durante il playout di video o canzoni.

    DSCN1934Ho avuto già l’occasione di chiamare il supporto Dell: infatti, l’alimentatore del notebook si è rotto mentre ero a Los Angeles. DSCN1937Nonostante avessi comprato il computer in Italia, chiamando il supporto tecnico da Los Angeles sono riuscito ad avere l’alimentatore sostitutivo il giorno seguente alla chiamata: davvero molto celeri.

    Riassumendo, il notebook presenta i seguenti vantaggi:

    • CPU e scheda video molto performanti
    • Possibilità di montare hard disk a 7200 RPM
    • Schermo opaco
    • Schermo LED con risoluzione adatta ad un 15.4’: 1440×900
    • Supporto Dell competente e rapidoimage

    mentre ha i seguenti svantaggi:

    • Difetto di progettazione per quanto riguarda la vernice che copre gli speaker. Il difetto è molto visibile e deve essere corretto al più presto
    • Alimentatore fuori scala: troppo ingombrante e pesante
    • Latenza dei drivers per Windows inaccettabile per un computer di questa fascia: serve un aggiornamento dei driver per Windows.
  • Safari: come aprire un link in un nuovo tab anziché in una nuova finestra

    Safari [e molti altri browser] hanno un comportamento che mi infastidisce quando tentano di aprire un link [come ad esempio questo] in una nuova finestra.

    Mi piace l’idea di avere una finestra unica del browser ma con molteplici tab: dopotutto i tab sono stati introdotti proprio per non avere più finestre aperte. Quindi, per forzare Safari ad aprire un nuovo link in un nuovo tab, anziché in una nuova finestra, si deve modificare il comportamento di Safari tramite il terminale [non preoccupatevi, nulla di trascendentale]. Le istruzioni per MacOSX sono le seguenti:

    • Premete command+space per lanciare Spotlight e digitate ‘terminale’, il top hit che avrete è l’applicazione del terminale. Lanciatela
    • Una volta aperto il terminale, vi basterà copiare-incollare il seguente comando:
      defaults write com.apple.Safari TargetedClicksCreateTabs -bool true
    • Riavviate Safari

    Ben fatto! Ora i link che si aprivano in una nuova finestra verranno aperti in un nuovo tab.