martedì 9 agosto 2011

Units, il convertitore.

Salve!

E' da molto che non scrivo sul blog ma, sapete, la vita alcune volte pone degli ostacoli (mi verrebbe da dire insormontabili, ma non lo dico) la cui soluzione non è a portata di mano; metteteci pure che da me il caldo non sta dando alcuna tregua.

Certo, ci sarebbe il progetto bash....tranquilli, non è stato affatto abbandonato! Datemi il tempo di organizzarmi con il caro Lightuono e, quanto prima, si riparte!


Ci sarebbe anche l'ansia che, puntualmente, ogni anno mi assale proprio in questo periodo! Quando sta per finire l'estate, ho come l'impressione che debba fare qualcosa di importante! Una stranissima sensazione che non mi ha mai abbandonato nella vita (purtroppo). E' come se dovessi andare a scuola senza aver fatto i compiti. Vabbè, lasciamo stare...

Per non parlare poi di quest'aria pesante che si respira a livello mondiale, questa crisi interminabile, queste borse altalenanti. Che poi non è solo una crisi economica. Viene messo in discussione un sistema...Che "Qualcuno" ce la mandi buona!

Andiamo a noi. Oggi voglio parlare di un potentissimo programma che permette di convertire unità di misure. Il tool in questione si chiama Units ed è ad interfaccia testuale, ovvio! :D

Su Units ci sarebbe veramente tanto da dire, ma mi limito a descriverne l'uso interattivo e quello non interattivo.

anzitutto installiamolo

sudo apt-get install units

Iniziamo con l'uso interattivo

apriamo il terminale e, al prompt, scriviamo

units

Il programma stamperà qualcosa di simile

2411 units, 71 prefixes, 33 nonlinear units

You have:

Come potete vedere, il programma ci chiede di digitare la misura o quantità che si vuole convertire

Poniamo il caso che si voglia convertire 10km in metri

allora scrivo

You have: 10km

e subito il programma ci chiederà:

You want:

cioè ci chiede di indicare l'unità in cui deve avvenire la conversione. Dato che noi dobbiamo convertire 10km in metri,  dovremo digitare

You want: meter

ecco il risultato

* 10000 #10km=10.000m
/ 0.0001


per capire il secondo valore, vi consiglio di ripetere il tutto, ma aggiugendo a units l'opzione -v (verbose)

così

$ units -v
2411 units, 71 prefixes, 33 nonlinear units

You have: 10km
You want: meters

risultato
    10km = 10000 meter
    10km = (1 / 0.0001) meter


Facciamo un altro esempio: convertiamo un miglio marino (nmi) in metri

$ units -v
2411 units, 71 prefixes, 33 nonlinear units

You have: 1nmi
You want: meters

risultato
    1nmi = 1852 meter
    1nmi = (1 / 0.0005399568) meter

Altro esempio: convertiamo un gigabyte in megabyte

$ units -v
2411 units, 71 prefixes, 33 nonlinear units
You have: 1gigabyte
You want: megabyte
  
 risultato
1gigabyte = 1000 megabyte
1gigabyte = (1 / 0.001) megabyte

Altro esempio: Ora convertiamo 100 gradi fahrenheit in gradi celsius

$ units -v
2411 units, 71 prefixes, 33 nonlinear units

You have: tempF(100)
You want: tempC

risultato
tempF(100) = tempC(37.777778)

Notate che in questo caso la sintassi è leggermente diversa, ma niente di eccezionale. :)

Ok! Basta con la funzione interattiva di Units. Vi ricordo che per uscire dal terminale bisogna usare la combinazione di tasti Ctrl+C

Passiamo velocemente alla funzione non interattiva; in questo caso è necessario impostare una riga di comando.

Mi limito a fare due esempi (già fatti sopra)

1. convertire 10km in metri

$ units -v 10km meters

risultato

10km = 10000 meter
10km = (1 / 0.0001) meter

2. convertire un miglio marino (nmi) in metri

$ units -v 1nmi meters

risultato

1nmi = 1852 meter
1nmi = (1 / 0.0005399568) meter

Per maggiori approfondimenti

man units

Alla prossima. Ciao :)

10 commenti:

  1. Solo un piccolo errore: in "10km = (1 / 0.0001) meter" c'è uno zero di troppo (anche sopra). Poi a essere davvero pistini si dovrebbe scrivere m o meters.
    Per il resto probabilmente è solo il caldo; poi passa ;-)

    RispondiElimina
  2. Ho corretto meter in meters, ma lo zero in più proprio non lo vedo :)

    RispondiElimina
  3. calc
    C-style arbitrary precision calculator (version 2.12.3.3)
    Calc is open software. For license details type: help copyright
    [Type "exit" to exit, or "help" for help.]

    ; 1/1000
    0.001
    ;

    RispondiElimina
  4. Calc? LOL
    ma qui abbiamo 1/10.000. o continuo a sbagliare? :)

    RispondiElimina
  5. appena ho tempo installo Units. Per adesso (sono un po' di corsa) volevo solo dire che:
    1 km = 1000 m
    1 m = 0.001 km
    in questo senso mi sembra che ci sia uno zero di troppo.

    RispondiElimina
  6. Ops! errore mio. O meglio modo di esprimere il risultato che non avevo capito. Riporto un pezzo del manuale.

    The answer will be displayed in two ways. The first line of output,
    which is marked with a `*' to indicate multiplication, gives the result
    of the conversion you have asked for. The second line of output, which
    is marked with a `/' to indicate division, gives the inverse of the
    conversion factor. If you convert 10 meters to feet, `units' will
    print

    * 32.808399
    / 0.03048

    Ma cribbio chi è che preferisce fare la divisione invece che la moltiplicazione? Secondo me era molto meglio dare il fattore di conversione, qualcosa come 1ft = 0.3048m; 1m = 3.2808m.

    Mi spiace di aver sporcato il post con commenti non appropriati, se vuoi / puoi cancellali.

    RispondiElimina
  7. Nessun problema! concordo con te sul fattore di conversione. certo, sarebbe stato meglio. Non ti nascondo che mi sono dovuto scervellare per capire il meccanismo. Grazie :)

    RispondiElimina
  8. Ma...1Gb non equivale a 1024M ? mhmh..

    RispondiElimina
  9. ebbene si, questo dato è un pò approssimativo! Ma solo questo però.

    RispondiElimina
  10. @ Lightuono. Buona domanda. Ma se leggessi con più cura i miei post avresti trovato un suggerimento, qui: http://okpanico.wordpress.com/2011/08/02/ancora-sui-numeri-grossi-ma-anche-piccoli/

    Ma so bene che era per darmi l'occasione di farmi un po' di pubblicità, cosa di cui ti sarò eternamente grato fino a domani.

    RispondiElimina