Python Digital Clock – Un orologio davvero binario

Python digital clock

Python Digital Clock, ovvero un orologio che anziché utilizzare le lancette o i numeri, utilizza lo stato (acceso / spento) dei bit relativi.

Gli informatici sono una razza a parte. Forse peggio dei matematici (ma è comunque una bella lotta).

Si è soliti osservare l’informatico quadratico medio soccombere sotto lo stress di programmi bacati, specifiche non presenti e tempi di consegna assurdi. Lo troviamo seduto in una stanza buia, irrorato dalle onde elettromagnetiche di un multischermo, spesso alle prese con una fetta di pizza fredda o un bicchiere di caffè. Talvolta compone codice mentre chatta con un amico, talaltra crea arzigogoli pazzeschi solo per soddisfare il proprio genio artistico e non accedere alle (ben più) semplici librerie di funzione presenti.

Oggi presenteremo uno di questi inutili (ma nerdissimi) arzigogoli.

Un orologio binario

Quando si parla di codice binario, la mente giunge senza soluzione di continuità all’elettronica digitale, il cui primevo rappresentante è l’orologio.

Ma nel nostro caso l’orologio a circuito digitale non è abbastanza sofisticato. L’Informatico desidera qualcosa di più sottilmente perverso.

Ad esempio un orologio in cui ore, minuti e secondi sono codificati a livello di stato di bit all’interno del byte. Esempio classico:

  •   0 = 000000
  •   1 = 000001
  •   2 = 000010
  •   4 = 000100
  •   8 = 001000
  • 16 = 010000
  • 51 = 110011

e così via. Per ore, minuti e secondi.

Il programma

Il programma Python per ottenere tale risultato richiede, come al solito, solamente una manciata di righe di codice.

Utilizzeremo alcune graziose “emoji” per rendere il programma più piacevole alla vista. Una emoji altro non è che una specie di codice ASCII estesso, multibyte, che raccoglie l’universo mondo delle icone parlanti. Basta accedere ad una pagina in cui sono presenti gli esempi di codifica (io ho utilizzato questa) e scegliere il codice Unicide preferito, usandolo cone un carattere o una stringa qualunque.

Dalle prime righe del codice potete vedere che io ne ho usata una per rappresentare l’orologio, e due per rappresentare gli stati del bit (acceso o spento).

Definiamo ora una funzione che, ad una stringa di bit, restituisca una stringa di caratteri Unicode il cui stato sia quello del relativo bit.

Nel ciclo infinito leggiamo l’orario attuale, estraiamo le variabili che ci occorrono (ore, minuti e secondi) e stampiamo la stringa corrispondente al loro valore.

Quindi attendiamo un secondo, puliamo lo schermo e si riparte.

Per chi non ha eccessiva dimestichezza con la trascodifica binario/digitale, è possibile (all’inizio) stampare la data in formato decimale: basterà decommentare la linea

Buon divertimento!

 

 

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.