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).
Da quando è stata data la possibilità di utilizzare il servizio “faceboook connect” sulle applicazioni per iPhone, moltissimi sviluppatori hanno cercato di trovare soluzioni sempre più originali per unire il noto social network a giochi e strumenti vari.
Uno dei risultati più interessanti sembra essere quello ottenuto dai ragazzi di Zynga, la software house che ha invaso la rete con la sua “MafiaWars”. Dopo mesi di tentativi ed accordi, infatti, la casa ha prodotto LivePoker, un’applicazione che permette ai possessori di iPhone ed iPod Touch di sfidare al tavolo verde gli utenti di Facebook, MySpace, hi5 e Bebo.
La grafica del gioco è chiara e ricorda da molti vicino quella delle tradizionali sale da poker online, anche se manca lo storico delle mani e la chat di gioco è, per ovvi motivi di spazio disponibili – praticamente inutilizzabile.
Il gioco può essere raggiunto anche su internet dai computer fissi, elemento che contribuisce a tenere altissimo il numero di giocatori costantemente collegati nelle sue sale e che rende LivePoker una delle soluzioni migliori per giocare a poker senza scaricare software.
Il gioco è disponibile gratuitamente sull’AppStore in versione Lite, mentre lo si può anche scaricare in versione Pro dopo il pagamento di 9.99$.
LivePoker è un’ottima soluzione per gli amanti del poker online, anche se ricordiamo che il livello delle partite tende spesso a non essere altissimo dunque questo potrebbe essere un limite per tutti quei giocatori professionisti che non hanno voglia di incontrare avversari troppo “loose”.
Per tutti gli altri, sicuramente un’applicazione che vale la pena di provare!
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”).
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):
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.
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.).
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.
Ed ecco che finalmente, la nuova versione di Ubuntu 9.04 (il cui nome in codice è Jaunty Jackalope) è stata rilasciata. Un po’ come durante l’upgrade da Ubuntu da Hardy (8.04) a Intrepid Ibex (8.10), voglio utilizzare la linea di comando per aggiornare il sistema all’ultima release. Nota importante: per passare a Jaunty dovete obbligatoriamente avere Intrepid; date un lsb_release –a per scoprire che versione di Ubuntu state utilizzando, ad esempio:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.10
Release: 8.10 Codename: intrepid OK, questa macchina può essere aggiornata
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.04.2
Release: 8.04 Codename: hardy KO, questa macchina NON può essere aggiornata. Dovete prima fare l’upgrade da Ubuntu da Hardy (8.04) a Intrepid Ibex (8.10) e poi tornare a seguire questa guida.
Ora che abbiamo passato in rassegna i vari requisiti, passiamo alle istruzioni vere e proprie:
Installare (se non è già installato) update manager con: sudo apt-get install update-manager-core
lanciate il processo di aggiornamento con sudo do-release-upgrade
update-manager vi chiederà se volete effettivamente aggiornare e vi darà anche una stima del tempo previsto:
Calculating the changes
Do you want to start the upgrade?
12 packages are going to be removed. 160 new packages are going to be
installed. 998 packages are going to be upgraded.
You have to download a total of 749M. This download will take about
51 minutes with your connection.
Fetching and installing the upgrade can take several hours. Once the
download has finished, the process cannot be cancelled.
In questi giorni ho letto un libro di Sandro Pedrazzini intitolato “Tecniche di progettazione agile con Java: design pattern, refactoring, test” (Ed. Tecniche nuove, 2006 – 29.90 €).
Sono sempre stato molto attratto dall’Agile development, dall’eXtreme Programming e dai suoi metodi e soprattutto anche dalla metologia TDD (Test Driven Development); oltre all’immancabile “Thinking in Java”, non ho mai potuto il piacere di leggere dei libri inerenti quest’argomento. Fino a quando non ho preso questo libro.
Infatti, i libri italiani (accademici e non) non affrontano facilmente un argomento così innovativo, interessante e delicato quale la programmazione agile. Questo libro è però una piacevole eccezione: i lettori vengono introdotti passo passo alla progettazione agile, alle tecniche di refactoring e ai design pattern utilizzando numerosi esempi (in Java – sarebbe interessante una versione di questo libro dedicata al Python). Al lettore non viene lasciato alcun dubbio: più di una volta, durante la lettura del libro, mi è venuto un dubbio riguardante il codice scritto. Con mia grande sorpresa, quasi sempre nella pagina successiva c’era un box (o una nota) di chiarimenti.
È davvero un buon libro e scritto nell’ottica di poter servire ai lettori: gli argomenti sono espressi in modo chiaro e semplice, e soprattutto dal punto di vista del lettore, cioè dal punto di vista di chi legge per imparare! (e non come alcuni libri dove chi scrive lo fa per dimostrare quanto è bravo). I capitoli sono compatti (come le classi scritte da un buon programmatore XP?) e si leggono molto facilmente. Gli esempi sono curati e molto chiari.
In definitiva si tratta di un libro che consiglio, da leggere e da tenere nella propria “biblioteca” per ogni futura evenienza.
Di solito gli utenti Mac non installano un antivirus perché si crede che il sistema operativo OSX sia esente da virus. Infatti, la giustificazione è quella per cui “su OSX non esistono virus [vedi sito Apple], e se esistessero chiedono comunque la password di sudo/root prima di installarsi; basta non fornire la password a programmi sconosciuti!”.
Ultimamente ho trovato un interessante articolo da parte di Sophos, la famosa società di sicurezza. In pratica, su un sito (di cui non riporto il link per ovvie ragioni) viene offerta la possibilità ad utenti Windows e Mac (!) di poter scaricare un codec HDTV/DTV. Il codec però si rivela un trojan horse. Ovviamente gli utenti Mac non potranno più utilizzare la giustificazione “basta non fornire la password”, in quanto è l’utente che vuole legittimamente (ed è sua intenzione) installare il codec, quindi fornirà sicuramente la password. Ed ecco che così il computer viene infettato!
Nel video sottostante potete trovare tutta la descrizione grafica del processo: download, spacchettamento e installazione (bloccata dall’antivirus).
Ultimamente ho dovuto fare ulteriore spazio alla mia partizione XFS (ma il procedimento funziona anche se avete qualsiasi altra partizione, tipo ext3 o reiserfs) per Linux, a scapito di quella NTFS destinata a Windows.
Per fare il resize della partizione Windows, dopo aver fatto un backup e una deframmentazione, ho usato gparted su Linux (sudo apt-get install gparted). Ad un primo avvio, mi era impossibile fare il ridimensionamento della partizione in quanto l’opzione “resize” era disabilitata.
Dopo un po’ di ricerca, ho scoperto che bisogna installare il package ntfsprogs (quindi aprite un terminale e digitate sudo apt-get install ntfsprogs).
Dopo aver installato ntfsprogs chiudete e riaprite gparted, e potrete ridimensionare la partizione NTFS.
Backup early, backup often. È la frase che si dice, si ripete (e si straripete) ogni volta che si parla di informazioni quali dati su disco fisso ed email per evitare che, in caso di malfunzionamenti, si perdano tutti i dati. In particolare, per quanto riguarda il backup di Gmail (ovvero il salvataggio spedite e ricevute tramite il popolare servizio di Google) esistono diverse soluzioni, tra le quali:
Scaricare tutte le email via POP/IMAP con un client qualsiasi (Thunderbird, Outlook)
Scaricare tutte le email via POP/IMAP tramite script configurato (fetchmail) – questa soluzione ha il grande vantaggio di poter essere pianificata (ad esempio via crontab)
Utilizzare un software di terze parti
Tralasciando le prime due soluzioni (per le quali potete trovare ampia documentazione in giro per la rete), oggi voglio parlarvi di Gmail Backup. La soluzione è veramente semplice e veloce: basta scaricare il programma, indicare username e password (si, è necessario indicare la password per permettere al programma di accedere alla vostra casella di posta) ed il gioco è fatto.
Il programma inizierà a scaricare le email presenti sul vostro account e le salverà nella directory che avete specificato (in formato EML). Il programma, partendo da un backup precedentemente effettuato, permette anche di fare l’operazione duale del backup, ovvero il restore delle vostre email su un account Gmail (eventualmente diverso da quello da cui avete scaricato le email).
Infine, il software è anche in grado, partendo da un backup precedentemente salvato, di scaricare solo le email nuove rispetto al backup precedente.
Tra le utility di backup che ho testato per effettuare il backup di Gmail, Gmail Backup è sicuramente la più semplice, veloce e funzionale.