Blog

  • Google Wave: recensione e inviti

    Sono recentemente stato invitato a provare Google Wave, la nuova piattaforma di comunicazione e di collaborazione made in Google. Più in generale è un framework che integra email, istant messaging, wiki e social networking; se vi state chiedendo a cosa più servire, molto probabilmente non vi serve.

    Se invece avete un gruppo di persone con cui state condividendo un progetto e con cui volete rimanere sempre in contatto, organizzando ogni tipo di comunicazione in maniera compatta e facilmente accessibile, allora Google Wave è quello che fa per voi.image

    Google conta molto nel progetto Wave: infatti, come spiegato nel keynote, Google vuole che Wave rimpiazzi presto l’uso quotidiano dell’email. Tant’è che lo slogan con cui Wave è stato lanciato è proprio “Is What Email Would Look Like If It Were Invented Today

    Dopo averlo provato per qualche giorno, devo dire che è davvero un buon prodotto, facile da usare, e soprattutto semplice ma completo, come tutti i prodotti Google. Google Wave lamenta però ancora qualche problema (più che comprensibile, il prodotto è ancora su invito): infatti, per tutto un pomeriggio (PDT time) non sono riuscito ad utilizzare Wave perché il javascript non veniva renderizzato correttamente.

    Detto questo, offro 6 3 1 0 inviti [non ho più inviti ma appena ne avrò a disposizione inviterò quelli che commenteranno qui sotto] 28 inviti per provare Google Wave: scrivete un commento (avendo cura di riempire il campo email altrimenti non potrò mandarvi l’invito) e appena posso vi manderò un invito. Happy Waving!

  • Ubuntu e Debian: come aggiornare automaticamente i pacchetti installati (unattended-upgrades)

    Nella vita di un sistemista esiste un task piuttosto ripetitivo: ovvero quello di aggiornare i pacchetti (= gli applicativi) installati sul proprio sistema (vuoi perché le versioni recenti dello stesso software dovrebbero essere migliori, più performanti e al riparo dagli ultimi bug di security, etc.).

    Nel caso di un sistemista alle prese con un sistema Ubuntu (o Debian), il task [da eseguire ripetutamente] si riduce a:
    apt-get update
    apt-get dist-upgrade

    (o comunque equivalente se usate aptitude).

    Ora, per evitare di ripetere il task, i sistemi Ubuntu/Debian mettono a disposizione unattended-upgrades: una volta installato il pacchetto, il sistema provvederà ad aggiornare e installare automaticamente tutte le applicazioni installate nel sistema. Vediamo come installare e configurare passo-passo unattended-upgrades:

    1. apriamo un terminale e installiamo il pacchetto unattended-upgrades: apt-get install unattended-upgrades update-notifier-common
    2. editiamo il file /etc/apt/apt.conf.d/50unattended-upgrades in questo modo:

      Automatically upgrade packages from these (origin, archive) pairs
      Unattended-Upgrade::Allowed-Origins {
      "Ubuntu hardy-security";
      "Ubuntu hardy-updates";
      };

    3. editiamo il file /etc/apt/apt.conf.d/10periodic in questo modo:

      APT::Periodic::Update-Package-Lists "1";
      APT::Periodic::Download-Upgradeable-Packages "1";
      APT::Periodic::AutocleanInterval "1";
      APT::Periodic::Unattended-Upgrade "1";

    A questo punto i pacchetti installati nel sistema verranno aggiornati automaticamente.

    Nota: è sempre opportuno controllare i log degli aggiornamenti per evitare eventuali problemi. I log degli aggiornamenti si possono trovare, ovviamente, in /var/log/unattended-upgrades

  • VMware: come risolvere il problema “this machine appears to be in use”

    Se VMware non vi permette di avviare una macchina virtuale che è stata spenta brutalmente (= senza un opportuno shutdown o suspend)  lamentandosi che “this machine appears to be in use” procedete in questo modo:image

    1. Chiudete VMware
    2. Localizzate la directory dove avete i file fisici della virtual machine che non si avvia (di default stanno nella cartella Documents/ del disco locale o nella vostra home – ad esempio, nel mio caso in /home/michele/vmware/Ubuntu)
    3. Andate nella directory del punto 2 e, creando una copia di backup, spostate i files con estensione *.lck in una directory temporanea [C:\Windows\Temp (Windows) o /tmp (Mac/Linux)]
    4. Riavviate la macchina virtuale: questa volta si avvierà senza problemi.

    Nota: cosa sono i file *.lck? Sono file di locking che VMware crea ogni volta che la virtual machine è in uso: se accidentalmente questa viene “spenta” in modo errato, questi files non vengono rimossi da VMware; ecco perché bisogna farlo manualmente.

  • Come impostare il pinning (non aggiornare, ovvero mantenere la versione attuale) di un pacchetto su Ubuntu/Debian

    A volte può capitare che su certe macchine Ubuntu (o Debian) alcuni pacchetti importanti non debbano essere aggiornati dal gestore di pacchetti (apt-get o aptitude). Le ragioni possono essere le più svariate: incompatibilità, volontà di tenere la versione corrente (!), aggiornamento manuale, etc.

    Per fare in modo che un pacchetto non venga mai aggiornato (ovvero che il sistema continui a mantenere la stessa versione del pacchetto installato, bisogna ricorrere alla tecnica del apt pinning, che ci consente di specificare al sistema che un pacchetto (o un gruppo di pacchetti) non deve essere aggiornato e deve essere tenuto “in hold”.

    Per fare in modo che un pacchetto non venga aggiornato basta aprire un terminale e digitare:

    echo nomepacchetto hold | dpkg --set-selections

    dove nomepacchetto è il nome del pacchetto di cui volete che non vengano scaricati aggiornamenti successivi rispetto alla versione installata correntemente.

    Per rimuovere il “blocco”, aprite un terminale e digitate:

    echo nomepacchetto hold | dpkg --set-selections

    dove nomepacchetto è il nome del pacchetto di cui volete che vengano scaricati aggiornamenti successivi rispetto alla versione installata correntemente.

  • Gentoo: creare una lista dei pacchetti e delle applicazioni installate

    Per chi utilizza Gentoo Linux e vuole conoscere quali pacchetti (e quindi quali applicazioni) sono installate basta semplicemente installare gentoolkit (emerge app-portage/gentoolkit) e poi utilizzare equery list.

  • Come fare il resume di un trasferimento fatto con scp

    Per quanto riguarda i trasferimenti di files tra servers UNIX, scp è la soluzione ottimale: non richiede di aprire porte (ok, oltre a quella di ssh, ma chi non lo usa oggigiorno?), è sicuro e soprattutto è veloce.

    Quando si parla di trasferimenti di grandi files, tuttavia, entra in gioco un fattore molto importante, ovvero il resume del trasferimento; ovvero, la possibilità di poter riprendere il trasferimento di un file dal punto in cui lo si era interrotto. scp non offre la possibilità di effettuare trasferimenti con resume. Per sopperire a questa mancanza, usiamo rsync in questo modo:

    rsync -a -v -z --partial --progress --rsh=ssh file_locale username@macchina_remota:/home/username/

    Il file_locale (che può essere anche una directory) verrà copiato sulla macchina remota, nella home dell’utente username. Le altre opzioni passate a rsync permettono di avere un output dettagliato e di abilitare la compressione durante il trasferimento.

    Si può costruire un alias per questo comando in modo da avere scp in modalità resume, basta semplicemente aggiungere la seguente riga nel file .bashrc, presente nella propria home directory (se usate un’altra shell, come ad es. zsh, confido che sappiate quale file modificare):


    alias scpresume='rsync –a –v –z --partial --progress --rsh=ssh'

    A questo punto per trasferire un file si procede in questo modo:

    • scp filename username@macchina_remota:/home/username

    SE si presenta un problema durante la copia, si usa scpresume:

    • scpresume filename username@macchina_remota:/home/username
  • Linux: come installare Java Media Framework (JMF) evitando l’errore “tail: cannot open `+309′ for reading: No such file or directory”

    Ultimamente ho dovuto installare il Java Media Framework di Sun. Tralasciando che la libreria è obsoleta (ultima versione datata 2003) e (quindi) non più mantenuta, la documentazione è molto limitata (esempi banali), javadoc non completi e l’utilizzo(!) di AWT in alcune parti, ho deciso di provare ad installarla sulla mia macchina Linux.
    I passi che ho seguito sono i seguenti:

    • Scarico il file
      jmf-2_1_1e-linux-i586.bin

      dal sito di Sun

    • chmod +x jmf-2_1_1e-linux-i586.bin
    • sh ./jmf-2_1_1e-linux-i586.bin

    Tutto sembra andare per il meglio quando incontro quest’errore (e dal numero di risultati che Google ritorna per questa chiave di ricerca direi che molta gente ha avuto lo stesso problema):

    Do you agree to the above license terms? [yes or no]y
    Permit recording from an applet? (see readme.html) [yes or no] y 
    Permit writing local files from an applet? (recommend no, see readme.html) [yes or no]n
    
    Unpacking...  tail: cannot open `+309' for reading: No such file or directory
    Extracting...  ./install.sfx.3639: line 1: ==: No such file or directory
    ./install.sfx.3639: line 3: syntax error neUQU599ù;···ÿrþÑÑÑ¢_Âò«KK)C{<>úú<<¿è
    QQRLÙÜÌLÅ^sfx.36 88ø$èåõÕ®¢¬,àöè´iÑ*ÒÒÒV~ámn.à7w^ÝÂÆ,;M¢`ÞòA$D¨®¨¨ @ ɺÎwA'
    

    Dopo aver capito cosa stava succedendo, ho capito anche come risolvere questo problema e poter installare la JMF sulla mia macchina; ecco le istruzioni:

    • Aprite il file
      jmf-2_1_1e-linux-i586.bin

      con un editor di testo, ad esempio vim (vim jmf-2_1_1e-linux-i586.bin)

    • digitate /tail (questo fa in modo che vim vi porti sulla prima occorrenza di “tail” che trova all’interno dello script )
    • A questo punto dovreste trovare una linea del tipo:
      tail +309 $0 > $outname

      modificatela in:

      tail -n +309 $0 > $outname

    Salvate il file e chiudete vim (digitate :wq seguito da Enter) e riavviate l’installazione di JMF (sh ./jmf-2_1_1e-linux-i586.bin)

    Nota: esistono framework alternativi a JMF (e probabilmente anche migliori, non mi azzardo comunque a dare una valutazione senza averli provati); ad esempio sono incuriosito da FMJ (altri framework alternativi a JMF).

  • Ubuntu: montare automaticamente la partizione di Windows ad ogni avvio del sistema

    image

    Da quando sono più su Ubuntu che su Windows (sulla mia macchina dual-boot) mi capita sempre più spesso di dover accedere alla partizione di Windows per accedere ai miei dati. Tuttavia, Ubuntu non monta automaticamente la partizione di Windows e quindi sono costretto a montarla ad ogni riavvio del sistema.

    Per risolvere questa scomodità ho fatto in modo di montare automaticamente la partizione di Windows all’avvio del sistema. Ecco i passi per abilitare questa funzionalità:

    • Aprite un terminale, e scrivete il comando:
      sudo apt-get install ntfs-config
    • Dopo aver terminato l’installazione del pacchetto , andate nel menù di Ubuntu –> System tools –> NTFS Configuration Tool 
    • Selezionate la partizione Windows che volete auto-montare all’avvio e impostate un mount point opportuno (io ad esempio uso
      /media/windows) 
    • Cliccate su ‘Apply’ e abilitate entrambe le opzioni (“Enable write support for internal device” e (“Enable write support for external device”).
  • Come rendere Eclipse IDE più veloce e reattivo

    Ho sempre trovato Netbeans IDE molto più veloce e reattivo di Eclipse. Per rendere Eclipse più veloce, ho pensato di applicare le impostazioni della JVM con le quali Netbeans viene lanciato e applicarle ad Eclipse. Ho ottenuto dei risultati molto buoni, in generale Eclipse ora è molto più veloce e scattante.

    Vediamo ora come configurare Netbeans per implementare la modifica dei parametri della JVM:

    • cercate il file eclipse.ini. La sua locazione dipende dal vostro sistema operativo e da dove avete installato Eclipse. Su Windows, ad esempio, si trova nella stessa cartella di eclipse (hint: C:\eclipse o C:\Programmi\Eclipse); su Linux, date un’occhiata a /opt/eclipse (di solito è la directory più indicata per installarlo).
    • una volta trovato il file eclipse.ini, apritelo con un editor di testo e aggiungete in fondo al file queste impostazioni di configurazione (copia/incolla, il segno – deve essere incluso):

      -Xms512m
      -Xmx512m
      -XX:PermSize=256m
      -XX:MaxPermSize=256m
      -Xverify:none
      -XX:+UseConcMarkSweepGC
      -XX:+CMSClassUnloadingEnabled
      -XX:+CMSPermGenSweepingEnabled

    • salvate e chiudete il file. Fine!

    Per i più curiosi, vediamo di spiegare cosa rappresentano le opzioni di configurazione che abbiamo specificato:

    • le prime quattro opzioni permettono di specificare la dimensione massima di memoria che Eclipse può utilizzare
    • la quinta opzione specifica alla JVM di non verificare il bytecode generato
    • per le ultime tre opzioni, vi rimando al Netbeans performance tuning tips; in generale le tre opzioni servono per fare il tuning del Garbage Collector della JVM.

    Ci possono essere altre opzioni “utili” che potrebbero incrementare la velocità di Eclipse. È d’obbligo specificare, però, che le performance ottenute potrebbero variare da computer a computer, in relazione a molteplici fattori, quali sistema operativo, versione della JVM, versione di Eclipse, etc. Come si dice in gergo, YMMV.

    Comunque, quello che io ho ottenuto è un aumento considerevole della velocità e della reattività di Eclipse, e difficilmente tornerò alle impostazioni di default.

  • Fonebook: sincronizzare i contatti di Outlook con i contatti Facebook

    La gestione dei propri contatti è un’attività molto importante: ho una rubrica di tutti i contatti (selezionati) che mi servono e che tengo costantemente aggiornata, aggiungendo i dettagli mancanti etc.

    Alcuni contatti sono anche miei friends su Facebook, il social notworking (no, non ho sbagliato) più famoso; ebbene, molte persone condividono, su Facebook, molti dettagli (quali la foto, il proprio compleanno, la mail, il telefono, etc.). image

    L’idea geniale di Fonebook (solo per Windows, per Mac vedi in fondo all’articolo) è quella di sincronizzare i dettagli dei vostri contatti Outlook (presenti nella rubrica) con i dettagli degli stessi contatti che sono su Facebook (e che sono vostri friends). In questo modo Fonebook integra i contatti esistenti aggiungedo, da Facebook:

    • la foto
    • l’about della persona
    • il compleanno della persona nel vostro calendario di Outlook

    Il programma permette, inoltre, di fare il matching tra i contatti il cui nome non è coincidente (per quei contatti che su Facebook hanno un nome diverso da quello presente nella rubrica – ad esempio perché aggiungono un soprannome al proprio nome visualizzato su Facebook); infine, il programma può anche aggiungere alla rubrica Outlook i contatti che sono su Facebook ma non nella rubrica di Outlook.

    Un programma simile, solo per Windows, è Outsync. È più limitato rispetto a Fonebook: può soltanto copiare la foto da Facebook.

    Per gli utenti Mac esiste AddressBookSync.