venerdì 15 luglio 2011

GLi RFID passivi

GLi RFID passivi al contrario degli attivi non hanno alcuna alimentazione, nessuna trasmittente e devono essere letti da distanzae ravvicinate (dai 2 cm fino ad un massimo di 10 metri).

Per questo motivo sono molto più economici degli altri (il costo si aggira tra i 20 ed i 30 centesimi) e richiedono molta meno manutenzione il che li rende perfetti per essere usati nella grande distribuzione.

Un RFID passivo è costituito da un microchip collegato ad una piccola antenna e può avere le forme più disparate. Può essere montato sotto un etichetta adesiva, oppure in un badge per la rilevazione delle presenza o in qualsiasi alto posto si voglia.

Questo tipo di RFID può operare a basse frequenze (124 kHz, 125 kHz or 135 kHz), alte frequenze (13.56 MHz) e ultra-alte frequenze (da 860 MHz a 960 MHz).

Le onde radio si comportano in modo differente ad ogni livello di frequenza e quindi la frequenza dell'RFID si stabilisce a seconda dell'uso che se ne vuole fare.

In generale comuqneu è utile sapere che:

Le onde radio a bassa frequenza si comportano come le onde radio che raggiungono il nostro stereo di casa. Riescono quindi a passare attraverso gli ostacoli (l'acqua o i muri ad esempio) ma non attraverso i metalli.

Incrementando le frequenze invece le onde radio si comportano più o come la luce e tendono quindi a rimbalzare sugli oggetti e non a penetrarli. Se le frequenze diventano ultra alte (UHF), le onde vengono addirittura assorbite dall'acqua.

La sfida che si sta giocando in questo periodo è quella di fare in modo che le onde UHF riescano a raggiungere dei Tag RFID attraversando i materiali ed i metalli. Il motivo per cui si preferirebbe usare le onde di frequenze ultra alte è molto semplice:

  • Gli RFID di questo tipo hanno dei costi molto ridotti rispetto agli altri
  • Il range di lettura di questo tipo di onde arriva fino ai 3,5 metri
Una domanda che nasce spontanea parlando dei tag RFID passivi è la seguente: Come fanno a trasmettere se non hanno una fonte di energia ?

In realtà questo tipo di RFID sfrutta un principio di elettromagnetismo che permette la condensazione di energia elettrica mediante onde radio. Per questo motivo essi sono dotati di un piccolo condensatore che accumula energia e la rilascia poi per far si che l'antenna possa trasmettere.

Radio Frequency IDentification - RFID

In telecomunicazioni ed elettronica RFID (o Radio Frequency IDentification o Identificazione a radio frequenza) è una tecnologia per l'identificazione automatica di oggetti, animali o persone (AIDC Automatic Identifying and Data Capture) basata sulla capacità di memorizzazione di dati da parte di particolari dispositivi elettronici (detti TAG o transponder) e sulla capacità di questi di rispondere all'"interrogazione" a distanza da parte di appositi lettori a radiofrequenza comunicando, sempre tramite segnali a radiofrequenza, le informazioni in essi contenute.

da wikipedia

L'elemento che caratterizza un RFID è il transponder o tag ed è costituito da:
  • un microchip che contiene dati (tra cui un numero univoco universale scritto nel silicio),
  • una antenna,
  • (in rari casi viene usata una batteria).
L'antenna riceve un segnale, che tramite il principio della induzione trasforma in energia elettrica, che alimenta il microchip. Il chip cosi' attivato trasmette i dati in esso contenuti tramite l'antenna (circuito di trasmissione del segnale) all'apparato che riceve i dati. In sintesi, un tag RFID è in grado di ricevere e di trasmettere via radiofrequenza le informazioni contenute nel chip ad un transceiver RFID.

L'idea dietro agli RFID è piuttosto semplice. Si inserisce un transponder (un microchip con un antenna) in un oggetto e poi si usa un lettore (un congegno con una o più antenne) per catturare le sue informazioni e passarla ad un computer per memorizzarle ed usarle a seconda delle esigenze.

Ci sono diversi tipi di sistemi RFID sul mercato ed è importante scegliere quello giusto a seconda dell'obbiettivo che si vuole raggiungere.

La maggior parte dei Tag RFID sono costituiti da un microchip di silicone capace di memorizzare un codice di identificazione univoco ed altre informazioni che possono variare (data di scadenza ,prezzo, lotto di produzione, etc....).

Ci sono due categorie principali in cui gli RFID si dividono, quelli attivi e quelli passivi.

Gli RFID passivi non sono in grado di trasmettere ma semplicemente riflettono al lettore (solitamente un antenna) le onde radio che esso gli invia.

Gli RFID attivi invece hanno una propria trasmittente ed una fonte di energia (ad esempio una batteria solare) per poter funzionare. 

venerdì 8 luglio 2011

Inviare email da shell con file allegati

Inviare email da shell con file allegati

Molti programmatori già sanno com’è facile inviare email da shell. Una semplice invocazione al comando “mail” con il destinatario passato come parametro, gli invierà tutti i dati letti dallo standard input.
$ mail giovanni@emailprova.it < /tmp/testo.txt
$ echo "Ci vediamo questa sera?" | mail milena@emailprova.it
Il comando mail accetta anche altri parametri:
  • -b bcc-addr Invia l’email in copia carbone nascosta agli indirizzi specificati.
  • -c cc-addr Invia l’email in copia carbone agli indirizzi specificati.
  • -s subject Specifica l’oggetto dell’email.
Ad esempio:
$ echo "andiamo fuori per una pizza?" | mail \
 -c "marco@emailtest.it, franco@emailtest.it" \
 -s "Serata pizza" nicola@emailtest.it
A volte però, nasce la necessità di inviare uno o più allegati, che non sono semplice testo, ma immagini, o file binari in generale.
Volendo usare il comando “mail”, sarebbe necessario codificare questi file secondo lo standard MIME, preparare una email testuale ed inviarla.
A venirci in aiuto, però, c’è il programma “mutt“.
Mutt è un client email, interattivo, orientato al testo, che all’occorrenza diventa un utilissimo strumento da riga di comando, per inviare email con allegati.
Ad esempio:
echo "Ecco la canzone che mi chiedevi." | mutt \
-a "canzone.mp3" \
-s "Canzone" marco@emailtest.it
In questo esempio ci sono tutte le parti più importanti di una email:
  • L’oggetto, passato dall’opzione -s.
  • Il corpo principale, letto dallo standard input.
  • Il destinatario (marco@emailtest.it).
  • L’allegato, specificato dall’opzione -a.
Se, infine, non si vuole specificare nessun testo è possibile passare una riga vuota:
echo | mutt -a "/tmp/backup.tar.gz" \
-s "Backup" sysadmin@serveremail.com
O /dev/null:
mutt -a "/tmp/backup.tar.gz" -s "Backup" \
sysadmin@serveremail.com < /dev/null
É possibile scaricare mutt all’indirizzo http://www.mutt.org/, questo programma è disponibile per una enorme quantità di dialetti unix / linux e per Microsoft Windows.

martedì 5 luglio 2011

Email Introduzione al MIME

Introduzione al MIME

MIME (Multipurpose Internet Mail Extensions) è uno standard proposto dai laboratori Bell Communications nel 1991 per estendere le possibilità limitate della posta elettronica (mail) e soprattutto per permetter di inserire dei documenti (immagini, suoni, testo, …) in un messaggio. E' definito all'origine dai RFC 1341 e 1342 del giugno 1992.
MIME propone di descrivere, grazie a delle intestazioni, il tipo di contenuto del messaggio e la codificazione usata.
MIME apporta alla messaggeria le seguenti funzionalità :
  • Possibilità d'avere più oggetti (allegati) in uno stesso messaggio;
  • Una lunghezza di messaggio illimitata;
  • L'uso di giochi di caratteri (alfabeti) oltre a quelli del codice ASCII;
  • L'uso di testi arricchiti (sotto forma di messaggi, tipi di carattere, colori, ecc.);
  • Degli allegati binari (eseguibili, immagini, file audio o video, ecc.), eventualmente composti da più parti;
MME usa delle direttive d'intestazione specifiche per descrivere il formato utilizzato nel corpo di un messaggio, per permettere al client di messaggeria di poterlo interpretare correttamente :
  • MIME-Version: si tratta della versione dello standard MIME usata nel messaggio. Attualmente esiste solo la versione 1.0.
  • Content-type: descrive il tipo e i sotto-tipi di dati. Può avere un parametro « charset », separato da un punto virtuale, che definisce il gioco di caretteri usati.
  • 'Content-Transfer-Encoding : definisce la decodifica usata nel corpo del messaggio.
  • Content-ID: rappresenta un identificativo unico di parte del messaggio.
  • Content-Description: fornisce delle informazioni complementari sul contenuto del messaggio.
  • Content-Disposition: definisce i parametri dell'allegato, soprattutto il nome associato al file attraverso l'attributo filename.

Principali Types MIME

Il type MIME, usato nell'intestazione Content-Type , è utilizzato per typare i documenti allegati ad un messaggio. Un type MIME è costituito nel modo seguente :
Content-type: type_mime_principale/sotto_type_mime
Ad esempio, un'immagine GIF avrà il seguente type MIME :
Content-type: immagine/gif
I principali types di dati, detti talvolta, « types di dati discreti », sono i seguenti :
  • text: dati testuali leggibili. text/rfc822 [RFC822] ; text/plain [RFC2646] ; text/html [RFC2854] .
  • image: dati binari che rappresentano delle immagini digitali image/jpeg ; image/gif ; image/png.
  • audio: dati digitali sonori audio/basic ; audio/wav
  • video : dati video : video/mpeg
  • application : altri dati binari. application/octet-stream ; application/pdf
Il type MIME è anche usato nel Web, per typare i documenti trasferiti dal protocollo HTTP. Al momento di una transazione tra un server web e un navigatore internet, il server web invia in primo luogo il type MIME del file inviato al navigatore, affinché quest'ultimo possa sapere come visualizzare il documento.

Formati di codifica

Per trasferire dei dati binari, MIME propone cinque formati di codifica utilizzabili nell'intestazione Transfer-encoding :
  • 7bit : formato testo codificato su 7 bits (per i messaggi non accentuati) ;
  • 8bit : formato test 8 bits ;
  • quoted-printable : formato Quoted-Printable, raccomandato per i messaggi che usato un alfabeto codificato su più di 7 bits (ad esempio presenza di accenti) ;
  • base64 : formato Base 64, raccomandato per l'invio di file binari in allegato ;
  • binary : formato binario, sconsigliato.
MIME, essendo molto aperto, pemette di usare altri formati di codificazione come i seguenti :

Decodificazione dell'intestazione

L'uso dell'intestazione Transfer-encoding permette di precisare un formato di decodificazione per il corpo del messaggio, ma non risolve il problema della decodificazione delle intestazioni stesse (ad esempio l'oggetto del messaggio).
Così, per permettere di decodificare le intestazioni con degli alfabeti di più di 7 bits, e permettere ad esempio d'avere un oggetto della mail accentuato, lo standard MIME propone il formato seguente :
=?charset?decodificazione?risultato?=
  • charset rappresenta il gioco di carattere usato,
  • decodificazione definisce la decodificazione voluta con due valori possibili :
    • Q per quoted-printable
    • B per base64
  • risultato: testo codificato secondo il metodo specifico.
Ecco qui sotto un esempio di codificazione in Quoted-Printable con « Kioskea » come oggetto del messaggio :
Subject: Comment =?ISO-8859-1?Q?=E7a_marche_=3F?=

Messaggi compositi

Attraverso il type MIME « multipart » lo standard MIME permette di definire dei messaggi compositi, cioè dei messaggi con più allegati, eventualmente inclusi.
Per fare questo, MIME permette di definire un separatore detto boundary. Si tratta di una catena arbitraria definita nell'attributo dell'intestazione Content-type :
Content-Type: multipart/mixed;
 boundary="------------020005090303070203010601" 
Ogni separatore delimita un contenuto cominciando dalle intestazioni Content-Type e Content-Encoding. E' essenziale che il valore di questo separatore non esista nel contenuto del messaggio.
Esistono differenti tipi di separatore :
  • multipart/mixed definisce una lista di più elementi
  • multipart/alternative definisce differenti alternative per una stessa informazione, ad esempio un messaggio in formato testo e HTML. Se il client di messaggeria è capace e configurato per la visualizzazione con un formato, visualizzerà la versione HTML, altrimenti userà la versione testo.
  • multipart/parallel definisce dei dati presentati nello stesso momento (suono e immagine ad esempio).
  • multipart/signed definisce una firma digitale per i dati del messaggio
  • multipart/related definisce delle informazioni legate fra loro

Liste dei types MIME

I types MIME sono normalizzati da un organismo chiamatoIANA (Internet Assigned Numbers Authority). Ecco una lista non esaustiva dei types MIME più diffusi
Type MIME Type di file Estensione associata
application/atom+xml File di formato ATOM atom
application/iges FileCAS iges
application/javascript File Javascript js
application/dxf File AutoCAD dxf
application/mp4 File MPEG4 mp4
application/iges Formato di scambio CAO IGES igs,iges
application/octet-stream File binari non interpretati bin
application/msword File da lavoro in formato Microsoft Word doc
application/pdf File Adobe Acrobat pdf
application/postscript File PostScript ai,eps,ps
application/rtf Formato di testo arricchito rtf
application/sgml File SGML sgml
application/vnd.ms-excel File tabellari in formato Microsoft Excel xls
application/vnd.ms-powerpoint File presentazione in formato Microsoft Powerpoint ppt
application/xml fichier XML xml
application/x-tar File compressi tar tar
application/zip File compressi ZIP man
audio/basic File audio basici au,snd
audio/mpeg File audio MPEG mpg,mp3
audio/mp4 File audio MPEG-4 mp4
audio/x-aiff File audio AIFF aif,aiff,aifc
audio/x-wav File audio Wave wav
image/gif Immagini gif man
image/jpeg Immagini JPEG jpg,jpeg,jpe
image/png Immagini PNG png
image/tiff Immagini Tiff tiff,tif
image/x-portable-bitmap File Bitmap PBM pbm
image/x-portable-graymap File Graymap PBM pgm
image/x-portable-pixmap File Pixmap PBM ppm
multipart/x-zip File archivio zip zip
multipart/x-gzip File archivio GNU zip gz,gzip
text/css Fogli di stile css
text/csv File di testo con separazione dei valori csv
text/html File HTML htm,html
text/plain File di testo senza formattazione txt,g,h,c,cc,hh,m,f90
text/richtext File di testo arricchiti rtx
text/rtf File di testo in formato Rich Text Format rtf
text/tab-separated-value File di testo con separazione di valori tsv
text/xml Files XML xml
video/h264 Video H.264 h264
video/dv Video in formato DV dv
video/mpeg Video MPEG mpeg,mpg,mpe
video/quicktime Video QuickTime qt,mov
video/msvideo Video Microsoft Windows avi

Ulteriori informazioni

  • Lista ufficiale dei types MIME (IANA - )
  • RFC principali :
    • RFC 2045: MIME Part One: Format of Internet Message Bodies
    • RFC 2046: MIME Part Two: Media Types
    • RFC 2047: MIME Part Three: Message Header Extensions for Non-ASCII Text
    • RFC 2048: MIME Part Four: Registration Procedures
    • RFC 2049: MIME Part Five: Conformance Criteria and Examples
  • RFC annexes :
    • RFC 1524: The formal description of mailcap files. Mailcap files describe how to handle media types.
    • RFC 2015: MIME Security with Pretty Good Privacy (PGP).
    • RFC 2110: MIME E-mail Encapsulation of Aggregate Documents, such as HTML (MHTML).
    • RFC 2111: Content-ID and Message-ID Uniform Resource Locators.
    • RFC 2112: The MIME Multipart/Related Content-type.
    • RFC 2183: Defines the syntax and sematics of the "Content-Disposition" header to convey presentational information.
    • RFC 2184: MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations