Copiare file da locale a un server remoto (shell)

Per copiare velocemente dei file dal server locale ad un server remoto, è possibile usare il tool scp (Secure CoPy), incluso in numerose distribuzioni Linux.

Ad esempio, per copiare un’intera cartella mantenendo intatti i metadati di ultima modifica e accesso ai file, useremo:

scp -rp -P PORTA /CARTELLA_DA_COPIARE [email protected]_SERV_REMOTO:/CARTELLA_DOVE_COPIARE

Sarà molto più veloce e sicuro (non si rischia di perdere chunk o avere problemi con file system che non supportano certi caratteri) rispetto a scaricare tutto sul PC e ricaricarlo via FTP o FTPS.

Scarsità delle risorse?

La complessità che qualifica i nostri tempi, con particolare riferimento alla globalizzazione e allo sviluppo tecnologico, mina alla radice quel principio di scarsità delle risorse che è stato a base dell’operare delle imprese degli esordi del moderno capitalismo industriale.

L’approccio sistemico vitale al governo dell’impresa, pag 512. Golinelli.

Effettuare git-pull contemporanei per repository multipli in una location

Un interessante script che utilizzo per cercare in una directory (in questo caso /var/www/) tutti i repository git e fare un pull multiplo.

source ~/.keychain/$HOSTNAME-sh
find /var/www/ -type d -name .git \
  | xargs -n 1 dirname \
  | sort \
  | while read line; do echo $line && cd $line && git pull; done

La prima riga chiama keychain, uno speciale script bash che evita di dover inserire ogni volta che viene richiesta la chiave privata (generata in precedenza) la passphrase (altrimenti lo script non verrebbe eseguito). Successivamente viene effettuata la ricerca dei repo (tramite la dir .git), se essa ha esito positivo lo script effettua un git pull per ogni occorrenza (tanti pull quanti repo trova).

Se vogliamo effettuare il controllo ad esempio ogni 10 minuti basterà inserirlo in /etc/crontab:

*/10 *   * * *   user    bash ~/scriptname.sh > ~/git.log

Ovviamente al posto di scriptname.sh inserite il nome che avete dato (e controllate la location, la tilde chiama la home dell’utente che metterete al posto di “user”. Il risultato verrà stampato in ~/git.log.

Twitter: autenticazione alle API v1.1 tramite PHP e recupero dati JSON

Entro Marzo 2013 le istanze che si interfacciano alle API di Twitter senza autenticazione OAuth saranno bloccate. Twitter sta infatti spingendo verso l’adozione delle API versione 1.1. Vediamo dunque come utilizzare le nuove API 1.1 per visualizzare un elenco degli ultimi tweet presenti sul nostro profilo.Twitter

Come prima cosa servirà creare una applicazione dal sito per sviluppatori. Riceverete a questo punto le chiavi OAuth (pubblica, privata) e i token di accesso (pubblico, privato).

La prima parte del codice riguarda appunto l’autenticazione ai sistemi di Twitter, dovrete inserire i codici appena ricevuti e salvare il file come twitter_auth.php o qualcosa di simile. Modificare anche il valore del parametro ‘count’ con il numero di tweet che vorrete recuperare (ricordatevi di modificarlo sia nell’array di $oauth, sia in CURLOPT_URL).

A questo punto la parte relativa all’autenticazione è terminata.

Ora dobbiamo recuperare i dati ricevuti dalla risposta in formato JSON (notare il richiamo al file creato in precedenza):

Oltre a visualizzare il testo dei tweet ho inserito in basso quattro link rispettivamente per visualizzare il tweet sul sito ufficiale, rispondere, ritweettare o aggiungerlo ai preferiti.

Non vi resta che giocare con i CSS per abbellire il risultato!

Recuperare le foto di Instagram tramite le API (JSON e PHP)

Cercando in rete mi sono accorto che non esistono guide su come recuperare e visualizzare le foto di un certo profilo o di un determinato tag presenti su Instagram via PHP.
Ecco dunque un piccolo aiuto per chiunque stia cercando di ottenere lo stesso risultato visualizzabile in home page. Ecco l’intero codice, che vedremo di spiegare:

Prima di tutto dovremo impostare i parametri $user_id, $count, $width, $height, rispettivamente l’user id dell’utente di cui prelevare le foto, il numero di elementi e la larghezza e l’altezza da mostrare. Per ottenere l’access token fate riferimento alla guida per gli sviluppatori.Instagram Successivamente dovremo inserire in $cache il percorso dove andrà a finire il file di cache contenente le informazioni recuperate dalle API di Instagram. A questo punto non vi rimarrà che personalizzare il risultato in HTML agendo su $result. Io l’ho impostato in modo da funzionare con Fancybox (plugin che si occupa di creare un effetto di visualizzazione delle immagini con un popup a comparsa). Le informazioni estrapolate dalle API sono: titolo ($value->caption->text), nome del luogo di scatto ($value->location->name), longitudine e latitudine interfacciate con Google Maps ($value->location->longitude/latitude), URL del file ($value->images->low_resolution/standard_resolution->url), data di creazione in formato Unix Timestamp ($value->caption->created_time), convertita in data/ora.
Per visualizzare al posto delle foto di uno specifico utente tutte quelle che contengono un certo tag è necessario sostituire l’indirizzo contenuto in $url in modo che inizi con https://api.instagram.com/v1/tags/XXXX/media/recent (dove XXXX sta per il tag desiderato).
Buon divertimento!

TopServer: server virtuali made in Italy!

Annunciato da poco in beta pubblica, TopServer ̬ il nuovo servizio di Tophost che offre un VPS (Virtual Private Server) del tutto unmanaged. Dopo averlo provato per alcune settimane devo ammettere di esserne rimasto piacevolmente colpito. Lo consiglierei senza remore, ci sto trasferendo tutti i vari siti che gestisco (il trasloco di questo blog Рora ospitato proprio su una macchina virtuale Tophost Рne ̬ la prova)!

Specifiche tecniche e funzionamento

Partiamo dall’offerta:

    TopHost Beta Test

  • TopServer da 512 MB di RAM (43.200 TopCoin al mese)
  • TopServer da 1 GB di RAM (72.000 TopCoin al mese)
  • TopServer da 2 GB di RAM (115.200 TopCoin al mese)
  • (tutti con 20 GB di HDD e 100 Mb/s di banda)

Notiamo qualcosa di particolare, cosa sono i Topcoin? Per attivare un VPS è necessario acquistare un Voucher, dal prezzo di 5,99 euro (IVA esclusa) che corrisponde a 43200 TopCoin e che permetterà dunque di tenere acceso il TopServer di base da 512MB di RAM per un mese (il conteggio dei TopCoin è effettuato al minuto!).

Dopo aver acquistato il voucher possiamo procedere all’attivazione del server, scegliendo una fra le distribuzioni offerte:

  • Debian 6.0
  • Ubuntu 11.10
  • Centos 6.2
  • Ubuntu 12.04

A questo punto il nostro server virtuale (dopo qualche oretta per la creazione) sarà attivo! Dal pannello di controllo possiamo monitorare varie risorse attraverso grafici, utilizzare una console Java per l’accesso al terminale in SSH e comandare operazioni base quali riavvio, stop, spegnimento, ecc.

È inoltre disponibile la possibilità di creare immagini del server virtuale, funzione utile per l’upgrade a scaglioni maggiori di RAM o come backup di sicurezza prima di “interventi” importanti alla vostra macchina.


La mia esperienza

Volendo provare questo servizio come hosting per i miei siti ho scelto la versione base da 512MB con distribuzione Ubuntu 12.04. Dopo aver configurato l’hostname, aver installato Exim4 (per l’invio di mail dal VPS) e altre piccole modifiche “di base” ho iniziato a “fare sul serio”.

Su GitHub ̬ presente uno script (creato da un certo Vlad Ghinea) che permette di installare le ultime versioni di PHP5-FPM, Nginx, MySQL ed APC, scaricando i vari pacchetti dai rispettivi siti ufficiali, compilandoli automaticamente, installandoli e configurandoli (ovviamente poi per prestazioni migliori bisogna ottimizzare le varie configurazioni). Sono comprese anche delle semplici utility web per il monitoraggio dei software e degli script per effettuare gli aggiornamenti in pochi secondi (provato personalmente Рcon successo Рper APC).

Vlad script (PHP, Nginx, MySQL, APC)

Lo script in esecuzione

Successivamente dovrete configurare i vari software, in particolare creare i virtual host su Nginx per ospitare più siti web sulla stessa macchina (puntando i record DNS verso l’IP della vostra macchina TopServer, che offre IPv6 in maniera nativa!), ottimizzare PHP5-FPM (FastCGI Process Manager) e MySQL. Se volete potete installare molti altri software, ad esempio PhpMyAdmin (per gestire i database), vsftpd (per l’accesso FTP/FTPS) e Webmin (pannello di controllo web-based).
Vi prometto a breve una nuova puntata in cui posterò le configurazioni migliori dopo aver effettuato varie prove con configurazioni diverse. Attualmente il mio TopServer ospita circa 6/7 siti web, alcuni con un numero di visite abbastanza importante, e si comporta veramente bene.

RAM TopServer

Il comando free -m mostra lo stato della memoria RAM

P.S.: Ovviamente al posto di Nginx potete installare Apache, personalmente preferisco il primo al secondo perché avendo scelto la configurazione di base ho necessità di utilizzare meno RAM possibile, ed Nginx offre una gestione della RAM nettamente migliore rispetto al più celebre Apache.

Post-PC Era (cloud computing e mobile devices)

È ormai evidente che gli anni che stiamo vivendo rappresentano un periodo di transizione, è in corso una interiorizzazione delle nuove tecnologie, una diffusione orizzontale non solo di nuovi mezzi di comunicazione ma di veri e propri nuovi ambienti. Questi cambiamenti sono così radicali che portano a modificazioni quasi genetiche, trasformazioni dei modi di agire e di pensare, provocati dalle diverse concezioni di tempo, sapere e posizione.

Ormai l’acquisizione di informazioni è un gesto rapido e poco laborioso, con tutte le implicazioni che ciò produce, tra le quali una quantità di informazioni “grezze” inimmaginabile, una condivisione inedita ed un mondo mai così collegato. Tutto questo però comporta anche una diversa visione della concentrazione e della personalità. È più difficile voler imparare un qualcosa quando quelle informazioni sono già disponibili (seppur grezze e, se non studiate, mai interiorizzate e approfondite) potenzialmente nella testa di chiunque.

È diverso il concetto di tempo, basti pensare al cinema, alla musica, alle conversazioni. Ormai i bambini crescono velocemente, l’insegnamento è diverso (la razionalità e la sistematicità della tecnologia ha portato ad una maggiore semplicità di cognizione), le arti sono diverse (appunto musica e cinema per dirne due).

Arriviamo alla posizione. Non ci stupisce più essere un giorno a Roma, l’altro a New York e l’altro ancora a Tokyo. Con tutte (nuovamente) le implicazioni che ciò produce. Mi viene in mente il concetto di viaggio. Possiamo dire che un tempo era proprio il viaggio l’avventura. Grazie all’inglese possiamo tranquillamente chiacchierare con chiunque all’altro capo del mondo e grazie a Skype possiamo visitare casa sua.

È cambiato il mercato del lavoro, con lavori spariti e altri (molti) creati ex nihilo.
Con un’ingegnosa app per iPhone si può diventare milionari in una settimana e con un’idea di piattaforma online per la condivisione di “stati d’animo” in qualche annetto è possibile creare una delle maggiori società quotate in borsa del mondo.

Ma anche le tecnologie – è insito nella loro ragion d’essere – sono in continua evoluzione. E presto dovranno capirlo anche le persone che invece le vedono come una punizione orfica da dover utilizzare e “imparare” per non perdere il posto di lavoro.

Applicando le categorie di posizione, tempo e sapere alle tecnologie è facile rendersi conto dell’evoluzione che esse hanno subito nell’ultimo quinquennio. Le due parole chiave in questo caso sono Cloud Computing e Post-PC Devices, fenomeni che registrano ogni anno incrementi spaventosi. Il primo comporta uno spostamento delle informazioni dal locale al globale, dal PC alla nuvola, rendendo dunque il proprio apparecchio un mero strumento per l’accesso alle proprie informazioni (era già strumento per l’accesso alle informazioni altrui). La categoria dei Post-PC devices non è formata da tablet o smartphone, essa nasce dall’interiorizzazione della tecnologia del PC e cerca di superarla. Le parole chiave sono personalizzazione (ma al contempo una minore identificazione con l’oggetto, non più possessore delle nostre informazioni), mobilità e – ovviamente – connettività.
Le implicazioni in questo caso sono una ancor maggiore informatizzazione globale, un accesso alla rete perenne e un distanziamento dall’oggetto in sé (si pensi alla sincronizzazione delle personalizzazioni!).

Tutta questa velocità nella possibilità di visionare contenuti si scontra però con il limite umano di velocità di cognizione, di formazione ed espressione dei propri pareri. Sebbene queste capacità siano aumentate e si siano velocizzate, è necessario del tempo affinché si riacquisti quella stessa capacità di interiorizzazione dei contenuti ad una velocità maggiore (quella odierna). La saturazione di informazioni comporta una perdita di significato e di importanza delle stesse (non voglio dire che siamo preda dell’angoscia di Kierkegaard, però questo immenso bouquet ci stordisce un po’!). Anche la sempre più rapida possibilità di esprimere pareri con un semplice click porta a mio avviso ad un appiattimento della capacità di esprimere giudizi motivati e ragionati (si pensi ai bottoni di “più” e “meno”, come fossimo a Roma per i gladiatori). E se è vero che questo problema è “a monte” e risiede nella capacità delle persone, prima che degli strumenti, di esprimere giudizi e pareri, sono convinto che gli strumenti (mi vengono in mente i commenti “manichei” nel 99% dei video su YouTube: “è bellissimo”, “fa schifo”) certo non aiutano, alla fine sempre attraverso strumenti le stesse persone capaci di esprimere giudizi motivati hanno appreso come farlo.

Dobbiamo quindi imparare a selezionare e valorizzare alcune informazioni piuttosto che altre e imparare ad esprimere giudizi e creare contenuti a prescindere dallo strumento utilizzato. I Post-PC devices rappresentano il futuro della tecnologia, gli strumenti al contempo di informazione e produzione di contenuti (content creation).

E i computer odierni?
A mio avviso la miglior definizione della cosiddetta “Post-PC Era” (che include dunque anche la morte di supporti e interfacce come i CD/DVD, le porte USB, ecc.) l’ha data Steve Jobs durante la conferenza D8 del 2010:

When we were an agrarian nation, all cars were trucks because that’s what you needed on the farms. But cars eventually became more prevalent is people moved to cities. PCs will be like trucks…they are still going to be around, but there is a transformation coming, and it will make some people uneasy. Is it the iPad? Who knows? Will it be next year or five years from now?

I PC saranno paragonabili a dei “trucks”, ovvero rimarranno per i professionisti (i quali per esigenze di capacità di calcolo ed elaborazione, sicurezza e “dimensioni di file”) dovranno comunque continuare a lavorare in locale e quindi con PC Desktop, DVD/USB, ecc.
Il resto delle persone utilizzerà i dispositivi post-PC, paragonabili ad un’utilitaria (utilizza un camion in città solo chi ha esigenze particolari) per la loro leggerezza e portabilità ma con un potenziale immenso come veicolo di informazioni e multimedialità.

Cloud & Post PC Era

Illustrazione di Sandra Kuan

Governo: trasparenza sui compensi sì.. ma non troppa!

Anche se “operazione trasparenza” significa rendere un qualcosa disponibile in maniera chiara, rapidamente e agevolmente,Robots.txt chi gestisce il sito del Governo ha pensato bene di impedire ai motori di ricerca di indicizzare le pagine relative alla sopracitata “operazione trasparenza” sui compensi di dirigenti pubblici e consulenti tramite una direttiva contenuta nel file robots.txt (cos’è?) .

da governo.it/robots.txt il 13/04/2012:

User-agent: *
Disallow: /Presidenza/operazione_trasparenza/dirigenti/
Disallow: /Presidenza/operazione_trasparenza/consulenti/

Geniacci!

Nativi digitali, hype?

Questa storia dei nativi digitali mi convince veramente poco. Sono certo sia piú un’attidutine alla logica, alla chiarezza, alla semplicità.. cose non iscrivibili solamente ad una generazione. È un fatto trasversale (è indubbio tuttavia che la società odierna sia piú orientata verso modelli di oggettività, riproducibilità e intuitività – magari legati a fattori remunerativi e di convenienza, come la riconducibilità del marchio, il consistent look & feel).

I lati negativi (da dimostrare, che peró non scarterei a priori) potrebbero essere una perdita della fantasia e un ingenuo schematismo. La gabbia dei ragionamenti dettati da rigidità e rigore “scientifico” potrebbe portare alla alienazione e allo scostamento dalla realtà!