sabato 31 marzo 2018

Convertitore valuta cinese Yuan in Euro

Cosa fare per ammazzare il tempo in Cina?
Semplice: un'app Android per convertire Yuan in Euro e viceversa 😅

Download

In realtà l'ultima trasferta a Wuhan Optics Valley è stata lunga ed impegnativa dal punto di vista lavorativo ed il tempo per distrarmi insieme a due amici e colleghi, si è ridotto al minimo.

Jiuann converter è un semplice convertitore di valuta off-line! 

Perchè off-line? Evitare la conessione dati in roaming può proteggere da brutte sorprese sul conto telefonico quando si sta in Cina... Per un'idea di cosa si rischia riporto il messaggio di Vodafone circa le tariffe: Benvenuto in Cina. Con Smart Passport ha 200 min, 200 SMS e 200MB fino alle 24:00 ora italiana a 35 euro solo in caso di utilizzo. Le verrà addebitata una ricarica automatica al primo evento di roaming. Raggiunte le soglie continuerà a utilizzare il servizio acquistando una ricarica automatica di 35 euro ogni 200 min, 200 SMS e 200MB fino a un massimo di 1000 min, 1000 SMS e 1000MB giornalieri. Al termine dei 1000MB navigherà gratuitamente a una velocità ridotta a 32 Kbps. Può bloccare il traffico all'estero impostando il suo smartphone in modalità aereo o disattivando la ricarica automatica al numero gratuito +393482002323. Per controllare la spesa chiami gratis il 414 o +393492002414. Buon viaggio!
A tal proposito.. speriamo bene 🙏!

Ritornando al convertitore, i tassi di conversione sono preimpostati ed è possibile aggiornarli anche successivamente, manualmente... off-line!

L'utilizzo è veramente semplice grazie alla conversione immediata ogni volta che il testo cambia.
Questa funzionalità si ottiene grazie ai listner sulle EditText addTextChangedListener che mette a disposizione vari @Override tra cui afterTextChanged



Non c'è molto da dire su quest'App tranne di fare attenzione a non incorrere in un loop infinito di conversione che manda in crash l'App qualora si dovessero attivare contemporaneamnete i listner sulle due EditText (una per l'Euro e l'altra per lo Yuan). Ho gestito la cosa attivando e disattivando i listner nel momento dell'ottenimento e della perdita del focus usando  setOnFocusChangeListener

Ultima cosa circa le SharedPreferences: ho scoperto che non esiste un metodo per memorizzare i double tipo editor.putDouble ed il rispettivo getter preferences.getDouble  per cui occorre crearsi dei metodi che scrivono il double in 'raw long bits' equivalente e riconvertirlo successivamente in double quando occorre..  https://stackoverflow.com/a/18098090


 


你好中国,很快见到你

黄鹤楼


* thanks joker876 from openclipart

venerdì 2 marzo 2018

Debug del software

Rubber Duck Debugging


Rubber Ducking

A Marzo ho partecipato all'evento Dive into AI presso l'Università Parthenope di Napoli.

Gli argomenti trattati nella sessione formativa sono stati davvero interessanti: Intelligenza artificiale, Machine learning, Big data, IoT

Ma... cosa c'entra la paperella tra tutta questa scienza?
La papera in figura era il gadget offerto ai partecipanti del workshop.

A cosa serve realmente?
Oltre ad essere un simpatico soprammobile la papera è usata per fare il debug del software. Sembra strano ma è uno dei metodi usato per scovare bug software che si nascondono tra i milioni di linee di codice scritto durante le notti insonni!

Come si usa?
Semplice, si trasferisce il codice et voilà il bug è trovato! Scherzo, la tecnica corretta è quella di spiegare riga per riga il codice a questa simpatica paperella inanimata. Descrivendo infatti il funzionamento che ci si attende dal programma ed osservando il codice che svolge tale funzione, si riesce ad identificare il problema o a trovare la soluzione al malfunzionamento.

Tecniche alternative?
Per evitare di sembrare un matto mentre si parla con un oggetto inanimato si può chiedere aiuto al proprio amico purché non sia un esperto programmatore. Osservando il problema da un altro punto di vista spesso si arriva all'identificazione ed alla soluzione del problema.

Bene, questo è tutto circa la simpatica paperella offerta dagli ambassador di Intel e... alla prossima!