Homebridge: controllare da HomeKit device non progettati per la smarthome di Apple

Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of “smart home” devices.

Hey questo non lo avevo visto…. se fa quello che dice è possibile controllare da HomeKit hardware non originariamente progettato per Apple. Scritto in nodeJS, supporta plugin che vengono sviluppati dalla comunità opensource. Vale la pena farci qualche prova.

https://github.com/nfarina/homebridge

L’Ora di Codice

L’Ora di Codice (hour of code) è una campagna di Code.org, organizzazione senza scopo di lucro che ha il fine di incoraggiare le persone, in particolare i giovani e giovanissimi studenti, ad avvicinarsi allo studio dell’informatica. Un progetto teso a dimostrare che la programmazione possa essere un’ attività divertente, della quale tutti, bambini compresi, possono imparare a conoscere le basi.
L’Ora del Codice consiste in una lezione di introduzione all’informatica della durata di un’ora, progettata per togliere il mistero che spesso avvolge la programmazione dei computer e per mostrare che l’informatica non è affatto difficile da capire, chiunque può impararne le basi.
Gli eventi possono essere sempre organizzati, ma la settimana che va dal 7 al 13 dicembre è la Settimana dedicata all’informatica e in questa si concentrano le iniziative di Hour of Code.
Alla base di tutti gli esercizi c’è Scratch il linguaggio di programmazione a blocchi inventato dal MIT.
La tecnologia è un bene troppo prezioso per tenerlo per noi stessi e non farlo conoscere alle nuove generazioni!
Interessati o semplicemente incuriositi? Su https://hourofcode.com/it tutte le informazioni.

VeraCrypt

C’era una volta TrueCrypt. C’era fino a quando gli sviluppatori non hanno deciso di mollarne lo sviluppo e sul sito è comparso il triste messaggio che diceva che l’uso di TrueCrypt non era da considerarsi più sicuro perché il software non sarebbe più stato aggiornato. Ma come spesso succede nei software opensource qualcuno ne ha raccolto l’eredità e ha sviluppato un nuovo software: VeraCrypt partendo dalla versione 7.1a, l’ultima versione disponibile, di TrueCrypt.
Con VeraCrypt è possibile aprire i volumi creati con TrueCrypt e, naturalmente, crearne di nuovi.

BQ e la tecnologia a portata di tutti

Riteniamo che la conoscenza debba essere libera e che l’istruzione venga prima di tutto. Educhiamo alla tecnologia parlando in modo semplice e chiaro dei nostri prodotti

E’ una delle frasi che compare nella sezione “Chi Siamo” del sito della BQ (http://www.bq.com), azienda ch realizza smartphone, tablet, stampanti 3D e kit educativi per insegnare ai ragazzi la programmazione.

In Italia probabilmente l’azienda non è conosciutissima ma lo è decisamente in Spagna, paese di origine dell’azienda nel quale BQ è diventata il terzo produttore di smartphone.

BQ nasce nel 2010, quando un gruppo di 16 ingegneri decide di lanciarsi nel mondo dell’elettronica per progettare e produrre dispositivi: dopo 5 anni BQ conta più di 1.000 dipendenti. Una particolarità? Tutto viene prodotto sul territorio iberico e nulla viene prodotto in China.

Tablet, Smartphone, schede per Maker, tutto viene progettato da zero in Spagna.

Nel catalogo dell’azienda sono presenti kit per la costruzione di robot basati su schede compatibili con Arduino, fra i prossimi kit rilasciati ci sarà Zowi, un robot open source su piattaforma Arduino che può essere usato come base di partenza per imparare sia i fondamenti di elettronica sia la programmazione.

BQ ha realizzato un sistema a blocchi: nessuna riga di codice ma mattoncini da impilare nel browser per generare il programma finale.

Zowi sarà basato su una board compatibile Arduino, una una serie di sensori, di led, di pulsanti e di motori che potranno essere controllati da uno smartphone o da un programma caricato in memoria. Tutti i pezzi saranno intercambiabili, e tramite i progetti online sarà possibile anche stampare nuove teste.

Zowi  verrà messo in commercio a 99 euro inizialmente solo in Spagna e Portogallo: la localizzazione della piattaforma di sviluppo visuale in italiano richiede qualche mese.

Un’ (altra) alternativa a Mail di Apple

Screen Shot 2013-06-13 at 09.02.49

Sempre nella ricerca di alternative a Mail (si lo so è quasi una fissazione, ma proprio il programma di posta elettronica di Apple non lo sopporto!) ho trovato AirMail: client snello e dalle prestazioni elevate.

L’interfaccia grafica è proprio bella, snella e senza troppi fronzoli. Ma tutte le funzionalità che servono non mancano. Il programma è giovane è alla versione 1.03 ma, per lungo tempo, è stato in Beta pubblica. Gli sviluppatori hanno avuto la possibilità di eseguire un test accurato e di raccogliere le idee dai vari utilizzatori sulle funzionalità da inserire.

Le funzioni che servono ci sono tutte: integrazione con Dropbox per l’invio degli allegati, supporto per ogni tipo di casella, integrazione avanzata con Gmail e iCloud…

Diciamo che, usandola, ci si convince che gli sviluppatori abbiano preso molta ispirazione da Sparrow.

E’ a pagamento, ma il prezzo è veramente contenuto: AirMail è disponibile sul Mac Store al costo di 1,79 Euro.

Dati pubblici: gli opendata

opendata

Date un po’ di dati ad un informatico e lo fare felice… Almeno questo è quello che succede a me. Avere una base di dati a disposizione mi fa subito pensare a come poterla usare e quale app(licazione) ci si può costruire sopra.

E questo “sfregolo” compulsivo da pressione di tasti mi è venuto quando sono venuto a conoscenza del progetto di Regione Lombardia sugli opendata che, lo ammetto, mi ha stuzzicato non poco la fantasia.

La pubblica amministrazione produce, raccoglie, elabora e diffonde una grande quantità di informazioni: gran parte dei documenti citati nei giornali, la gestione del territorio e dell’ambiente, molti rapporti tra privati e molte attività economiche si basano su informazioni elaborate dalle PA. C’è una quantità incredibile di dati pronta ad essere utilizzata di cui non si conosce l’esistenza.

Il progetto di Regione Lombardia parte proprio da questo presupposto: rendere disponibili in maniera facile ed immediata dati che, dopo una serie di verifiche, possono essere diffusi dalla Pubblica Amministrazione in un’ottica di riuso, secondo quando previsto dalle vigenti leggi (D. Lgs. 36/06 fra tutti).

Prima che un fatto tecnico, è un fatto di trasparenza e di risparmio. Poter riutilizzare per altri scopi, dati raccolti dalla PA (e quindi con denaro pubblico) è un vantaggio per tutti.

I problemi legati all’acquisizione di dati sono molti, fra i quali un ruolo importante è ricoperto dalla facilità di reperimento degli stessi e dalla possibilità di trattarli in maniera semplice.

Si, perché se anche un dato esiste in qualche archivio al quale è impossibile avere accesso, l’utilità dello stesso è nulla (considerazione ovvia ma da farsi).

Prendendo, probabilmente, spunto da queste e da altre considerazioni è nato il progetto degli opendata. Archivi di dati pubblici facilmente accessibili anche mediante protocolli SOAP/XML/JSON e in alcuni casi scaricabili nei formati XLS, CSV.

Nel caso di Regione Lombardia, il portale per l’accesso ai dati, si raggiunge attraverso l’indirizzo htts://dati.lombardia.it.
Sul portale è possibile trovare tutta la documentazione necessaria, la licenza con la quale i dati vengono distribuiti e le procedure/chiamate da fare per ottenerli nei vari formati.

Volete la lista dei luoghi dove è possibile pagare il bollo auto in lombardia? Eccola in formato JSON https://dati.lombardia.it/api/views/yg2u-75d9/rows.json

Il portale è stato realizzato attraverso l’uso della tecnologia di Socrata, azienda di Seattle specializzata nella pubblicazione di dati pubblici.

La licenza di distribuzione è la IOL: Italian Open Data License, creata appositamente per questo scopo. E’ possibile vederne i termini qui http://www.dati.gov.it/iodl/2.0/

Per incentivare l’uso dei dati pubblici è stato bandito un concorso: “OpenApp Lombardia” dedicato ai maggiorenni under 35 che desiderano mettersi in gioco realizzando web app o app per dispositivi mobili utilizzando i dati aperti. Le premesse sono ottime: la fase sperimentale del concorso si è conclusa recentemente e sono state ammesse 111 applicazioni.

Il caso della Regione Lombardia non è isolato. Gli opendata sono una realtà in continua espansione anche a livello nazionale: dati.gov.it è il portale nazionale di accesso. Il numero di basi dati messe a disposizione è in aumento e l’attenzione verso il progetto è alta. Stiamo a vedere.

Una zuppa….fantastica (a beautiful soup)

Dovrei aprire una sezione del blog che si chiama ‘il software salva…’ si, proprio quello!
Scenario: script in Python che prende i dati da un database, li normalizza e li inserisce nel backend di un’applicazione per mobile. I dati nel DB di provenienza sono scritti da un CMS, fra le altre cose sono farciti di tag HTML. Che fare? Prima della normalizzazione bisogna togliere tutti i tag. Una breve ricerca su google ed ecco trovata Beautiful Soup una classe Python che serve a fare il parsing di HTML e XML.
“Rubo” gli esempi della documentazione per dare l’idea di quanto potente sia. Prendiamo del testo con tag HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)

html_doc = """
<html><head><title>The Dormouse's story</title></head>

<p class="title"><b>The Dormouse's story</b></p>

<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>

<p class="story">...</p>
"""

Vogliamo estrarre tutti gli anchor che contiene? Ecco come:

1
2
3
4
soup.find_all('a')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

Vogliamo i soli link? Ecco come:

1
2
3
4
5
for link in soup.find_all('a'):
    print(link.get('href'))
# http://example.com/elsie
# http://example.com/lacie
# http://example.com/tillie

E, alla fine, ecco il mio caso: vogliamo togliere tutti i tag HTML? Ecco come:

1
2
3
4
5
6
7
8
9
10
11
12
print(soup.get_text())
# The Dormouse's story
#
# The Dormouse's story
#
# Once upon a time there were three little sisters; and their names were
# Elsie,
# Lacie and
# Tillie;
# and they lived at the bottom of a well.
#
# ...

Ma fa solo questo? No, fa molto di più, basta dare un’occhiata al sito per accorgersene.

Arduino in the cloud!

La mania del cloud pervade anche gli ambienti più diversi!
Anche Arduino ha il suo IDE in cloud (anche se in versione beta).
Codebander, questo il nome del progetto, è una webapp scritta in HTML 5 + javascript.

Maggiori informazioni qui: http://arduino.cc/blog/2012/07/04/programming-arduino-on-the-cloud-codebender/

comandi drush

Post veloce.
Ecco una lista dei comandi di drush che uso più frequentemente con la relativa spiegazione

Eseguire il dump del DB:

1
drush sql-dump > dump.sql

Svuota tutte le cache di Drupal

1
drush cc all

Esegue l’update dei moduli installati

1
drush up

Scarica la nuova versione di drush e lo mette nella home dell’utente fizban (crea in automatico la directory drush)

1
drush dl drush --destination=/home/fizban/

Uninstall di un modulo

1
drush pm-uninstall media_internet

Esegue le operazioni di cron

1
drush --root=/directory/del/sito --uri=www.ilsito.it --quiet cron

Che, se messo nel crontab diventa

1
10 * * * * /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin COLUMNS=72 /usr/local/drush/drush --root=/directory/del/sito --uri=www.ilsito.it --quiet cron

Personal cloud con ownCloud

All’idea di cloud ormai ci abbiamo fatto l’abitudine. L’opera di convincimento di Google è servita a far accettare questa modalità di archiviazione dei dati e il conseguente nuovo modo di lavoro.

Nel 1999 stipulai il mio primo abbonamento flat, all’epoca utilizzando ISDN. L’idea di poter aver una macchina mia sempre disponibile su internet mi spinse a cambiare un po’ la logica fino ad allora utilizzata. Trasferivo le mie email dal provider al mio “server” con fetchmail e le consultavo con Mutt facendo SSH sulla macchina.
DynDNS risolveva egregiamente il problema di non avere un IP statico.

La configurazione di Samba e di OpenVPN (all’epoca OpenSwam) mi permise, di fatto, di avere un disco fisso su internet e accessibile in modo sicuro.

Non mi vedo come un precursore dei tempi.

Per la cronaca la macchina oggi è spenta e tutti i servizi li erogo in parte da un VPS, ma nella stragrande maggioranza utilizzando i servizi messi a disposizione dai vari Google ed affini.

Il problema di utilizzare servizi in cloud, soprattutto in ambito aziendale, spesso ci fa scontrare con l’accettazione di contratti di servizio che non sempre sono conformi alle policy di sicurezza delle aziende.
Il cloud spesso si scontra con una normativa troppo restrittiva che impone agli IT manager una conservazione dei dati che con il cloud non ha nulla a che fare.

La risposta a questo tipo di problema non si è fatta attendere e sia la comunità opensource, sia aziende private hanno iniziato a proporre soluzioni per il personal cloud. Sistemi software che danno la stessa flessibilità del cloud “tradizionale”, ma che possono essere installati su propri server.

Chiaramente l’infrastruttura sul quale l’applicativo verrà installata dovrà essere adeguata ai livelli di servizio cercati, molto banalmente installare il software sul PC recuperato dalla scrivania della nostra segretaria e messo su internet con l’ADSL a 640k non è esattamente la risposta….

Orami i contratti di Virtual Private Server si trovano a qualsiasi prezzo con qualsiasi caratteristica: è facile trovare quello che potrebbe fare al caso nostro.

La comunità opensource ha iniziato a produrre una quantità di suite Web+Mobile che, una volta installate, erogano servizi di condivisione documenti, contatti ecc che nulla hanno a che invidiare ai vari servizi offerti dai giganti Google e Apple.

Chiaramente le differenze ci sono: per installare un servizio di personal cloud è necessario:

  1. avere un server virtuale adeguatamente dimensionato
  2. avere le conoscenze necessarie per mantenere funzionante il servizio
  3. avere il tempo necessario per fare manutenzione sul proprio server

Non sono richieste che rendono il progetto infattibile, ma è necessario valutare esattamente quali sono i limit del nostro progetto per poi non trovarsi ad avere problemi una volta che questo entra in produzione.

E’ necessario capire quanto importante sia che i nostri dati non siano acceduti dai fornitori dei vari servizi, e quante competenze e tempo possiamo mettere in gioco per mantenere la struttura.
E’ chiaro che se devo creare un cloud per condividere i progetti strategici della mia azienda, non penserò minimamente di utilizzare sistemi quali Google, Dropbox ed affini. Ma se devo crearne uno per la condivisione delle fotografie fatte durante le vacanze posso permettermi che un robot programmato dai suddetti signori faccia video analisi sulle mie immagini.

La paura innata che l’italiano medio ha che Google rubi i suoi dati e i suoi numi di telefono è abbastanza infondata. Un’occhiata alle condizioni generali di servizio ci farà capire che possiamo dormire sonni tranquilli.

Se le valutazioni di cui parlavo poc’anzi ci fanno optare per l’acquisto di un server (fisico o reale che sia) ecco una possibile soluzione opensource per il personal cloud: ownCloud

Installazione

ownCloud è un’applicazione LAMP. In distribuzioni come Ubuntu per installarlo è sufficiente usare il più classico

1
apt-get install owncloud

Per le distribuzioni, per le quali non sono stati predisposti pacchetti ad-hoc, dal sito del prodotto è possibile scaricare gli script necessari per eseguirne l’installazione. L’operazione può essere fatta anche a mano: è necessario prestare attenzione alla congifurazione dei permessi per la lettura/scrittura da parte del server web in alcune directory.

Finita l’installazione, collegandosi con un browser alla propria macchina, si dovrebbe vedere la schermata proposta da ownCloud utile per la creazione di un account di amministrazione.

File, Musica, Contatti, Calendario e altro ancora

Finita la parte di setup è il momento di provare ownCloud.
Di default sono presenti applicazioni quali:

  • File – per depositare e condividere file con gli utenti della stessa installazione di ownCloud o pubblicamente
  • Musica – per ascoltare la propria musica se vari dispositivi, in streaming dal proprio server.
  • Contatti – Per accedere (mediante username e password) alla propria rubrica contatti
  • Calendario – Per avere sempre sotto controllo i propri impegni
  • Foto – per la condivisione di fotografie

L’uso di protocolli quali WebDav, CalDav e CardDav permette di accedere ai vari dati utilizzando dispositivi diversi e client diversi dal browser del PC.

Esistono altre applicazioni che possono essere aggiunte a ownCloud, la lista e la descrizione è accessibile da http://apps.owncloud.com. Data la gioventù del prodotto gli applicativi non sono stabili e la percezione è che siano ancora molto acerbe, c’è spazio per migliorare.

Per alcuni versi ownCloud è già un prodotto pienamente utilizzabile (siamo alla versione 4 del software) per altri campi di applicazione, forse, è necessario aspettare che la comunità ne continui lo sviluppo.
L’ecosistema sembra buono: blog, forum e quant’altro ne parlano molto e in maniera positiva.

Accanto alla versione ‘community’ sono comparse le versioni: business, enterprise e service provider. Il prodotto è lo stesso ma viene fornito supporto commerciale dai vari partner.
Fra le novità della versione 4 (quella attualmente distribuita) l’aggiunta di un ‘application store’ per aggiungere nuove applicazioni al cloud. Scelta vincente, quest’ultima, che permette agli sviluppatori di scrivere proprie applicazioni ed accrescere le funzionalità del prodotto, secondo uno schema di vendita ben consolidato.

Debole, ma in netta crescita, il supporto per mobile.
Apprezzabile la possibilità di utilizzare LDAP per l’autenticazione degli utenti.