Fonera SIMPL disponibile

Ah Fon, quattro anni fa ero letteralmente pazzo per questo progetto, tanto da aprire questo blog che nelle sue primarie intenzioni si prometteva di aggiornare costantemente con gli occhi del membro della community le novità tecniche, gli hack e gli esperimenti che crescevano attorno al movimento.

Sono passati quattro anni e il movimento Fon, almeno qui in Italia, ha perso ogni impulso, almeno per quanto mi riguarda. Stefano ha abbandonato il progetto, lasciando nelle buone mani di Michelangelo la gestione dei foneros italiani e del blog.

Insomma, Fon ha perso il suo brioso spirito iniziale, ma rimane pur sempre una community che realmente ha distribuito quasi 2 milioni di router in giro per il mondo. Non ha realizzato il sogno di una rete globale wifi mantenuta dagli utenti, ma rimane sempre il miglior progetto wireless esistente.

In questo quadro generale non proprio esaltante arriva un nuovo router dopo la controversa Fonera 2.0n. Ne avevo parlato su queste pagine un anno fa, evidenziando caratteristiche decisamente superiori alle precedenti fonere, ma raccogliendo nei commenti successivi molti problemi legati al chip Ralink 3052F e ai drivers non testati per il dual SSID. I problemi sono stati poi risolti ad Aprile 2010 con il firmware 2.3.6.0.

La nuova fonera è la SIMPL

Chip Ralink RT3050F a 320Mhz, 2MB Flash(pochi!), 32 Mb RAM 1 porta WAN e 1 porta LAN, 802.11n, antenna rimovibile.

Il tutto al prezzo di lancio di 39 Euro incluse spese di spedizione. Non è ancora stata pubblicizzata nello store front di shop.fon.com, ma è ordinabile a questo link https://shop.fon.com/FonShop/shop/FPPLoginOrRegisterController?purchase=1:PRD-023

Aspetto di riceverla al più presto da Michelangelo per riportarvi le mie impressioni a riguardo.

Foto credits: Steven Leeman http://picasaweb.google.be/steven.leeman/2305E#

Ferie, ferie

Post veloce veloce, ché il wordpress ci ha questo quickpress che avrò usato sì e no due volte e per dire che io qui chiudo per ferie fino al 29 Agosto.
Per tutto il resto ci sono i social che entrano dentro l’iPhone ai quali occasionalmente darò fuoco.
See you in September buddies :-)

Old sources su Ubuntu non più mantenute

Certe volte capita di dover lavorare su vecchie installazioni di Ubuntu, ancora perfettamente funzionanti ma non di classe LTS e quindi ormai abbandonate.

Può capitare di voler aggiungere qualche pacchetto, ma essendo scaduto il supporto, apt-get install non funziona più.

La soluzione è cambiare il file sources.list, elencando come target old-releases.ubuntu.com. Ecco un esempio con Gutsy 7.10  :

deb http://old-releases.ubuntu.com/ubuntu/ gutsy main restricted
deb http://old-releases.ubuntu.com/ubuntu/ gutsy-updates main restricted
deb http://old-releases.ubuntu.com/ubuntu/ gutsy universe
deb http://old-releases.ubuntu.com/ubuntu/ gutsy-updates universe
deb http://old-releases.ubuntu.com/ubuntu/ gutsy multiverse
deb http://old-releases.ubuntu.com/ubuntu/ gutsy-updates multiverse
deb http://old-releases.ubuntu.com/ubuntu/ gutsy-security main restricted
deb http://old-releases.ubuntu.com/ubuntu/ gutsy-security universe
deb http://old-releases.ubuntu.com/ubuntu/ gutsy-security multiverse

Dopo un apt-get update possiamo nuovamente aggiungere il pacchetto preferito con apt-get install.

The antenna issue

Era il 1994 e cominciavano ad uscire sul mercato i primi telefonini senza antenna esterna.

Ricordo come fosse oggi la conversazione condita da abbondante ironia toscana tra Danilo, radioamatore di vecchia data, ed un suo amico sull’efficienza dei telefonini con antenna interna.

Amico di Danilo:” Ho letto su “Il cellulare” che questi nuovi telefonini senza antenna funzionano da dio!”
Danilo:”Come no! Ad esempio io in cantina ho un vecchio televisore, la mia casa è di quelle di un tempo con i muri spessi, sai?
ADD:” Sì, ho presente, ma che c’entra il televisore?”
D.:” Aspetta che ti dico. Insomma lì sotto c’è questo televisore, ma non gli ho attaccato l’antenna sul tetto, ho usato una di quelle antenne portatili, anzi ho aperto il pannello posteriore  e l’ho messa dentro lo chassis. Vedessi come si vede bene!”
ADD:”Mi stai prendendo per il culo?”
D.:”Fai te!”

Tutto questo per dire che :
1)anche se l’intensità del segnale è decuplicata rispetto a 10 anni fa, un telefonino rimane sempre una ricetrasmittente e quindi ha bisogno di un efficiente impianto d’antenna.
2)L’antenna va bene montata internamente ma va installata nel posto più scoperto del telefono, tipicamente a contatto del pannello posteriore vicino all’estremità superiore dell’unità.
3)Alla luce di queste considerazioni, come cazzo ti può venire in mente di posizionare l’antenna in basso a sinistra!

Il mediacenter in salotto

Finalmente ho deciso di dotarmi di una postazione di home entertainment in salotto così composta :

Tv lcd full HD 37 pollici LG 37LD428
Decoder sky HD
Asus eeebox  PC EB1501

Se ovviamente lato televisore e decoder c’è veramente poco da smanettare nel piccolo eeebox possiamo mettere le mani con soddisfazione  e creare un media center di tutto rispetto mantenendo ingombro e rumorosità sotto controllo e, cosa da non sottovalutare, senza deturpare l’arredo con “case” catafalchi e grovigli di fili.

L’eeebox EB1501 è stato scelto fra i vari nettop principalmente per tre motivi.
Il primo è che ho un’ottima stima di Asus come produttore e nessuna brutta esperienza con i suoi prodotti, il secondo è la dotazione di serie di un telecomando a raggi infrarossi e un ricevitore IR integrato, indispensabile per un mediacenter e l’ultimo perché è uno dei pochi nettop che incorpora anche il lettore DVD (sempre più raramente, ma a volte può capitare di vederne uno).

Per il resto le caratteristiche sono quelle di un comune nettop: intel atom 330 dual core, 2 Gb Ram, disco da 250 Gb, grafica Nvidia ION, porta Lan e WLAN b/g/n.

Non mi dilungo sulle valutazioni dell’hardware in quanto l’Eeebox EB1501 è ormai in commercio da un pezzo ed è stato già rivoltato come un calzino.

Vediamo come al solito passo passo come procedere all’installazione del software che si appoggerà su Ubuntu 9.10 e XBMC.

Continua a leggere »

Audio Post on wordpress.com

It’s happened to all of us. The night starts off innocently enough with a little gin and tonic, maybe a mojito, then next thing you know you’re doing tequila shots with the bartender and the girl from Brazil and you find yourself thinking it would be a treMENdous idea to call up your ex and see how they’re doing and perhaps impress them with your newfound wit.

We’ve got the cure. Now, instead of drunk dialing random friends, lovers, and acquaintances one at a time, what if you could dial your blog and talk to the whole world at once? It’d be like something out of Star Trek.

Vebbè Matt, io l’ho provato ed è meraviglioso, anche se dissento dal tuo esempio di utilizzo di questa nuova feature :-)

Il costo del post varia da operatore, dal momento che bisogna chiamare un numero USA (con tre 0.25 € al minuto) ma è un prezzo accettabile considerata l’immediatezza dello strumento: chiami il numero, inserisci il codice, registri il messaggio, premi # ed il post viene immediatamente pubblicato.

Awesome!

Backup su HSDPA con router Linux

La settimana scorsa Stefano ha avuto un down tremendo della HDSL, più di 72 ore, quasi insopportabili per una azienda al giorno d’oggi. Per questo motivo mi ha chiesto di aggiungere al firewall/router che già gestisce le policy di rete, un backup su HSDPA automatico che attivi la connessione su 3G non appena il link ADSL cade.

Ho cercato in rete se esisteva già qualche setup, ma ho trovato solo una guida per zeroshell e alcune discussioni su forum che però non erano pienamente esaustive.

Partendo quindi dal semplice concetto che per effettuare uno switch al volo occorre testare il default gateway e nel caso fallisca attivare il gateway su rete cellulare e il masquerading  attraverso esso, ho buttato giù questo accrocchio immondo in shell script.

Il meccanismo si basa su quattro script chiamati pingeth1, killpingeth1, pingppp0, killpingppp0.

Lo script principale è pingeth1

#/bin/bash
ping -I eth1 -c3 151.99.29.203 > result.tst;
ALERT=`grep -c "3\ received" result.tst`
if [ $ALERT = 1 ] ; then
echo "ok"
else
wvdial &
sleep 10
/usr/local/bin/killpingeth1
/sbin/shorewall clear
/sbin/iptables  -t  nat  -A  POSTROUTING  -o  ppp0 -j  MASQUERADE
/sbin/route add default gw 10.64.64.64 dev ppp0
fi
rm result.tst
exit 0

Esaminiamo nel dettaglio quanto sopra:

Vengono lanciati 3 ping attraverso eth1 (porta wan collegata al router adsl) verso il nodo p-t-p della connessione (151.99.29.203) e il risultato viene scritto nel file temporaneo result.tst

Viene introdotta la variabile ALERT ottenuta greppando e contando l’occorrenza del termine “3\ received” dal file temporaneo result.tst.

Se il valore di ALERT è uguale ad 1, lo script si limita a stampare la scritta OK, se il valore di ALERT è diverso da 1 viene nell’ordine:

1)lanciato wvdial in backgroud
2)inserito un sleep di 10 secondi per permettere a wvdial di alzare correttamente la connessione
3)invocato lo script killpingeth1 (che vedremo più sotto)
4)resettate le regole del firewall in essere
5)inserita una nuova regola di iptables per il masquerading attraverso l’interfaccia ppp0
6)aggiunta la nuova default gateway attraverso l’interfaccia ppp0

Viene infine rimosso il file temporaneo result.tst.

Pingeth1 va eseguito ogni minuto da cron, per cui occorre creare un nuovo cronjob

crontab -e
*/1 * * * * /usr/local/bin/pingeth1 >/dev/null

Esaminiamo ora lo script killpingeth1

#/bin/bash
crontab -l >CRON_TEMP
awk '$0!~/pingeth1/ { print $0 }' CRON_TEMP >CRON_NEW
echo "*/1 * * * * /root/pingppp0 >/dev/null" >>CRON_NEW
crontab CRON_NEW
/etc/init.d/cron restart
rm CRON_TEMP;
rm CRON_NEW;
exit 0

La funzione primaria di killpingeth1 è quella di cambiare lo schedulatore, rimuovendo la programmazione di pingeth1 ed inserendo la nuova programmazione di pingppp0 (che vedremo più sotto).

Invocato unicamente in caso di mancata risposta del gateway primario killpingeth1 esegue i seguenti passaggi:

1)Elenca il contenuto del crontab e lo scrive in un file temporaneo CRON_TEMP
2)verifica la presenza della stringa pingeth1 sul file temporaneo CRON_TEMP e se presente la elimina scrivendo un nuovo file CRON_NEW
3)appende alla fine del file CRON_NEW la nuova schedula di pingppp0
4)installa il nuovo cronjob
5)rimuove i file temporanei CRON_NEW e CRON_TEMP

Da questo momento la connessione è instradata attraverso ppp0, però con un monitor sempre attivo sull’interfaccia principale, in modo che, se la connessione dovesse essere ripristinata, si ritorni in modo automatico alle condizioni di lavoro predefinite.

Il controllo dell’interfaccia eth1 viene demandato allo script pingppp0 che abbiamo inserito nel nuovo cronjob.

Vediamolo in dettaglio

#/bin/bash
/sbin/route del default gw 192.168.0.1 dev eth1
/sbin/route add default gw 192.168.0.1 dev eth1
ping -I eth1 -c 3 151.99.29.203 > result.tst;
ALERT=`grep -c "3\ received" result.tst`
if [ $ALERT = 1 ] ; then
killall wvdial
/usr/local/bin/killpingppp0
/sbin/shorewall restart
else
echo "ancora su linea backup"
/sbin/route del default gw 192.168.0.1 dev eth1
fi
rm result.tst
exit 0

Lo script pingppp0 viene eseguito ogni minuto e compie la seguente routine:

Cancella ed aggiunge la default gateway su eth1 (workaround orrendo, ma senza questo passaggio il ping di controllo non riusciva a passare dall’interfaccia eth1, se qualcuno ha una soluzione può integrare e migliorare questo passaggio)

Esegue i soliti 3 ping verso il nodo p-t-p della connessione (151.99.29.203) e il risultato viene scritto nel file temporaneo result.tst

Introduce la variabile ALERT ottenuta greppando e contando l’occorrenza del termine “3\ received” dal file temporaneo result.tst.

Se il valore di ALERT è uguale ad 1 viene nell’ordine:

1)abbattuto il processo wvdial facendo così cadere la connessione 3G
2)invocato lo script killpingppp0 ( che vedremo più sotto)
3)fatto ripartire il firewall

Se il valore di ALERT è diverso da 1 si limita a stampare la stringa “ancora su linea backup” e cancella la default gateway su eth1, rimuovendo come ultimo comando il file temporaneo result.tst.

Rimane da prendere in esame l’ultimo script killpingppp0 che si prende cura di ripristinare il corretto cronjob su pingeth1

Ecco lo script:

#/bin/bash
crontab -l >CRON_TEMP
awk '$0!~/pingppp0/ { print $0 }' CRON_TEMP >CRON_NEW
echo "*/1 * * * * /root/pingeth1>/dev/null" >>CRON_NEW
crontab CRON_NEW
/etc/init.d/cron restart
rm CRON_TEMP
rm CRON_NEW
exit 0

Lo script è del tutto analogo a killpingeth1 e quindi esegue nell’ordine i seguenti passaggi:

1)Elenca il contenuto del crontab e lo scrive in un file temporaneo CRON_TEMP
2)verifica la presenza della stringa pingppp0 sul file temporaneo CRON_TEMP e se presente la elimina scrivendo un nuovo file CRON_NEW
3)appende alla fine del file CRON_NEW la nuova schedula di pingeth1
4)installa il nuovo cronjob
5)rimuove i file temporanei CRON_NEW e CRON_TEMP

Questa catena di script si intesta in un loop che switcha in maniera accettabilmente veloce la connessione tra la linea adsl e 3G, senza nessun intervento manuale da parte dell’amministratore di sistema.

Vista la ruvidità del procedimento non è possibile avere tutte le funzionalità avanzate del router come transparent proxy e vpn, ma credo che il compromesso per essere sempre online anche dopo la caduta del link primario sia accettabile.

I vostri commenti, insulti e migliorie sono come al solito più che apprezzati.

Hootsuite?

Hootsuite?

Feedly for Chrome 2.14.x

Per la lettura dei feed RSS da più di un mese a questa parte sto usando Feedly.

Feedly è un’estensione per Mozilla Firefox, Google Chrome e Safari che si interfaccia al nostro account Google Reader e tramite una serie di javascript ridisegna il layout dell’aggregatore rendendolo del tutto simile ad una pagina web stile magazine.

E’ compatibile con le shortcuts di Greader, è impreziosito da AJAX ed ha tutti gli strumenti per la condivisione su social network, offline reading (tramite Instapaper) e mille altre fighetterie.

Insomma il feed reader definitivo, secondo me.

Quello che però lo rende instabile, almeno su Google Chrome, è il costante aggiornamento di release. Ogni giorno viene infatti caricata una nuova versione che purtroppo, a partire dalla 2.15.x, sembra aver tralasciato una delle features per me più importanti e che l’ha reso per me inutilizzabile: la navigazione con i tasti N e P.

Nella schermata qui sotto è riprodotto il mio uso tipico di feedly: L’apertura di una categoria di feed, un’occhiata d’insieme alla pagina, uso del tasto N per selezionare l’articolo che ritengo possa essere interessante e tasto invio per espandere il post.

Nel cerchio si può notare l'ombreggiatura che notifica all'utente che l'articolo è stato selezionato

Ebbene, dalla versione 2.15.x di Feedly l’ombreggiatura che indica all’utente quale articolo è stato selezionato tramite i tasti N o P è sparita, rendendo di fatto impossibile usare Feedly tramite tastiera, almeno per quanto mi riguarda.

Mi sono chiesto quindi come poter effettuare un downgrade, come poter tornare alla versione 2.14.x che funzionava secondo me in maniera perfetta. Ho cercato di trovare qualche repository con lo storico dell’estensione cercando con Google e sulla pagina Get Satisfaction di Feedly, ma invano.

Ieri, per caso, ho acceso una virtual machine con Ubuntu 10.4, Chrome e Feedly che non usavo da circa un mese. Prontamente ho disattivato l’accesso ad internet per evitare l’update automatico delle estensioni ed ho recuperato Feedly 2.14.267.

Immediatamente l’ho salvato ed ho provveduto ad aggiornare tutte le mie installazioni di Chrome seguendo questa procedura:

  1. Ho disinstallato Feedly dal pannello estensioni di Chrome
  2. Ho copiato la cartella 2.14.267 in una directory nascosta (Linux) chiamata .feedlyext
  3. Ho aperto nuovamente il pannello estensioni di Google Chrome e scelto carica estensione non pacchettizzata
  4. Ho scelto il path della directory nascosta precedentemente creata e ricaricato la mia estensione preferita che, non essendo pacchettizzata, non è più soggetta ad update automatico.

La procedura è analoga anche per Windows e MacOS 10 .

Se anche voi avete riscontrato questi problemi, ho approntato per il download un file zip con la versione 2.14.267 pronto per essere scompattato ed installato secondo la procedura appena descritta.

Il file può essere prelevato qui.

Xen su debian lenny 64 bit, no frills guide parte 3

Eccoci giunti al momento di installare delle virtual machines full virtualized sul nostro hypervisor Xen.

Inizieremo con la preparazione di un file immagine per ospitare il sistema windows e con la creazione dell’immagine Iso per l’installazione.
Continua a leggere »