Dynamic DNS con Duck

Dusck DNS

Dusck DNS

Il DNS Dinamico o DDNS, è una tecnologia che consente di associare un’indirizzo DNS ad un’indirizzo IP dinamico, solitamente un indirizzo IP privato di utenza internet domestica.
Questa funzionalità ci consente di mantenere uno stesso indirizzo pur avendo una connessione con IP variabile, consentendoci quindi di poter accedere da remoto al nostro sistema senza dover utilizzare un’indirizzo IP statico.

Duck DNS è un servizio web gratuito (basato su Amazon EC2) che ci consente di avere il nostro DNS Dinamico correlato al nostro indirizzo IP; una volta creato dovremo impostarlo nel nostro router (nella maggior parte dei router è disponibile questa opzione) , impostando le regole di PortMapping, in maniera tale da consentici l’accesso da remoto al nostro sistema.

Il team The Fan Club (noto per lo sviluppo di Grive Tools il miglior client per Google Drive per Linux) ha creato il Duck DNS Setup, un semplice script che ci consente di impostare correttamente Duck DNS in maniera tale da segnalare eventuali cambiamenti del nostro indirizzo IP.

Duck DNS Setup è disponibile in due versioni, una a riga di comando e l’altra con interfaccia grafica (richiede di avere installato il pacchetto zenity cron e curl sulla nostra distribuzione), inoltre il tool è disponibile anche per sistemi quali Apple Mac OS X e Windows.
Lo script si occupera’ anche di andare ad aggiornare automaticamente il nostro indirizzo IP in Duck DNS ogni 5 minuti.

– INSTALLARE DUCK DNS 
Prima di procedere con l’installazione di Duck DNS Setup dovremo procedere alla creazione di un’account sul sito Duck DNS , e per farlo ci basta collegarci sulla pagina indicata e cliccare in alto su Login in Twitter, Facebook, Reddit o Google. Una volta effettuato il login dovremo creare un nuovo indirizzo correlato al nostro IP, che avra’ una forma del tipo:

http://<nome scelto>.duckdns.org

Una volta creato un’account bastera’ scaricare la versione a riga di comando da QUI ( Duck DNS Setup – Linux/OSX Command Line) o con interfaccia grafica ( Duck DNS Setup – Linux GUI) da questa pagina.

Per la versione di Duck DNS Setup a riga di comando basta estrarre il file .tar.gz e spostare il file duck-setup.sh nella home e da terminale digitare:

chmod +x duck-setup.sh
./duck-setup.sh

Una volta lanciato lo script ci verrà chiesto di inserire l’indirizzo Duck DNS associato al nostro IP (precedentemente creato) e successivamente il lungo codice Token, assegnato sulla pagina di creazione del dominio, come verifica;
al termine ci verrà confermata l’attivazione di Duck DNS sul nostro sistema

Per rimuovere Duck DNS Setup basta digitare:

./duck-setup.sh remove

oppure

./duck-setup-gui.sh remove

e confermiamo la rimozione

Machine e Deep Learning

Machine & Deep Learning

Machine & Deep Learning

Machine Learning

Che cos’è il machine learning?
Letteralmente può essere tradotto come “apprendimento delle macchine” o per meglio dire come “apprendimento automatico”. Per apprendimento si intende quel processo attraverso cui si diventa più abili, precisi e veloci a compiere un certo compito, in modo tale che chi ha appreso a fare qualcosa la possa fare meglio e più velocemente di prima. Per machine si intendono i computer, più precisamente i software e ancora più nello specifico gli algoritmi che sono alla base del funzionamento.

Si tratta quindi di scrivere dei programmi software che siano capaci di analizzare dei dati e, sempre più spesso si tratta di analizzare grandissime quantità di dati, rintracciando al loro interno dei pattern ricorrenti in modo da estrarre automaticamente l’algoritmo necessario per completare il compito assegnato.

Più semplicemente un programma per machine learning apprende dall’esperienza a realizzare un compito e le sue prestazioni migliorano con il tempo per ogni volta in piu’ in cui ripete quel compito.

Un esempio di machine learning 

Nel 2012 gli ingegneri di Google hanno creato un software (in particolare si trattava di una rete neurale che funzionava grazie a 16.000 processori collegati tra loro). Successivamente a questo software sono sono stati mostrati dei video presi da Youtube per tre giorni, ma senza dar loro alcuna indicazione a proposito di cosa fosse contenuto nei video.

Bene, l’esperimento ha dimostrato che il software è stato capace di riconoscere il ripetersi di volti umani e gatti nei frame dei video di Youtube. Se volete saperne di più qui trovate tutti i dettagli di questo esperimento, google_machine_learning.

Deep Learning

Esiste anche una nuova tendenza che si sta sviluppando nel campo dei Big data , risponde al nome di deep learning (traducibile come apprendimento approfondito).

Dietro il nome di deep learning si nascondono una serie di tecniche e tecnologie informatiche, nella fattispecie degli algoritmi di calcolo statistico attinenti alla branca dell’intelligenza artificiale e dell’apprendimento automatico, per l’appunto il machine learning. Questi algoritmi, strutturati in diversi livelli di astrazione, hanno lo scopo di permettere al sistema informatico di comprendere, più o meno, come funziona il cervello umano e come quest’ultimo analizzi e interpreti, ad esempio, il linguaggio o le immagini che gli arrivano dal nervo ottico.
Per fare ciò, i sistemi informatici in grado di portare avanti analisi del tipo deep learning sono basati su vaste reti neurali artificiali in grado di funzionare come i neuroni presenti nel cervello dell’uomo.

Perché Facebook (e gli altri)
Oggi giorno pare che tutti i grandi dell’hi-tech, a partire da Facebook sino a Google, passando per Yahoo! e Microsoft, stiano guardando con parecchia attenzione agli sviluppi che si registrano in questo settore. Investendo parecchi soldi negli istituti di ricerca più avanzati, e il perché è presto detto.
Il deep learning potrebbe (o per meglio dire dovrebbe) migliorare il modo in cui i dispositivi informatici analizzano il linguaggio naturale. Di conseguenza, ne dovrebbe migliorare sensibilmente la comprensione.

Se la strada intrapresa porterà ai risultati sperati, il deep learning dovrebbe permettere alle reti neurali che formano i sistemi informatici di processare i linguaggi naturali così come avviene nel cervello umano. I computer, insomma, potranno capire cosa gli utenti umani scrivano sulla loro bacheca o cosa vogliano cercare realmente; se siano tristi o felici; se l’immagine che hanno appena visualizzato gli sia piaciuta oppure no.
Facebook, Google, Microsoft e Yahoo!, quindi, potrebbero realizzare dei servizi commerciali sempre più approfonditi e precisi, rivendendo questi dati alle agenzie di comunicazione e marketing di tutto il mondo per campagne pubblicitarie sempre più mirate e cucite su misura dei bisogni degli utenti.

Chi vivra’ vedra’ !!!

Programmare pensando da Sistemista

 

linux-python-logoUna domanda che mi faccio da quando lavoro come sistemista e’ : “quale linguaggio di programmazione dovrei imparare ??“; e’ una domanda facile da formulare, che dovrebbe presupporre un’altrettanto facile risposta, ma ahimè non é così semplice, perlomeno non nel mio caso. Certo, i linguaggi di programmazione non mancano ed in giro ci sono dozzine di fonti di ottima qualità, ma penso comunque che per poter fornire un consiglio si dovrebbe sempre poter conoscere bene chi pone la domanda, ossia:

 

  • il suo background è scientifico o umanistico?
  • conosci bene l’inglese? (poiche’ la maggior parte delle fonti che consiglierei sono in inglese)
  • qual’è la tua età? ecc…!

…..insomma sono tanti i fattori da considerare e tutti hanno il loro peso da non sottovalutare.
In tempi non troppo lontani programmare significava conoscere il funzionamento dei computer a basso livello, comprendere a fondo la loro teoria e la loro struttura. Ma oggi è molto diverso. La gran parte dei programmatori (web 3.0) sono orientati alle applicazioni web/cloud ed i vecchi linguaggi macchina, tipo Assembly, li ha solo sentiti nominare a scuola. Questo anche perche’ i linguaggi ad alto livello (Java, Python…) ci permettono di concentrarci sulla soluzione dei problemi (gli algoritmi) delegando al compilatore la creazione delle istruzioni di basso livello.

Certo questa e’ una buona notizia ma, partendo da me stesso, se non fai il programmatore ed un linguaggio di programmazione ti serve per crearti scripts di ottimizzazione dei sistemi , non e’ pensabile dover conoscere 5/6 linguaggi diversi ecco perche’ in campo sistemistico resistono gli ottimi script Bash oppure l’ardimentoso Perl.

Se mi avete seguito e siete almeno parzialmente d’accordo con l’analisi fatta vi ricompenso con lo stesso consiglio che mi sono dato qualche settimana fa: Python.

Non mi voglio dilungare nella presentazione di questo linguaggio di cui credo abbiate per lo meno sentito nominare, le cui caratteristiche principali di funzionalita’, operabilita’, performance ecc… lo rendono tra i migliori da imparare anche per usi che esulano dalla programmazione allo stato puro; per altri dettagli od info potete leggere l’articolo dal seguente URL “caratteristiche del linguaggio Python“.

Quello che voglio segnalare e’ che molto spesso nella grande, a volte troppa, quantita’ di materiale recuperabile, spesso non si trova qualcosa adatto davvero alle nostre esigenze e che renda l’avvicinamento e la comprensione di un nuovo linguaggio facile, senza annoiare.

Pensare da Informatico e’ un libro che svolge bene il suo compito avvicinando i nuovi utenti a questo ottimo linguaggio in modo guidato e lineare proprio perche’ frutto delle esigenze di un’insegnante che voleva spiegare ai propri alunni un nuovo modo di programmare. Il libro originale e’ in inglese ma ne esiste un’ottima versione PDF tradotta in Italiano, questo e’ il link per il download PDF , mentre questo e’ il link per la versione WEB .

La versione originale “How to Think a Computer Scientist ” sottotitolo (Learning with Python) 3rd edizione e’ scritta da [Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers ] .

Buona lettura !

Berlino Startups & Co-Working

coworkingBerlino e’ oggi una delle piu’ importanti capitali d’Europa per tutto cio’ che riguarda e che ruota attorno alle Start-up. Uno dei fattori principali della crescita delle nuove startup sono gli spazi condivisi di lavoro, o per meglio dire i coworking.

Per chi non lo sapesse il coworking è un nuovo stile lavorativo che coinvolge la condivisione di un ambiente di lavoro e di risorse, tra professionisti che fanno lavori anche diversi ma con lo stesso approccio collaborativo.

IL COWORKING CAMBIA IL LAVORO: offrendo la possibilità di abbattere i costi fissi di gestione di un classico ufficio, la flessibilità d’impiego degli spazi e degli strumenti di lavoro, ma soprattutto l’opportunità di creare una (o più) comunità nella quale riconoscersi e dalla quale sentirsi riconosciuti, che abbia come obiettivo una convivenza sociale e professionale.

Alcuni di questi sono ormai leggendari: come il Café St.Oberholz di Rosenthaler Platz – che nei piani superiori offre anche alloggi in affitto e sale conferenze – dove sono nate decine di compagnie, tra cui la rinomata Soundcloud.

Quale miglior cosa che avere una lista dei migliori spazi di condivisione presenti ad oggi a Berlino :

Ha aperto questo Giugno (2014) il Factory Berlin di Bernauer Strasse, un intero palazzo utilizzato come campus tecnologico (analogo alla Sequoia Factory già esistente nella Silicon Valley dal 2008) , finanziato soprattutto da Google attraverso il suo programma dedicato agli imprenditori, Google Entrepeneurs.

Nella struttura sono già operativi Zendesk, Soundcloud e 6Wunderkinder, che saranno raggiunti a breve da Mozilla, Urlist, Flagship, Toast, Showroom e numerose altre compagnie, più o meno affermate. Qui è possibile affittare da scrivanie singole a intere aree, da 2000 metri quadrati in su.

Insomma i prerequisiti ci sono tutti per fare impresa, mancate soltanto voi…!

Messaggistica istantanea

Google plus EmuGoogle compra EMU chat

La messaggistica istantanea è oggi un settore davvero di primaria importanza per i grandi colossi del web, cosi’ se Facebook possiede Messenger e Whatsapp, Google può vantare il servizio Hangouts.

Oltre ai grandi nomi con una base di utenti ben consolidata, esistono tante altre realtà un pò meno conosciute come Emu, recentemente acquisita da Google.

Emu è un’app per la messaggistica istantanea che offre alcune particolari funzioni. Riesce a controllare e analizzare il testo delle conversazioni e offre informazioni relative a ciò che scriviamo; e’ in grado di fornirci gli orari del cinema, cosi’ com’ è in grado di fissare appuntamenti nel calendario, se ne avremo parlato in chat.

L’acquisizione prevede la chiusura del progetto e la rimozione da App Store e Google Play. Il 25 agosto 2014 l’app smetterà di funzionare e le sue funzionalità potranno cosi’ venire integrate nei servizi di Google, e quindi molto probabile che Hangouts implementerà alcune di queste interessanti funzioni di Emu.