micro:bit apertura con password

Per azionare il motore che apre la porta, occorre inserire la password pre-impostata (AABAA) premendo i bottoni A e B del micro:bit. Per confermare la password occorre premere contemporaneamente i bottoni A + B. Se la password è giusta, compare il segno di spunta e la porta si apre; altrimenti compare una X ed è possibile riprovare.

Quando compare il segno di spunta, è possibile inserire una nuova password premendo i bottoni A e B, confermando l’inserimento premendo contemporaneamente A + B. La nuova password viene visualizzata una volta prima di diventare attiva.

Per chiudere la porta, occorre premere insieme A + B senza inserire password.

Ovviamente, ogni volta che si riaccende il micro:bit si riparte dalla password pre-impostata.

Il codice in Python:

def on_button_pressed_a():
    global tentativo, nuovapassword
    if stato == "inserimento":
        tentativo = "" + tentativo + "A"
    else:
        nuovapassword = "" + nuovapassword + "A"
input.on_button_pressed(Button.A, on_button_pressed_a)

def on_button_pressed_ab():
    global nuovapassword, stato, tentativo, password
    if stato == "inserimento":
        if tentativo == password:
            basic.show_icon(IconNames.YES)
            pins.servo_write_pin(AnalogPin.P0, 90)
            nuovapassword = ""
            stato = "modifica"
        else:
            basic.show_icon(IconNames.NO)
            stato = "inserimento"
            pins.servo_write_pin(AnalogPin.P0, 0)
        basic.pause(500)
        basic.clear_screen()
        tentativo = ""
    else:
        password = nuovapassword
        basic.show_string("" + (password))
        stato = "inserimento"
input.on_button_pressed(Button.AB, on_button_pressed_ab)

def on_button_pressed_b():
    global tentativo, nuovapassword
    if stato == "inserimento":
        tentativo = "" + tentativo + "B"
    else:
        nuovapassword = "" + nuovapassword + "B"
input.on_button_pressed(Button.B, on_button_pressed_b)

nuovapassword = ""
stato = ""
tentativo = ""
password = ""
password = "AABAA"
tentativo = ""
stato = "inserimento"
nuovapassword = ""
pins.servo_write_pin(AnalogPin.P0, 0)

Errori nella condivisione dei dati

Quali sono gli errori commessi dagli analisti quando distribuiscono il loro lavoro ai colleghi?

Risponde Ken Gross, Chief Data Scientist presso The Chartis Group:

Tutte le analisi cercano di rispondere a precise domande o gruppi di domande. Nel distribuire i risultati ai colleghi, gli analisti spesso dimenticano di specificare chiaramente quale era la domanda che ha guidato la loro analisi. Gli analisti dovrebbero sempre specificare chiaramente, prima dei risultati, a quali domande si sta cercando di rispondere.

Inoltre, il processo di analisi è spesso iterativo, dove un primo gruppo di domande porta a nuove o più precise domande. Nel presentare i risultati, gli analisti dovrebbero incoraggiare gli interessati a combinarli con le loro conoscenze ed esperienze, per fare in modo che il processo iterativo diventi anche collaborativo

(da distinct values)

Robot Street Challenge 2018: simulazioni con Scratch

Per mio divertimento, e in vista della Robot Street Challenge 2018, ho creato due progetti con Scratch che simulano un robot “line follower” e un robot che risolve un labirinto. Il divertimento consiste nel variare i diversi parametri (percorso, velocità numero di sensori, eccetera) per capire come influiscono sui tempi di percorrenza. Enjoy!

Se hai suggerimenti per migliorare il codice, te ne sarò grato.

In azienda le ciofeche costano carissime

Giro per le aziende insubriche e vedo gente capace, preparata e volenterosa, a cui vengono affidati compiti gravosi e importanti, che lavora ancora con PC di modernariato e software anziano.

“Lavora” è un eufemismo: in realtà dovrei dire “lotta, fatica, si dispera e si abbronza alla luce della clessidra”.

Faccio i conti della serva: metti che quel collaboratore costi almeno 50.000 €/anno, e che con meno di 2.000 € di hw/sw nuovo la sua produttività aumenti del 10% (e il suo stress diminuisca del 75%).

Penso quindi che queste aziende non sappiano far di conto, e che non dureranno a lungo.

(Più è grande l’azienda, più è grave è il problema)

(E non tocchiamo l’argomento “amministrazione pubblica”)

Competenze digitali

Competenze digitali:

Livello 1: cittadinanza digitale

La capacità di utilizzare la tecnologia e i media digitali in modo sicuro, responsabile ed efficace

Livello 2: creatività digitale

La capacità di diventare membri attivi dell’ecosistema digitale usando gli strumenti digitali per co-creare nuovi contenuti e realizzare le proprie idee

Livello 3: imprenditoria digitale

La capacità di utilizzare gli strumenti e i media digitali per affrontare sfide globali e per creare nuove opportunità

 

Strumenti necessari:

Capacità di gestire consapevolmente la propria identità digitale

Capacità di gestire equilibratamente il proprio tempo online

Capacità di gestire gli atteggiamenti negativi, propri e altrui

Capacità di implementare e gestire la sicurezza digitale

Capacità di implementare e gestire la riservatezza dei dati sensibili

Capacità di gestire e valutare le fonti di informazione online

 

 

 

Fonte:
World Economic Forum – 8 digital life skills all children need – and a plan for teaching them