Internet mobile con Ubuntu, LG U960 e Naviga Tre

Come forse saprete da post passati, ho di recente messo le mani su un LG U960 e grazie all’opzione Naviga Tre ho potuto apprezzare i vantaggi della mobilità (9 euro al mese per 50 megabyte al giorno, uniti a Opera Mini e al client GMail fanno spettacolo).

Stasera ho voluto fare il passo successivo: tentare di utilizzare un pò di quel traffico dati col mio Asus eee, con Ubuntu. Un pò di smandruppamenti, ma il sistema funziona: posso navigare in assoluta libertà anche col computer, almeno finchè tengo d’occhi la soglia di traffico. Che figata!

Posto qui un riassunto delle procedure. Non mi dilungherò troppo, dato che altri blogger (di cui indicherò i link) hanno fatto un ottimo lavoro al riguardo.

1) Configurare la connessione tra il computer e il cellulare (io userò il bluetooth). Suppongo che il sistema bluetooth sia già installato e funzionante sul computer. Individuare l’indirizzo fisico del proprio cellulare con un “hcitool scan“, indi individuare il canale per il dialup con un “sdptool scan XX:XX:XX:XX” (le X rappresentano ovviamente l’indirizzo bluetooth del cellulare individuato in precedenza).

2) Modificare il file /etc/bluetooth/rfcomm.conf, aggiungendo una sezione (nel mio esempio rfcomm1) seguendo la sezione d’esempio presente commentata nel file. I dati da inserire sono “yes” (specifica di mantenere attiva la connessione BT col cellulare, non ha a che fare col traffico dati, tranquilli), l’indirizzo, il canale e una breve descrizione del dispositivo. Per concludere, dopo aver salvato il file riavviare il bluetooth (sudo /etc/init.d/bluetooth restart). A questo punto il computer dovrebbe tentare automaticamente la connessione al cellulare, chiedendo il pin prima sul cellulare stesso e poi sul desktop. Come sempre, usate il pin che volete basta che sia uguale su entrambi i dispositivi. Ulteriori dettagli sulle procedure sono descritti con più amore qui.

3) Installare gnome-ppp (sudo apt-get install gnome-ppp ppp). Ah, ovviamente bisogna essere connessi a internet in qualche altro modo.

4) Avviare gnome-ppp (come root, quindi con sudo). Per la configurazione vi rimando a questo post (lo stesso di prima), faccio solo un riassunto rapido delle configurazioni:

Username: uno a caso
Password: una a caso
Memorizza password: selezionato
Numero: *99***1#
Dispositivo: rfcomm1 (quello creato in precedenza)
Tipo: modem analogico
Velocità: la più alta
Composizione: Toni
Volume: Spento
Stringhe di inizializzazione: AT+CGDCONT=1,”IP”,”naviga.tre.it”,,0,0

Tutto il resto va lasciato come di default, tranne che per le opzioni, che vanno tutte deselezionate tranne due, che invece vanno attivate: “Controlla l’instradamento di default” e “Ignora le stringhe del terminale (modo stupido)”. Anche le prime due possono essere tranquillamente attivate.

A questo punto dovremmo essere a posto: avviando gnome-ppp (sempre come root) e premendo il tasto “connetti” il sistema dovrebbe essere funzionale. Se qualcosa non andasse consiglio di provare a ricontrollare le impostazioni, e magari di riavviare il computer (per essere sicuri che tutti i servizi siano avviati correttamente).

Per finire vi consiglio di utilizzare un software per tenere conto della navigazione effettuata, per evitare di sforare il limite del proprio piano (ricordiamo che per il Naviga 3 mensile è di 50 megabyte al giorno, e sappiamo bene che 50 megabyte finiscono in fretta). Ho sentito parlare molto bene di vnstat; stasera non ho tempo di provarlo, ma se vi interessa qui potete trovare qualche spiegazione.

Ciao a tutti!

Ninna Nanna dell’Alfabeto

Si, lo so, siamo un pò fuori tema rispetto ai normali contenuti del blog.. Ma d’altra parte il blog è mio e me lo gestisco io, e questa canzone, trovata per caso girovagando in rete e modificata per adattarla a come me la ricordo, mi riporta alla mente tanti ricordi coccolosi :-)

linus-addormentato2

A è un’anatroccolo che non sa volare
B è una banana ancora da sbucciare
C è una chitarra suonata con amore
D è un desiderio che nasce in fondo al cuore.

E è un’emozione per un bel regalo
F è una farfalla che vola sopra un fiore
G è un gelato al sapore di vaniglia
H non lo so, non so a chi assomiglia.

I è un’isolotto sperduto in mezzo al mare
L è  il libro che ti vuoi comprare
M è l’odore, il sapor del mandarino
N mi ricorda il naso di un bambino

O è un orsacchiotto per giocare insieme
P è la pianta che cresce dopo il seme
Q è un quadrifoglio trovato per la via
R è la rosa più bella che ci sia

S le stelle che brillano nel cielo
T è un tesoro che trovi per davvero
U è l’ulivo colore dell’argento
V che cos’è se non il vento

Ne rimane una, lettera tra tante
tra tutte quante è la più importante
Z come zucchero, per il bimbo mio,
zucchero è il bene che ti voglio io…

Buonanotte a tutti!

Aggiornamento EarthQuake Map

Come promesso ho giocherellato un pochino ancora con la mia mappa dei terremoti in php. Per l’esattezza ho aggiunto delle icone personalizzate per indicare gli eventi sismici, da utilizzare al posto dei marker di default. Ho disegnato (evviva inkscape) dei segnalini personalizzati di tre diversi colori per indicare la magnitudine degli eventi visualizzati, in modo che sia possibile a colpo d’occhio riconoscere le normali scosse da quelle un pò più serie e da quelle (speriamo di non vederne mai più) catastrofiche.

Uno screenshot della mappa con uno zoom sulla zona de L’Aquila, in cui si vedono molto chiaramente le numerosissime scosse di assestamento che da giorni affliggono la popolazione.

Ultimi eventi sismici nell'Aquilano, aggiornati al 27 aprile

Ultimi eventi sismici nell'Aquilano, aggiornati al 27 aprile

Come sempre il codice (e adesso pure le icone :-) ) è distribuito con licenza Beerware ed è liberamente scaricabile dalla pagina del progetto. E come sempre sono aperto a domande, dubbi e suggerimenti. Ciao!

Dividere i contatti di un vCard della Rubrica Indirizzi di MacOsX

I file VCF, come forse molti di voi sapranno, sono files contenenti informazioni di uno o più contatti di rubrica: praticamente l’equivalente virtuale di un biglietto da visita. La loro diffusione nasce, a mio avviso, dal fatto che sono abbastanza (sottolineo: abbastanza) standard (formato vCard) e sono composti in semplici caratteri di testo (ovvero possono essere perfino creati e modificati a mano con un normale editor di testo).

La possibilità della rubrica indirizzi di MacOsX di esportare i contatti in VCF è dunque interessante ai fini della compatibilità con altri sistemi, ma prevede una limitazione: se tento di selezionarne più d’uno e poi eseguire l’esportazione (Archivio -> Esporta vCard) il risultato non saranno dei singoli files ma un unico VCF contenente in sequenza tutti i contatti. Problema: le implementazioni più rigorose del formato vcf (ad esempio quelle dei cellulari) prevedono la presenza di un solo contatto per file. Come aggirare questo problema? Selezionare ed esportare un contatto alla volta, dando ogni volta un nome diverso e sprecando così la mia vita mortale esportando centinaia di contatti?

Ovviamente no. I potenti mezzi del Terminale ci forniscono la possibilità di suddividere e rinominare comodamente il contenuto del VCF “di gruppo” in pochi e semplici (!?!) passaggi.

1) Selezionare tutti i contatti, Archivio -> Esporta vCard, salvare il file “Schede.vcf” in una cartella dedicata.

2) Da terminale, suddividere il file in più spezzoni ciascuno dei quali contiene un contatto.

csplit -n3 -k Schede.vcf /END:VCARD/1 {1000}

3) i singoli file saranno nominati con il metodo di default: xx + numero d’ordine. L’ultimo file sarà in più e quindi vuoto (a causa del metodo di separazione utilizzato in precedenza). Possiamo andare a cancellarlo a mano, o possiamo usare uno script che analizza tutti i file alla ricerca di quello (o quelli) con dimensioni nulle:

for i in $(ls xx*); do
a=$(du $i);
a=$(echo $a | cut -d’ ‘ -f1);
if [ "$a" = "0" ]; then
rm $i;
fi;
done

Molto più divertente, no? Scherzi a parte, è anche tutto automatico, il che rende possibile utilizzarlo in uno script.

3) Per concludere, possiamo rinominare i files (xx[numero]) con il FN (ovvero il nome visualizzato) del contatto che contengono. A questo scopo si può usare questo sistema:

for i in $(ls xx*); do
a=$(cat $i | grep FN | sed -e ‘s/FN://g’ | sed -e ‘s/ /_/g’);
mv $i $a.fn;
done

Ecco fatto.. purtroppo il sistema non è perfetto e alcune schede non riuscirà a convertirle, vuoi perchè manca il FN o perchè questo contiene caratteri che al terminale non piace. Per queste poche eccezioni bisognerà procedere a mano, ma il grosso del lavoro è svolto automaticamente. Comodo, no?

Evoluzione dell’interfaccia grafica

Tutti sappiamo, o perlomeno intuiamo, che l’invenzione dell’interfaccia grafica è stato uno dei momenti chiave della storia dell’informatica domestica e non solo; e sappiamo tutti che senza l’intuizione di poter comandare i computer mediante disegni e simboli e non solo righe di comandi il nostro mondo sarebbe molto, molto diverso.

Ma molti di noi (io compreso fino a poco fa) non sanno come è nata e si è evoluta l’interfaccia grafica, dai primi esperimenti della Xerox (eh si, proprio quelli delle stampanti, non ve lo aspettavate, eh?) fino alle meraviglie grafiche di KDE4 o MacOsX Leopard (si, ci sarebbe anche MSVista, ma preferisco ignorarlo…).

Vi rimando quindi a un bellissimo articolo che elenca, con tanto di immagini storiche, le interfacce grafiche dalla loro nascita fino ai giorni nostri. Qualcosa che non può mancare nel bagaglio culturale di qualunque utente consapevole. Buona visione!

Xerox 8010 Star (anno 1981)

Xerox 8010 Star (anno 1981)

Sono solo sconvolto che nell’elenco non sia presente il famigerato Microsoft BOB

Disegnare una mappa dei terremoti

L’altro giorno ho letto un interessante articolo in cui si valutava la possibilità di estrarre dal sito dell’Istituto Nazionale di Geofisica informazioni circa i terremoti rilevati (argomento tornato tragicamente d’attualità, come sappiamo) e sfruttare queste informazioni per rappresentarli su una mappa.

L’autore dell’articolo di cui sopra ha svolto un ottimo lavoro realizzando uno script in Python che esegue il parsing di questa pagina, ne estrae le informazioni e fornisce un report testuale degli eventi sismici, ciascuno corredato da un link per visualizzare il punto sulle mappe di OpenStreetMap.

Io ho cercato di fare un ulteriore passo in avanti, ovvero realizzare un sistema automatico che mostrasse direttamente su una mappa le posizioni degli ultimi eventi sismici. Il risultato è abbastanza gradevole, e con moltissimi margini di miglioramento, e ho quindi deciso di condividerlo con il mondo nella speranza che a qualcuno possa servire.

A livello pratico, si tratta di una singola pagina in php che scarica la pagina dell’INGV, ne esegue il parsing con pesante e doloroso uso di regexp creando un array con i dati, e poi provvede a disegnarli su una mappa OSM sfruttando le API di Mapstraction. Quest’ultimo, per chi non lo sapesse, è un insieme di API cartografiche open source progettate per interagire con i principali fornitori web di cartografia, che forniscono una serie di interessanti funzioni ben descritte sul loro sito web; ovviamente come fonte dei dati io ho scelto il migliore, OpenStreetMap!

Al momento il risultato è questo:

omsphpresult1

Oltre alla mappa ho anche previsto un div per loggare le operazioni svolte dallo script (immagino sappiate quanto è doloroso lavorare con le regexp :-) ). Nulla vieta di rimuoverlo, ovviamente. Inoltre ho previsto anche la possibilità di cliccare sui marker, per visualizzare data, ora e magnitudine degli eventi:

osmphpresult2

Ho caricato il file online, e per chi volesse vederlo in azione è raggiungibile a questo indirizzo. Inoltre il sorgente è ovviamente libero (pubblicato con licenza Beerware, per intenderci) ed è scaricabile dalla stessa pagina.

I margini di miglioramento sono enormi: rendere più efficiente il parsing, prevedere sistemi di filtraggio e scelta del numero e tipo di eventi da mostrare, differenziare il tipo di evento (ad esempio un marker diverso a seconda della magnitudine) e altro ancora, e non è escluso che un pò alla volta ci giocherellerò per aggiungere queste funzioni. Per ora lascio tutto a voi, e se avete qualche idea o del codice migliorato che volete inserire fatemelo avere e lo aggiungerò.

Ciao a tutti!

Modificare le icone dei documenti su MacOsX

Cambiare le icone a applicazioni/documenti sotto Mac è molto poco intuitivo, ed è spesso un dubbio che colpisce gli switcher (dato che sotto windows è molto più immediato). Ecco quindi una rapida guida per modificare l’icona di un documento in poche rapide mosse:

1) Trovare l’icona. I file icona per Mac Os sono particolari files grafici che vengono creati mediante particolari software. Ad esempio se avete installato i tool di sviluppo sul vostro mac (li trovate nel dvd del sistema operativo) dovreste avere:
/Developer/Applications/Utilities/Icon Composer
Creare un’icona come si deve per Mac non è semplice, poichè il file icns a quanto mi risulta deve contenere più versioni dell’immagine e della sua maschera di trasparenza, a diverse dimensioni (qualche dettaglio su Wikipedia). Anche se a quanto mi risulta è anche possibile creare un’icona semplicemente convertendo un png mediante qualche tool disponibile online.

Ma alla fine il metodo più semplice è ovviamente scaricarsi le icone dalle numerose fonti liberamente disponibili sul web. Suggerisco il sito della Apple e il bellissimo InterfaceLIFT.

2) Selezionare il file icona e premere Mela+i (informazioni).

appleiconmod1

3) Fare click sul disegno dell’icona in alto a sinistra, e copiarlo (Mela+C).

appleiconmod2

4) Selezionare il documento destinatario dell’icona, Mela+i.

appleiconmod3

5) Fare click sull’immagine dell’icona del documento in alto a sinistra, e incollare (Mela+V).

appleiconmod4

Fatto! Adesso la mia tesi ha un aspetto molto più professionale, e un tantino inquietante…

Copiare rubrica da MacOs a cellulare LG (don’t try this at home)

Dopo un paio di settimane in compagnia del mio nuovo cellulare LG U960 ho maturato l’idea che non esiste una soluzione di sincronizzazione efficace dei contatti dalla rubrica di MacOsX; il che per me è un problema, dato che ho in rubrica un centinaio di numeri e indirizzi email: d’accordo, non sono moltissimi, ma comunque TROPPI per essere copiati a mano, specie considerando il fatto che non siamo più nel medioevo e gli amanuensi sono passati di moda.

amanuensefun

Ho quindi passato la giornata (più per una questione di principio, in effetti) elaborando complicate strategie per tentare di esportare i miei contatti sul cellulare. Vi presenterò i passaggi che ho svolto, ma badate bene, l’obiettivo è solo di ridere della mia cocciutaggine: il procedimento è stato talmente astruso e arzigogolato che quasi conviene fare il tutto a mano…

Per prima cosa è necessario estrarre i dati dalla rubrica di MacOsX. Per fortuna qui ci viene in aiuto una simpatica applicazione free di nome “A to G” (Apple to Gmail). Lo scopo ultimo di questa applicazione è, come si capisce dal nome, l’esportazione della rubrica del Mac in Gmail, passando attraverso la creazione di un file csv (comma separater values). Noi ci accontenteremo di prendere questo file e utilizzarlo per i nostri scopi. Detto per inciso, ho provato anche a caricare il suddetto file su gmail e funziona perfettamente.

Questo file deve però essere trattato prima di poter tentare la sincronizzazione sul cellulare. Il primo passo è aprirlo con un editor di testo (ad esempio Smultron) e controllarne la struttura. In particolare una cosa può creare dei problemi: la presenza di ritorno a capo nei campi di testo. Come sappiamo, i file csv sono costituiti da record disposti in linea, separati quindi da caratteri di ritorno a capo. Può succedere, però, che anche all’interno della riga esistano dei ritorni a capo (ad esempio nel campo indirizzo, spesso composto da più righe), che quindi vengono interpretati come termine prematuro del record. La soluzione è, temo, correggerli a mano nell’editor di testo: per fortuna nella mia rubrica ci sono pochi indirizzi e ci ho messo poco.

Una riga del csv in cui si notano i newline indesiderati

Una riga del csv in cui si notano i newline indesiderati

Il passo successivo è ridurre il numero di campi per adattarli a quelli che effettivamente possono essere importati sul cellulare. il modo più sano è usare Excel (o l’equivalente OpenOffice): una volta importato il csv questo è visualizzato comodamente in tabella, ed è facile verificare quali colonne si possono eliminare (ad esempio perchè vuote o non significative) e quali debbono essere fuse con un gioioso drag&drop. Il csv che abbiamo esportato ha un mucchio di campi, mentre il software LG permette di caricare sul cellulare nome, 2 email, 5 numeri di telefono, uno o due indirizzi e poco più: regoliamoci di conseguenza ed eliminiamo quello che può essere eliminato.

lgbest-csvexcel

A questo punto la tabella excel epurata può di nuovo essere esportata come csv (file, salva con nome, ecc..). Ovviamente non può essere così semplice: poichè csv significa “Comma Separated Values”, ovvero “Valori Separati da Virgole”, il programma M$ com’è che produce il file in uscita? Come valori separati da PUNTI E VIRGOLA. Dico, non sono la stessa cosa, no? Beh, apriamo con un editor di testo e facciamo una bella sostituzione globale da punto e virgola a virgola. Eccheccazzo.

Altro dettaglio: adesso dovremo utilizzare il software LG per winzoz per sincronizzare i dati sul cellulare. No, purtroppo non si può fare in altro modo. No, non si può proprio fare in altro modo. No, se si poteva fare in altro modo ti pare che facevo tutto sto casino?

Dicevo, dovremo utilizzare il software winzoz, e quindi bisognerà modificare il file in modo che abbia i newline in formato Dos invece che Mac. Questo si può fare con l’editor di testo free TextWrangler, che nella finestra di salvataggio file ha l’opzione di scegliere il tipo di newline (che ovviamente impostiamo su dos).

A questo punto il peggio è passato. Andiamo sulla nostra macchina winzoz (o avviamo la macchina virtuale), connettiamo il cellulare…

nb: il pessimo software lg spesso non riesce a connettersi al cellulare, anche con tutti i driver installati (io come impostazioni uso cavo USB e porta COM3). In questo caso la soluzione più rapida è andare in Pannello di Controllo, installazione Hardware e lanciare la scansione di ricerca di nuovo hardware; rileverà che il cellulare è correttamente installato, e da quel momento ricomincerà a funzionare tutto (fino al successivo riavvio, mah..).

..copiamo il file csv preparato in precedenza nella macchina winzoz, apriamo LG Desktop e avviamo il Sync Manager (chissà perchè non se lo può avviare da solo). Connettiamo il cellulare, sincronizziamo, importiamo il csv:

lgbest-csvimport

Importante a questo punto impostare le equivalenze tra i campi del csv e i campi della rubrica del cellulare; al massimo possiamo fare qualche tentativo e vedere i risultati dell’importazione. Se tutto è ok, ora è sufficiente lanciare la sincronizzazione e come per magia vedremo i contatti che vengono, finalmente, copiati sul cellulare.

lgbest-sincr

Ma si può dover fare tutto sto casino per copiare qualche numero su un cellulare? Eccheccazzo!

Ping.fm: aggiornare lo status su mille network

Molti di noi utilizzano i servizi social che il web moderno offre: twitter o facebook sono solo i primi esempi che mi vengono in mente.. e tutti, dico tutti, queste piattaforme hanno un servizio in comune: lo status, ovvero una breve frase che dovrebbe esprimere il proprio stato d’animo in un determinato istante, o magari qualche informazione più utile, ma sempre destinata a rappresentare un’istantanea di quello che ci passa per la testa nel momento in cui la scriviamo.

Problema: se io uso, ad esempio, twitter e facebook, quale aggiorno quando mi viene voglia di scrivere qualcosa sul web? Uno dei due? O magari tutti e due? Magari facendo il login su più portali? Uff.. Scomodo…

Per fortuna (?) ho trovato la soluzione ottimale: un servizio che si colloca tra me e i miei social network, e si prende carico di aggiornarli tutti. Sto parlando di Ping.fm, un ottimo sistema che uso già da qualche tempo con ottimi risultati (nonostante sia ancora una beta in fase di sviluppo). Ah, dimenticavo, è gratis! :-)

pingfm-logo

Una volta iscritti a Ping.fm, è sufficiente impostare nella propria dashboard le networks che si desidera aggiornare, e il gioco è fatto. Io lo uso per twittare e contemporaneamente aggiornare il mio stato su facebook; se poi aggiungiamo che sul mio blog è presente il log dei miei ultimi twit, ecco che il cerchio si chiude. Ovviamente il servizio non si ferma qui: ping.fm supporta una quantità incredibile di networks (qui un elenco).

pingfmnetworks

Ma la vera comodità di Ping.fm non è quello che è in grado di fare, ma il come glielo facciamo fare: è possibile aggiornare lo status dal portale, ma esistono altri modi: mandando una mail a un particolare indirizzo, oppure mandando un sms a un particolare numero, o collegandosi alla versione mobile del portale con il browser di un cellulare.

pingfm-services

Ma il mio preferito è mediante Jabber: viene creato un account fittizio jabber/gtalk, che appare nel mio programma di chat;

il bot di ping.fm in Adium

il bot di ping.fm in Adium

mandando un messaggio a questo account, il testo viene immediatamente pubblicato sulle mie social networks. Tempo totale: 5 secondi. Mica male, eh?