JAVA fundamentals

Questo articolo parla del sistema operativo in cui può essere eseguito un programma scritto in Java.

Qual è? Tutti.

Ovvero: in una macchina virtuale!

Questo inguaggio nasce con l’obiettivo di non avere bisogno di essere “portato” da un sistema operativo ad un altro. Il programmatore non deve avare compilatori/linker specifici per ciascun sistema operativo ma deve preoccuparsi solo di scrivere codice senza preoccuparsi dove questo potrà essere eseguito. L’infrastruttura farà in modo da rendere ugualmente eseguibile questo codice.

Ma per ottenere questo dobbiamo effettuare una astrazione della macchina fisica, in modo che il programma possa essere compilato ed eseguito da questa macchina astratta e questa sia l’unica cosa che debba mediare con l’architettura sottostante senza però preoccupare minimanente lo sviluppatore.

La tecnologia (originariamente sviluppata da Sun Microsystem ma poi presa in carico da Oracle Inc.) è stata stratificata per mettere a disposizione

  • un compilatore
  • un linker e un ambiente di esecuzione
  • uno strumento di gestione del ciclo di vita (development / test / run / deploy)

In questo contesto questi tre livelli sono denominati JVM, JRE, JDK.

Quali sono le differenze tra JDK, JRE e JVM?

L’immagine risponde in sintesi alla nostra domanda

Java: la d ifferenza tra JVM JDK e JRE
La differenza tra JVM JDK e JRE

È un sistema di scatole cinesi. Ma vediamo in dettaglio i tre blocchi

JVM

JVM (Virtual Machine) è una macchina astratta (o virtuale). È una specificazione che fornisce un ambiente esecutivo (runtime environment) – una simulazione di un calcolatore con processore e RAM – nel quale il bytecode (lo pseudo-codice macchina che gira nello pseduo-processore) può essere caricato nella memoria virtuale ed eseguito.

Le JVM sono disponibili per una ampia varietà di piattaforme harware e software. JVM, JRE e JDK sono dipendenti dalla piattaforma perché le configurazioni per ogni sistema operativo sono diverse e, come detto, questo non deve essere una preoccupazione dello sviluppatore che deve solo scegliere la JDK del sistema operativo in cui lui è abituato a lavorare. Però, Java è indipendente dalla piattaforma: quindi lo stesso codice sorgente può essere eseguito senza cambiare una virgola in qualsiasi sistema operativo. Quello che cambia è l’implementazione della Virtual Machine. La JVM fa le seguenti cose principali:

  • interpreta il codice sorgente con il just-in-time compiler e produce il bytecode allo stesso modo di un interprete (qui è molto diverso il funzionamentto dai programmi come C++ o C che vengono comletamente convertiti in codice macchina e poi eseguiti).
  • esegue il bytecode
  • gestisce il threading, ovvero le chiamate a funzione ed il ritorno al programma chiamante, le ricorsioni, gestendo il program counter e lo stack delle chiamate – ciò che fa un sistema operativo ma ad un livello astratto, senza un vero processore sotto).
  • gestisce la memoria virtuale (creazione e distruzione degli oggetti). Su questo particolare aspetto, che è decisamente critico, se volete potete leggere quest’altro articolo del mio blog.

Una volta che però esiste l’ambiente esecutivo, che è il prossimo passaggio.

JRE

Java Runtime Environment
Runtime Environment

JRE (Runtime Environment). Serve a fornire un ambiente di esecuzione. È l’implementazione della JVM. Esiste fisicamente. Contiene le librerie (e ne gestisce i collegamenti) necessarie per la funzionalità del programma e inoltre contiene altri files che la VM usa durante l’esecuzione (javaw, rt.jar, etc).

JDK

JDK (Development Kit). Anche questo esiste fisicamente. Contiene il JRE + strumenti per lo sviluppo (javac, javaws, etc)

java Development Kit
Development Kit

Come conoscere la versione della JRE correntemente in uso

marcob@jsbach:/opt$ java -version
   java version "1.6.0_26"
   Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
   Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Come cambiare JRE/JVM in corsa

Si usa il comando update-alternatives, con l’opzione –config java:

marcob@js:/usr/lib/jvm$ sudo update-alternatives --config java 

Sono disponibili 4 scelte per l’alternativa (che fornisce /usr/bin/java).

Sel Percorso                                    Priorità  Stato   
-----------------------------------------------------------------------------     
 0   /usr/lib/jvm/java-7-oracle/jre/bin/java        1095  modalità automatica     
 1   /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061  modalità manuale     
 2   /usr/lib/jvm/java-6-oracle/jre/bin/java        1092  modalità manuale     
 3   /usr/lib/jvm/java-7-oracle/jre/bin/java        1095  modalità manuale
*4  /usr/lib/jvm/java-8-oracle/jre/bin/java         1094  modalità manuale 

Risorse nel blog

Un (presumibilmente) interessante articolo sulla gestione della memoria di una JVM

Bibliografia

Polinomi di Bernstein e curve di Bézier

bezier-ribbon2In questo breve articolo vengono delineati in modo elementare gli argomenti matematici alla base delle curve di Bézier e la loro implementazione nei software tool di sviluppo grafico vettoriale. Questi appunti sono stati originariamente scritti per le classi IV dell’ITIS “Carlo Zuccante” di Venezia-Mestre come supporto didattico per le lezioni del modulo “Grafica per il web” nell’ambito del corso di Progettista di siti web tenuto nell’omonimo Istituto nel 2000.

Ho trovato l’occasione di pubblicarlo.

Generatore di numeri casuali puri utilizzando la turbolenza atmosferica

Paolo Villoresi, Giuseppe Vallone, Davide Marangon e altri collaboratori del gruppo di Quantum Communications del DEI Dipartimento di Ingegneria dell’Informazione dell’Università di Padova, hanno messo a punto nel 2013 un prototipo che permette di generare numeri casuali puri tramite un raggio laser inviato ad un ricevitore sufficientemente lontano attraverso l’atmosfera. Il loro lavoro è stato pubblicato pubblicato su ArXiv.org e da nature.com.

Perché numeri casuali puri? I numeri casuali utilizzati finora nei computer sono numeri pseudo casuali cioè generati in modo deterministico con algoritmi che in sostanza implementano dinamiche caotiche nel senso del caos deterministico: un sistema deterministico con caratteristiche di non linearità, presenza di punti di equilibrio iperbolici e sensibilità ai valori iniziali, che si comporta apparentemente come un sistema casuale ma che casuale non è perché vale il determinismo alla Cauchy (fissato un punto si può sempre determinare il punto successivo con certezza – se il punto iniziale è noto con certezza).

Nei numeri casuali puri o genuini invece conoscere lo stato del sistema ad un certo istante non ci dà alcun modo di prevedere con certezza dove sarà il sistema l’istante successivo, possiamo solo stabilire delle probabilità.

Il metodo messo a punto da Villoresi ed i suoi collaboratori si avvale delle proprietà della turbolenza atmosferica nella diffusione di un raggio laser. Il prototipo è alquanto ingombrante: si tratta di ricevere il fascio laser ad una distanza di 143 km, essendo il trasmettitore laser posizionato nell’isola di La Palma ed il ricevitore nell’isola di Tenerife. Il fronte d’onda, approssimativamente sferico a grande distanza, viene deformato dal diverso indice di rifrazione dovuto alla turbolenza dell’aria, e viene raccolto da un sensore a matrice nel quale avviene un campionamento delle intensità e una codifica.

Il pattern di diffusione del fascio si dispone in una scacchiera in cui caselle nere e bianche (per semplificare) si scambiano continuamente di posto in modo del tutto impossibile da prevedere; la codifica di ogni scacchiera (frame) viene associata ad un numero per ottenere quindi una successione di numeri casuali puri.

In numeri ottenuti sono stati sottoposti a test di casualità passandoli tutti: il generatore è formidabile.

Nell’articolo pubblicato sull’Archivio vi è anche un’applicazione alla QKD (Distribuzione di Chiavi Quantistiche) nell’ambito della Quantum Information.

È iraniana la prima donna della storia a vincere una medaglia Fields

 

Maryan Mirzakhani ha vinto la medaglia Fields, l’equivalente del premio Nobel assegnato annualmente al matematico ritenuto il migliore.

La medaglia Fields viene assegnata durante l’annuale Congresso Internazionale dell’International Mathematical Union per meriti scientifici a matematici di non oltre quarant’anni, ed è la prima volta che questo prestigioso premio viene assegnato ad una donna.

La prof. Mirzakhani è nata a Teheran nel 1977 (che all’epoca era ancora Persia) ed ha una carriera di matematica iniziata molto precocemente: a 17 anni ha vinto le Olimpiadi Internazionali della Matematica a Hong Kong, e anche l’anno successivo a Toronto. Attualmente vive negli Stati Uniti e insegna alla Stanford University.

Il premio le è stato riconosciuto per i suoi lavori sulle superfici di Riemann. Nella sua attività di ricercatrice si è occupata, tra le altre cose, anche di teoria ergodica e geometria iperbolica.

Ulteriori approfondimenti su Wikipedia e BBC.

Oh Captain, my Captain

Gli studenti del college di Welton salutano il prof. Keating rompendo l'etichetta, la formalità e la convenzione

Gli studenti del college di Welton salutano il prof. Keating rompendo l’etichetta, la formalità e la convenzione

Era il mio attore preferito senza alcun dubbio.
Mi è risultato subito simpatico fin da quand’ero piccolo in cui interpretava Mork da Ork. “Nano Nano!”.

E giusto domenica l’ho visto in un film che avevo registrato, “The Big White” e ho pensato che la voce di Carlo Valli, doppiatore in quasi tutti i suoi film di successo, si sposava molto bene con il personaggio. Anzi mi pare di ricordare che Williams si fosse pure congratulato con lui per la fedeltà e l’abilità con cui dava la voce ai suoi personaggi.

Ho pensato anche che una volta intervistato da Vincenzo Mollica aveva lanciato un invito a Roberto Benigni per fare un lavoro insieme. E mi sono chiesto quando lo avrebbero fatto. Ho pensato che gli sono grato per tutti i film in cui l’ho visto (Good Morning, Vietnam, Toys – Giocattoli, La leggenda del Re Pescatore, Mrs. Doubtfire – Mammo per sempre, Will Hunting – Genio ribelle, Al di là dei sogni, Patch Adams, One Hour Photo, La musica nel cuore – era bravo anche ad interpretare personaggi antipatici! -), ma soprattutto per la sua interpretazione del prof. Keating e per tutti i messaggi usciti da quel film L’attimo fuggente (Dead poets society), che ho fatto miei per sempre. La sua faccia si sposava benissimo con l’intelligenza, la profondità e la simpatia del personaggio.

Una delle mie battute preferite del film è:

“Non scriviamo poesie perché è carino, ma per rimorchiare le donne!”

Voglio ricordarlo con questa canzone della Starland Vocal band che è la sigla dei titoli di coda di Hunting – Genio ribelle, in cui recitava in un altro ruolo di insegnante – musa ispiratrice con Matt Damon:

http://youtu.be/Fz1ex78QeQI
Ciao Robin, anche tu adesso sei concime per i fiori…

Perché l’orbita della terra attorno al Sole è ellittica?

Mi è stata posta questa domanda e ho cercato di rispondere.

Qui c’è l’articoletto.

Se volete anche il sito Treccani ha un articolo in proposito, lieto di vedere che i passaggi seguiti sono gli stessi.

Focus in Quantum Communications

Un nuovo tipo di comunicazione è in arrivo: comunicheremo caricando i bit sui singoli fotoni.

Un nuovo tipo di comunicazione è in arrivo: comunicheremo caricando i bit sulle singole particelle

Questa primavera mi sono divertito a muovere i primi passi nella Comunicazione del prossimo futuro, le Quantum Communications (QC), e nell’informatica del prossimo futuro, la Quantum Information (QI).

E’ un argomento che avevo lasciato nel cassetto dopo aver letto all’inizio degli anni 2000 un articolo su una introduzione panoramica a questo nuovo paradigma, scritto nel 1997.

Le QI e QC basano la trasmissione delle informazioni e il loro trattamento su un nuovo tipo di approccio: l’interpretazione e la codifica / decodifica dei dati non è affidata a stream di fotoni come avviene da Marconi ad oggi, ma allo stato di un singolo sistema quantistico, che può essere un singolo fotone, un singolo elettrone o un singolo atomo, ad esempio.

L’informazione viene veicolata così dai bit quantici o qubit, nei quali la codifica binaria {0,1} non è presenza o assenza di un segnale, ma lo stato quantistico ad esempio di un fotone: polarizzato verticalmente o orizzontalmente, oppure con lo spin up o down di un elettrone.

Per cominciare ad approfondire l’argomento ho seguito il corso (e superato l’esame) di Elettronica Quantistica del prof. Paolo Villoresi presso il Dipartimento di Ingegneria dell’Informazione (che per ragioni storiche ha però come acronimo DEI) dell’Università di Padova.

È un esame che avevo già superato all’epoca dei miei studi ma che nel tempo si è arricchito di molti argomenti nuovi come la generazione di impulsi giganti tramite mode-locking o Q-switching, e, la parte che mi interessava di più, anche di Informazione e Comunicazione Quantistica.

Oltre alla botta di gioventù che si riceve quando si varca la soglia delle Università, ho avuto l’opportunità di entrare nei laboratori per poter anche effettuare degli esperimenti su argomenti inerenti il corso, come il riconoscimento e la classificazione delle sorgenti coerenti, la caratterizzazione di fasci gaussiani e la misura dell’efficienza di estrazione dei laser.

Il contatto con l’Università mi permette di cominciare a sfruttare nel mio ambito la tecnologia nascente dei generatori a singolo fotone, allo sfruttamento del fenomeno dell’entaglement, alla generazione di numeri casuali puri.

 

Stay tuned, stay foolish! 🙂

 

Panono, fotocamera “a 360 gradi”

 

Questa locuzione geometrica (“360 gradi”) è una delle espressioni più odiosamente abusate, sembra che molte persone non sappiano nemmeno cosa significhi (e, a volte, in modo veramente grottesco, sbagliano anche l’angolo, dividendolo per 4), ma questo oggettino proveniente dalla Germania fa proprio questo, anzi ad essere più precisi ancora riprende immagini a 4 pigreco steradianti, ovvero in tutta la sfera.

Curioso, simpatico, farà strada.

http://www.panono.com

 

TetraQUARK: una particella esotica con 4 quark.

TetraQuark: LHCb-Z4430 una particella con 4 quark
Quark: Il quadrato della distribuzione di massa per il mesone B 25.200 decade nella coppia ψ ‘π trovata da LHCb nel loro set di dati completo. I punti neri rappresentano i dati, la curva rossa il risultato della simulazione quando viene inclusa la presenza dello stato Z (4430). La curva marrone a tratti al di sotto mostra che la simulazione non riesce a riprodurre i dati se nessun contributo da Z (4430) è incluso, stabilendo la chiara presenza di questa particella con 13.9σ (cioè, il segnale è 13,9 volte più forte di tutti i possibili fluttuazioni statistiche combinate. Queste sono le barre di errore rappresentate dalla piccola linea verticale attaccata ad ogni punto).
[Fonte: Quantumdiaries.org]
I quark, le particelle elementari che sono forse le ultime costituenti della materia pesante si presentano normalmente i aggregati di tre (adroni), ma LHC non finisce di stupirci producendo particelle rarissime, i cosiddetti stati esotici, in cui questi mattoncini fondamentali della materia pesante sembrano aggragegarsi in modo non convenzionale. In questo articolo la fisica americana Pauline Gagnon ci racconta di cosa si tratta.

Una particella esotica con 4 quark.

Il progetto LHCb al CERN ha appena confermato l’osservazione non ambigua di uno stato molto esotico, qualcosa che sembra stranamente essere composto di quattro quark. Per quanto inconsueto possa apparire, questa particella TetraQuark è stata volgarmente chiamata Z(4430), che vuol dire che la sua massa a 4430 MeV, circa quattro volte più pesante  di un protone, e con una carica elettrica negativa. La lettera Z mostra che essa appartiene ad un strana serie di particelle che sono denominate come stati XYZ.

Quindi, che cos’hanno di strano questi stati? Il modello quark convenzionale afferma che ci sono sei differenti tipi di quark, ognuno di essi accompagnato dalla sua antiparticella. Tutte queste particelle formano stati legati combinando due o più di essi. I protoni e i neutroni per esempio sono costituiti di tre quark. Tutti gli stati costituiti di tre quark sono detti barioni, Altre particelle come i π e i k, che sono spesso osservate nei processi di decadimento di particelle più pesanti, sono composta da un quark ed un antiquark. Queste formano la categoria dei mesoni. Fino al 2003, le centinaia di particelle osservate erano classificate come mesoni oppure barioni.

E quindi ecco la grande sorpresa: nel 2003, l’esperimento BELLE trovò uno stato che assomigliava ad uno stato legato di quattro quark. Da allora sono stati osservati molti altri stati singolari. Essi spesso assomigliano a stati di tipo charmonium o bottomonium, che contengono un quark charm e un antiquark charm, un quark bottom ed un antiquark bottom. La scorsa primavera, il progetto BESIII di Pechino confermò l’osservazione dello stato Zc(3900)+ osservato anche da BELLE.

L’8 aprile l’esperimento LHCb ha dichiarato di aver trovato la Z(4430)  con 10 volte più eventi di quanto rilevato precedentemente da tutti gli altri gruppi. Il campione di dati è così grande che ha permesso a LHCb di misurare alcune sue proprietà in modo non ambiguo. Determinare i numeri quantici esatti di una particella è come ottenerne la sua impronta digitale: ciò consente ai fisici di stabilire esattamente di quale tipo di particella si tratta. Dunque lo stato  sembra essere costituito da un quark charm, da un anti-charm, da un down e da un anti-up. La loro misura esclude molte altre possibilità.

I teorici sono già al lavoro cercando di creare un modello che descriva questi nuovi stati. È un tetraquark assolutamente inedito, uno stato legato composto da 4 quark, o qualche strana combinazione di mesoni (mesoni che contengono almeno un quark charm)? La domanda è tuttora aperta.

Leggi l’articolo originale di Pauline Gagnon@Quantumdiaries.org

Link esterni

La collaborazione LHCb @ CERN

Pi day

Oggi è il 14 marzo. Ovvero il 14/3 o, per gli anglosassoni, il 3/14. Da qui al

Pi number

il passo è breve. Qualcuno ha istituito addirittura un Pi day in onore del numero dei numeri. Pensate che ne parla anche la Bibbia, nel Primo Libro dei Re: c’è un passo in cui si descrive Salomone che fa costruire la sua reggia e si dice che pigreco = 3:

Fece un bacino di metallo fuso di dieci cubiti da un orlo all’altro, rotondo; la sua altezza era di cinque cubiti e la sua circonferenza di trenta cubiti.

I Re, 7, 23

Quindi diametro 10 cubiti e circonferenza 30 cubiti, quindi pigreco = 3. Una approssimazione, certo, ma dal punto di vista pratico era sufficiente.

Leggo dal Corriere che la festa è nata a San Francisco, CA nel 1988.

Scopri molto altro su pi greco nel suo sito personale.