Pagine

giovedì 30 dicembre 2010

SQLite, libreria SQL in 200kb

Premessa

Qualche tempo fa, sempre su questo blog, ho scritto un articolo sui sistemi di database.
Tra i software citati, nel paragrafo denominato "librerie di database" ho fatto riferimento a sqlite.
L'articolo di oggi vuole approfondire la conoscenza di questo eccellente sistema ed in particolare fare una veloce panoramica che possa far venir voglia di utilizzarlo.

Cosa è sqlite e quando usarlo

SQLite è una libreria che permette di gestire dei database anche molto corposi (fino a 2Tb circa!!!) con molti accessi contemporanei in lettura in maniera rapida.
Esso non necessita di alcuna installazione (basta scaricarlo e si può iniziare ad usarlo!!) e non avvia alcun servizio.
Nonostante questo, può essere utilizzato sia in ambiente Linux, Windows e Mac, gestisce le transazioni, l'utilizzo del linguaggio SQL, delle viste e dei triggers.

Nella prima pagina del sito di riferimento, la cosa che colpisce subito sono gli sponsor che spingono all'uso di questo sistema. Sono aziende del calibro di Oracle, Symbian, Mozilla, Bloomberg e Adobe!

La licenza è decisamente molto aperta e permette la libera copia, modifica, pubblicazione, utilizzo e rivendita sia del codice sia della compilazione per qualsiasi utilizzo commerciale o meno.

SQLite crea un file dal quale legge e scrive direttamente i dati senza creare thread separati gestendo le code in maniera estremamente efficiente.
Questo permette di creare un database su un singolo file, portarlo in giro con una chiavetta o spedirlo via posta ad un amico in spazi estremamente contenuti.
Le dimensioni della libreria, infatti, variano dai 100kb ai 300kb (a seconda del sistema) e la memorizzazione dei dati è davvero contenuta.

Per questi motivi SQLite è particolarmente utile nell'utilizzo all'interno di cellulari, lettori MP3 e sistemi embedded in generale. Si presta ad immagazzinare i dati per siti web, analisi di dati e gestione di demo o piccoli database personali o aziendali.
Al contrario non può essere utilizzato per database che richiedono alti carichi di lettura/scrittura, basi di dati superiori ai 2Tb (!!) o applicazioni che necessitano della tecnologia client/server.

Interfaccia per l'uso di SQLite

SQLite non è dotato nativamente di interfaccia grafica per la gestione dei dati.
Esso fornisce una shell interattiva stile prompt di MSDOS dove è possibile inserire i comandi SQL come in questo esempio o dei comandi propri per l'impaginazione dei dati.
Intorno a questo sistema, però, sono sorte moltissime interfacce di terze parti, alcune opensource, altre proprietarie.
In una pagina del sito di riferimento c'è una lista completa di software tra i quali si può scegliere.
Personalmente utilizzo SQLiteAdministrator e SQLiteManager anche se il mio preferito è un plugin per Firefox SQLite Manager AddOn.
Tutti questi software permettono di gestire i dati di sqlite in maniera grafica se proprio non ci si vuole cimentare con la shell ed il linguaggio SQL.

Api e linguaggi di programmazione

La cosa più impressionante di sqlite è la quantità di linguaggi di programmazione che mettono a disposizione la possibilità di gestire un database con questo sistema.
Python, C++, Java, php, perl, .NET sono solo alcuni di questi.
Si può trovare l'elenco completo in questa pagina: SQLite Wrappers.
Come se non bastasse, sqlite mette a disposizione una shell non interattiva.
Tramite il proprio eseguibile, ifnatti, è possibile lanciare dei comandi anche dal prompt di MSDOS o dalla shell di Linux che creano tabelle, database, inseriscono dati e quant'altro: tutto ciò rendeo questo sistema estremamente utile anche in piccoli script di sistema per il logging.

Conclusioni

Grazie alla sua estrema duttilità, alle sue dimensioni contenute, alla sua licenza permissiva ed ai linguaggi che ne permettono l'utilizzo, SQLite è il candidato ideale per lo sviluppo di molteplici progetti siano essi personali sia professionali.
Nei prossimi articoli copriremo diversi aspetti di questo software.
Per il momento non rimane che scaricarlo ed iniziare ad utilizzarlo!

Emozioni informatiche e Duke Nukem 3D

Quando ero giovine, alla tenera età di 16 anni anelavo senza limiti al motorino.
I miei genitori, come tutti i genitori che non hanno avuto esperienze con le due ruote, in risposta alle mie spasmodiche preghiere... mi regalarono il mio primo computer...

Iniziò allora la mia avventura nel mondo dell'informatica e a 17 anni fui iniziato da alcuni compagni di classe ai giochi per computer grazie a Duke Nukem 3D.
Era uno sparatutto emozionante ed all'avanguardia per l'epoca che mi incollò per ore ed ore davanti allo schermo sia di giorno sia di notte.

All'epoca non esistevano le console.
Non si parlava ancora della guerra tra Wii, PS, XBOX e non esistevano le portatili PSP e DS...
Era l'epoca dei PC ed io ero alle prese con il mio primo computer, un vecchio i386SX (senza coprocessore matematico) con un monitor da 14'' che emetteva più radiazioni di una centrale nucleare a pieno regime ed un modem esterno da 14.4Kb/s che si connetteva solo alle BBS ed era costato più dell'autoradio di mio padre.
Il sistema operativo era il DOS con la sua suddivisione della memoria RAM in memoria bassa ed alta e si affacciava il windows 3.0 con le sue icone allegramente scopiazzate dall'Amiga.

Su questo computer passai molte ore liete in compagnia di Duke Nukem 3D che mi permise, inconsapevolmente, di conoscere meglio il computer.
Duke Nukem girava in memoria bassa ma, tipicamente, il DOS utilizzava questo spazio per caricare una serie di programmi residenti in memoria utili alla gestione del PC.
Per questo motivo iniziai a studiare il sistema operativo, a conoscere i file di configurazione, a smanettare con l'help in linea e tutto per liberare la memoria bassa al fine di giocare...
In questo modo conobbi l'autoexec.bat ed il config.sys e tutto ciò mi incuriosì non poco.
Il passaggio successivo furono i primi passi verso il basic e gli script di configurazione automatica che mi permettevano il caricamento in fase di boot dei programmi a seconda dell'uso che dovevo fare del computer.

Successivamente insieme a due amici decidemmo di usare Duke Nukem per giocare in rete.
I computer non erano portatili e quindi si partiva da casa caricandosi a spalle il case, il monitor formato padellone e cavi ovunque.
Si organizzavano le serate/weekend a casa di uno o dell'altro partendo il sabato sera, tirando fino a tardi, e a volte si dormiva nella stessa casa per ripartire con la domenica ludica...

Router, cavi di rete, switch? All'epoca non ne conoscevamo l'esistenza o forse proprio non esistevano o probabilmente costavano troppo perchè potessimo prenderli in considerazione ed allora via di cavo seriale per connettere due PC tra di loro.
Ma solo due per volta ed il terzo, a rotazione, stava a guardare :-)
Ecco la nostra "rete".
La connessione, però, nonostante i computer fossero solo due per volta era lentissima e dopo nottate a cercar di capire quale potesse essere il problema (internet non c'era e noi avevamo 17 anni!!), scoprimmo che la seriale è intrinsecamente lenta per questo genere di giochi che necessitano lo scambio di molte informazioni al secondo.

Decidemmo quindi di passare alla porta parallela ed anche qui le serate passate insieme per far dialogare i computer non si contano...
Tra coca cola, riavvii, perplessità varie riuscimmo anche in questa impresa: e si parla di windows 3.0!!
L'emozione provata quando i due PC iniziarono a parlarsi è ancora viva dentro di me.

Uno dei due miei amici, però, aveva un 486DX (con coprocessore matematico), un mostro di un altro pianeta rispetto al mio povero i386SX che soffriva di potenza di calcolo quando doveva elaborare oltre alla grafica anche la connessione.
Un altro computer costava troppo (soprattutto all'epoca e dato il fatto che i soldi erano dei genitori e non miei...) ma ero intenzionato a giocare ad armi pari.
Per questo motivo iniziai a comprendere cosa fosse una scheda madre, un coprocessore matematico, la RAM e tutte ste cosette...
Ipotecando (presso i miei genitori) la paghetta dei successivi 6 mesi comprai, infine, un coprocessore e lo saldai sulla scheda madre insieme ad un amico perito (tra fioretti e preghiere rivolte a San Circuito che non mi facesse bruciare nulla....) e cambiai la memoria RAM aggiungendo un banco da 2Mb (!!!) duplicando la precedente RAM.

Finalmente ero operativo e le serate si fecero molto più animate tra urla di gioia quando si vinceva e i fischi quando si perdeva, tra appostamenti virtuali e battaglie all'ultimo sangue con pugnali, bazooka, mitragliette e armi speciali!

Se siete arrivati fino a qui a leggere, probabilmente vi starete chiedendo il motivo di questo post...
Tutti questi ricordi sono venuti fuori quando ho letto, in questi giorni del porting del gioco denominato Duke Nukem 3D su Linux...
Mi son tornate alla mente le ore passare a fare i miei primi abbozzi di hacking, le ore di gioco davanti al monitor, i giorni insieme agli amici a fare le scoperte nel mondo dell'informatica che mi hanno condotto a utilizzare questi strumenti nella vita di tutti i giorni e nel mio lavoro.

Insomma.... leggendo questo articolo mi sono tornate vecchie emozioni alla mente... emozioni informatiche incomprensibili e forse deprecabili da chi non ha vissuto le medesime esperienze ma pur sempre emozioni!

mercoledì 13 ottobre 2010

Sistemi di Database

Premessa

I Database sono da sempre la mia passione.

Un database è, citando wikipedia, "un archivio strutturato in modo tale da consentire l'accesso e la gestione dei dati stessi (l'inserimento, la ricerca, la cancellazione ed il loro aggiornamento) da parte di particolari applicazioni software ad essi dedicate. Il database è un insieme di informazioni, di dati che vengono suddivisi per argomenti in ordine logico (tabelle) e poi tali argomenti vengono suddivisi per categorie (campi)".

In poche parole si identifica con questo termine una serie di dati immagazzinati in un computer: per fare degli esempi, è un database dalla semplice rubrica telefonica alla gestione di un magazzino, l'elenco delle fatture, l'elenco dei clienti di un hotel, le informazioni sui passaggi di un automobilista sotto le barriere telepass.... e così via dicendo.
Si può dire che il nostro mondo ormai non può più fare a meno dei sistemi di database!

Negli anni il concetto di database è stato ampliato e sviluppato in categorie di sistemi software che consentono la creazione, la modifica e la gestione in genere di database. Questi sistemi vengono chiamati Database Management System (DBMS).

Storia della organizzazione dei dati

Come risulta ovvio dalla premessa, le tecnologie che si sono sviluppate con gli anni dietro il concetto di database sono davvero molte.
Il primo problema fu trovare un sistema per organizzare le informazioni.

Inizialmente le applicazioni erano piuttosto semplici ed accedevano direttamente ai dati immagazzinati sul disco fisso secondo una logica pensata dal programmatore. Ovviamente ogni programmatore era libero di organizzare le informazioni come meglio credeva e questo creava molta etereogeneità e confusione nella gestione per la mancanza di standard.

Ben presto nacquero i primi sistemi di database semplici. Il primo in assoluto fu dbm creato dalla AT&T che supportava una struttura molto semplice sebbene altrettanto funzionale..

Tali strutture, però, crebbero in complessità in modo esponenziale e con essa il numero di persone che vi accedevano.
L'accesso diretto ai dati si rivelò presto carente e nacquero i DBMS "Database Managment System" ovvero sistemi che vennerò adibiti alla scrittura/lettura/modifica dei dati sul disco su richiesta di una o più applicazioni esterne.

Le strutture nell'organizzazione dei dati utilizzate furono diverse e si sono evolute nel tempo [fonte wikipedia]:
  1. gerarchica (rappresentabile tramite un albero e risalente agli anni sessanta),
  2. reticolare (rappresentabile tramite un grafo e risalente agli anni 70),
  3. relazionale (attualmente il più diffuso, rappresentabile mediante tabelle e relazioni tra esse e risalente agli anni settanta),
  4. ad oggetti (estensione alle basi di dati del paradigma "Object Oriented", tipico della programmazione a oggetti e risalente agli anni ottanta),
  5. semantica (rappresentabile con un grafo relazionale all'inizio del 2000).
Insieme alle strutture nacquero anche i linguaggi adibiti alla gestione delle stesse.
Senza dubbio uno dei linguaggi più conosciuti e noti è lo "Struttured Query Language" SQL.

Server di database, applicazioni database, librerie database

I sistemi di database ad oggi sono veramente molti.
La scelta della tipologia da adottare si basa sullo studio delle caratteristiche del sistema:
  • numero di utenti che deve supportare in lettura/scrittura,
  • numero di interrogazioni che avvengono contemporaneamente,
  • licenza utilizzata dal fornitore del sistema,
  • prezzo del sistema (nel caso di licenze proprietarie),
  • linguaggi che supportano il sistema,
  • richiesta o meno di personale specializzato,
  • esistenza o meno di applicazioni che sfruttano il sistema.
Queste caratteristiche devono esser prese in considerazione nel momento in cui si sceglie un sistema anzichè un altro. L'errore che spesso si commette, infatti è di comprare o comunque utilizzare un sistema sovradimensionato rispetto le proprie esigenze.

Tipicamente le tipologie di database ad oggi si dividono in tre grandi categorie:
  1. librerie di database: sono singole librerie supportate da pochi o tanti linguaggi ed applicazioni. Di solito si possono scaricare gratuitamente da internet oppure le si può trovare nativamente in alcune applicazioni.
    Nella maggior parte dei casi richiedono un carico in scrittura bassissimo (uno o due accessi contemporanei) sebbene possano spesso sopportare molte letture contemporanee. Estremamente agili e veloci, sono però carenti dal punto di vista della sicurezza e delle funzionalità.
    Esempi:
    • sqlite: un progetto davvero interessante, integrato in centinaia di applicazioni ed utilizzato da "grandi nomi" quali Mozilla, Symbian ed Adobe. E' un progetto opensource.
    • dbm: una delle prime tecnologie pre-relazionali
  2. applicazioni personali/ufficio: sono applicazioni che includono, oltre la gestione dei dati, anche un sistema di interfaccia, reportistica ed interrogazione molto variegato. Solitamente vengono utilizzati per piccoli database (qualche milione di righe al massimo) e piccoli carichi in lettura (10 o 20 al massimo) e scrittura (5 o 10 contemporanei). Hanno il vantaggio di integrare molti strumenti in un unico software sebbene la gestione dei dati lasci solitamente a desiderare. Questo permette, a fronte di un piccolo investimento, la possibilità di gestire piccoli basi dati in maniera estremamente efficiente.
    Esempi:
    • MS Access: senza dubbio è l'applicazione più interessante in questo campo. Estremamente completa, integra un sistema di gestione dei dati che, sebbene sia poco efficente, viene affiancata da strumenti di creazione di maschere e report.
      Tutto ciò da la possibilità di progettare un'applicazione indipendente e un sistema di reportistica estremamente interessante.
    • OpenOffice Base: software opensource molto interessante. Sebbene sia nato per competere con MS Access, ad oggi sembra essere ancora molto lontano dal suo antangonista. E' comunque un progetto da tenere sotto occhio perchè promette bene.
  3. server database: sono applicazioni solitamente più articolare che integrano funzionalità avanzate (come i trigger o le stored procedure) e consentono l'accesso di centinaia se non milioni di accessi in lettura/scrittura contemporanei.
    Esempi:
    • Fascia alta: Oracle Db ed IBM AS400 sono tra i sistemi più performanti, completi, professionali che ci siano sul mercato. Sfortunatamente sono anche complessi (richiedono amministratori competenti e specializzati) e piuttosto costosi.
    • Fascia medio/bassa: MS SQL Server, Postgres SQL, MySQL sono tre ottimi sistemi. Il primo proprietario mentre gli altri due open source. Tipicamente più semplici da utilizzare (sebbene una certa competenza sia auspicabile) sono l'ideale per la piccola/media impresa ma anche per il privato che vuole sviluppare una applicazione sicura con sistemi di backup efficienti.

Conclusioni

Da questo articolo si evince che la scelta disponibile nell'utilizzo di un sistema di database è veramente ampia.
Ci sono sistemi per ogni esigenza.
Se si vuole creare una piccola rubrica o la gestione di un magazzino o della fatturazione di un piccolo ufficio è possibile utilizzare MS Access.
Se si desidera creare un negozio online dove una o due persone aggiungono i prodotti e decine di persone li visionano quotidianamente si può scegliere sqlite o Mysql.
Per applicazioni aziendali in società medio/grandi (400-2000 dipendenti) è auspicabile scegliere Postgres o SQLserver.
Se al contrario si desidera supportare operativamente una grande struttura, una banca o una grossa fabbrica, la scelta obbligata ricadrà su Oracle o As400.

Nei prossimi articoli scenderò un po' nel particolare nel favoloso mondo dei database ed in particolare mi dilungerò sulla mia ultima passione: sqlite!

giovedì 7 ottobre 2010

twit4followers e accresci i tuoi followers Twitter

Premessa

Ho già parlato di Twitter questo anno in un articolo piuttosto articolato.
Successivamente ho anche raccontato come fare a collegarsi ad un account twitter tramite python.
In generale sono tantissimi i servizi e le API che si interfacciano con Twitter ma ieri, cercando informazioni sul web, mi sono imbattuto su qualcosa di davvero inaspettato....

twit4followers

Una delle preoccupazioni maggiori di alcuni utilizzatori di Twitter è quella di avere un elevato numero di "followers" ovvero di persone che seguono il proprio account.
Solitamente questo è sinonimo di "popolarità".
Ovviamente più i contenuti della tua pagina twitter sono interessanti maggiore sarà il numero dei tuoi followers...
Ma cosa succede se pubblichi materiale interessante e le persone sembrano rimanere impassibili e quindi non ti seguono?
E cosa dire, ancora, se la tua mania di popolarità sembra essere irriducibile nonostante i contenuti non ne siano all'altezza?
Ebbene, ci ha pensato twit4followers: un servizio che, a pagamento, ti assicura da un minimo di 100 followers (a $5) fino ad un massimo di 10.000 followers (a $450!!).
Non c'è che dire... internet offre davvero tante possibilità di guadagno :-)
Quello che mi chiedo è se esiste davvero qualcuno che sia disposto a sborsare anche solo 50$ per avere più followers.
Nel frattempo, se non sapete cosa fare, abbonatevi al mio tweet :-D

lunedì 4 ottobre 2010

Xmarks addio

Nell'agosto del 2009, l'anno scorso, pubblicai un articolo dove parlavo dei plugin di Firefox e, al primo posto, citavo xmarks.
Oggi, facendo l'aggiornamento periodico del mio browser preferito, mi appare una pagina nella quale si viene avvertiti che xmarks è un progetto che verrà abbandonato anche se continuerà a funzionare fino a metà gennaio 2011.
Nella medesima pagina si legge che in sua vece si può usare Firefox Sync, un servizio che sincronizza i bookmarks, le password e la cronologia.
Se si desidera avere un qualcosa in più, viene consigliato il servizio EverNote.
Non resta che disinstallare l'utilissimo Xmarks e provare uno dei due se non entrambi i servizi.

martedì 27 luglio 2010

Barcode QR 2D

Barcode o Codici a barre

I codici a barre nascono nel 1948 all'università di Drexel con lo scopo di automatizzare le operazioni di cassa in una catena di prodotti alimentari.
Oggi sono adottati in tutti i supermercati, nelle edicole, nei negozi di elettronica ed in generale in qualsiasi attività che necessiti della catalogazione di oggetti, della gestione di un magazzino, carico/scarico merci e quant'altro.

Questi codici hanno goduto di una enorme diffusione grazie soprattutto alla intrinseca duttilità, alla facilità di lettura da parte dei lettori ottici e quindi da parte di un computer e alla capacità di essere stampati in spazi molto ristretti.
Essi, però, hanno un limite piuttosto importante: la quantità di dati che può immagazzinare è alquanto limitata.
Un codice a barre, infatti, può rappresentare una parola o un numero ma non un intera frase o un indirizzo web o, ancora, un testo.

Esistono diversi "standard" in commercio. In Italia tra i più diffusi ci sono l'EAN ed il Farmacode.


Codici a barre 2D QR

Nel 1994 la società giapponese Denso-Wave ha inventato un codice a barre a matrice e quindi in due dimensioni come la figura qui a fianco. Questo tipo di codici possono contenere molte più informazioni rispetto i codici a barre tradizionali.
Nel 2000 la società rilasciò con licenza libera il codice QR e questo permise a questo standard di diventare sempre più diffuso.
Con il proliferare di cellulari smartphone e di palmari dotati di telecamere sono nate molte applicazioni per la lettura dei codici QR su tali apparecchi.
In questo modo si possono memorizzare informazioni sul proprio cellulare in modo molto veloce ed agevole quali, ad esempio, ad una VCARD (lo standard per i contatti nella rubrica), ad un indirizzo internet, ad un testo e molto altro ancora: basta puntare il codice a barre e il cellulare lo riconosce automaticamente e propone il salvataggio della lettura nella applicazione corretta.


Applicazioni

Esistono molte applicazioni utili a generare e leggere codici a barre QR.
In particolare, dato che adoro i cellulari Nokia serie N, voglio proporvi alcune informazioni che gravitano intorno a questo mondo.
Crea un codice QR con il sito mobilcodes di Nokia. In questa pagina puoi scegliere se generare un link, un testo o una VCARD e il sito, oltre a generare il codice richiesto fornisce anche un URL da collegare sul proprio sito o blog come l'immagine riportata sopra da me.
Scarica una applicazione seguendo uno dei link dal sito mobilcodes di Nokia. Personalmente mi trovo molto bene con I-nigma Reader ma ho sentito parlare bene anche degli altri software.


Conclusioni

Negli ultimi anni questi codici stanno davvero spopolando. Alcuni cartelloni pubblicitari su strada o sui mezzi di trasporto e campagne di marketing espongono codici 2D.
Allo SMAU 2010 erano un ingrediente fisso in quasi tutti gli stand e mi è anche capitato di vederli sulle tovagliette personalizzate di alcuni bar della mia città.
Penso che nei prossimi anni avranno una diffusione sempre maggiore ad oggi limitata solo dalla gioventù di questo standard che decreta ancora poca conoscenza da parte della maggior parte degli utenti.

mercoledì 21 luglio 2010

Twitter e python

Premessa

Twitter è un servizio di social network e microblogging del quale ho parlato in un mio precedente post. Un aspetto molto interessante di questo servizio è la possibilità di poter aggiornare il proprio profilo in diversi modi: si può utilizzare direttamente il sito web oppure il proprio cellulare tramite SMS.
Twitter però mette a disposizione delle API ("applications programming interface" ovvero "interfaccia alla programmazione di applicazioni" Ndr.) che permettono di sviluppare applicazioni con la capacità di accedere al proprio profilo o di integrare questa funzionalità all'interno di programmi già esistenti.
Io, ad esempio per aggiornare il mio profilo su twitter utilizzo un AddOn di Firefox chiamato Power Twitter.
In questo articolo vi parlerò di come sia possibile accedere a twitter tramite il linguaggio di programmazione python.

Python e Twitter

Esiste un modulo Python che permette il collegamento ad un profilo su Twitter. Questo modulo ci permette di leggere i post di un qualsiasi account e, se si dispone di un proprio profilo, anche l'aggiornamento in maniera automatica.

Per poter utilizzare questo modulo, prima di tutto è necessario scaricarlo ed installarlo. La pagina di riferimento è: http://code.google.com/p/python-twitter/.
Personalmente ho trovato molti problemi con la versione 2.4 e 2.5 di python perchè viene richiesto un modulo supplementare per il parsing XML...
Per questo motivo consiglio vivamente una versione 2.6 o successiva di python.
Fatta questa premessa si può direttamente importare il modulo ed utilizzarlo (non mi dilungo sulla installazione che è pari a qualsiasi modulo per questo linguaggio di programmazione).

Leggere dei post da un profilo

import twitter

client = twitter.Api()
latest_posts = client.GetUserTimeline("yourusername")

print [s.text for s in latest_posts]

Aggiornare il proprio profilo

import twitter

c=twitter.Api(username='yourusername', password='yourpassword')
update=c.PostUpdate('Primo messaggio su twitter da script python')

Conclusione

Tramite gli spezzoni di codice sopra citati si può vedere quanto sia semplice leggere o aggiornare un profilo.
I possibili usi sono davvero infiniti... Si potrebbe sviluppare una applicazione che ogni volta che si verifica un evento (accensione del PC, backup effettuato, connessioni ad internet, mancanza di spazio su disco...) invii l'informazione su Twitter; oppure si potrebbe far scattare una foto ad un panorama ogni 2 ore e postarle su twitter; o ancora collegare il PC ad Arduino e postare l'utilizzo di questa scheda...
Insomma gli utilizzi possibili dipendono solo dalla immaginazione del programmatore...
E tu per cosa lo userai?