Gli status updates sono miei e me li gestisco io.

Una delle regioni per cui questo, ma anche moltissimi altri blog non è più aggiornato è l’ormai consolidata affermazione dei sistemi di microblogging. Quello che prima aveva ragione di essere postato all’interno di un blog ora viene veicolato tramite altri canali. Segnalazioni e quotes su Tumblr o Posterous; stati d’animo, short links e foto estemporanee catturate con lo smartphone su Twitter o Identi.ca; discussioni animate con veloci botta e risposta su Friendfeed (o anche Facebook, al limite, ma anche no..)

Il blog si ritrova quindi abbandonato dal flusso dei pensieri del proprio autore che ci scrive ormai solo approfondimenti o, come nel mio caso, appunti di lavoro da condividere con tutti.

Esiste però un problema di fondo nei comportamenti che ho elencato qui sopra. Tutto quello che scriviamo e lasciamo on line è depositato su server altrui, molte volte senza API efficaci per fare il dump delle nostre conversazioni, insomma, una volta che lanciamo un twit e lo depositiamo nei server del servizio, perdiamo il possesso del nostro contenuto.

E’ vero che tramite feed xml possiamo importare in tempo reale e conservare una copia del nostro lifestream, ma con una installazione di Statusnet nel nostro dominio possiamo avere la piena proprietà dei nostri dati.

Per l’installazione di StatusNet sono necessari:
1)PHP 5.2.3
2)MySQL 5.x
3)Apache2 o Lighttpd
In pratica una semplice installazione LAMP. Inoltre sono richieste le seguenti estensioni di PHP:- Curl – XMLWriter – MySQL – GD – mbstring.
Ora, non mi vorrei sbilanciare, ma chiunque abbia un blog hostato dovrebbe avere tutto il necessario, anche se per un fine tuning sarebbe opportuno avere l’accesso ssh. In alternativa si potrebbe comprare un VPS su Linode o su Amazon con tariffe che partono dai 20$ circa al mese.

La soluzione più conveniente è senza dubbio Dreamhost che con 8.95$ al mese offre uno shared hosting con accesso ssh dalle prestazioni, specialmente lato database, non esaltanti, ma perfettamente adatte al nostro scopo. Dreamhost inoltre fornisce Statunet via 1click install con relativi updates automatici.

Io ho attivato da quasi un mese cpline.net/ping verso il quale faccio affluire tutti i miei status update. Da Cpline Ping tramite Oauth, in tempo reale, lo status update viene pubblicato anche su Twitter e da Twitter viene importato su Friendfeed e a sua volta su Facebook.
Status update flow mockup

La conversazione ― sporadica, il mio social mojo è molto basso ultimamente, segno dell’età che avanza, forse ― si snoda principalmente su Friendfeed che possiede l’interfaccia più efficace per discutere un thread.

Io mi trovo bene e sono sereno con i backup giornalieri automatici da Dreamhost verso Amazon S3. Se vi può interessare posso dedicare un post ad un howto passo-passo per installare Statusnet sotto il vostro dominio. Fatemelo sapere nei commenti, nel caso :-)

Web radio con Amazon EC2

Come forse già sapete, Amazon ha lanciato le nuove micro istanze da 0.02 US$ l’ora che permettono di avere un server virtuale  con 633 MB di Ram e 1 VCPU. Questo ci permette di poter fare delle sperimentazioni senza troppi patemi d’animo.

Quello che segue è un piccolo esperimento per un server webradio Icecast da usare in qualsiasi momento per una diretta radio estemporanea con la possibilità di collegare un discreto numero di ascoltatori contemporaneamente.

Infatti ogni istanza EC2 Amazon dovrebbe poter contare su 250Mbps di banda upstream, il che permette un totale di quasi 1900 ascoltatori a 128Kbps con un costo indicativo di circa 0.15 us$ per Gb. Per un’ora di trasmissione con 2000 ascoltatori dovremmo spendere all’incirca 15 euro. Ci dovremmo stare nelle spese :-)

Andiamo a vedere nel dettaglio come lanciare un’istanza micro di fedora core 8.

Continua a leggere »

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?

Iscriviti

Get every new post delivered to your Inbox.