domenica 30 giugno 2019
Risoluzione Infinita
Tutta fiera, la bolletta di SEN (Servizio Elettrico Nazionale), che ancora ricevo in formato cartaceo (sarò retrogrado, probabilmente), mi spinge ad attivare Bollett@ Online, per ricevere le bollette via e-mail anziché via posta. Di per sé nulla di strano (a parte che l’utilizzo del ‘@’ nel nome mi ha fatto ripiombare negli anni ‘90 quando ciò “faceva moderno”. Ehi, mi fanno addirittura lo sconto di 6 euro l’anno! Come perdere questa golosissima occasione?
Ed è anche facile: basta inquadrare il QR code con lo smartphone. Ecco:
Qual è il problema? proprio il QR code. Quel codice è illeggibile. No, non all’occhio umano, ma a qualsiasi smartphone. I pixel sono troppo piccoli, perché il testo contenuto nel codice sarà troppo lungo. Aggiungiamo che viene stampato con una risoluzione scadente, su carta imperfettamente ruvida, ed il risultato è garantito: il codice non ha la risoluzione grafica sufficiente per essere decodificabile.
[Nota: lo ‘zig-zag’ è stato aggiunto per proteggere gli eventuali dati presenti, non fa parte del codice originale]
Questa è una lunga catena di incompetenza: dal programmatore dei sistema di backend, che ha fornito una URL (sarà una URL?) esageratamente lunga (mai conosciuti gli URL shortener), al programmatore che ha adattato il software per la creazione delle bollette, aggiungendo il QR code, senza porsi il problema della dimensione, al grafico che ha impaginato la bolletta senza rendersi conto che stava inserendo un elemento illeggibile, al controllo qualità (ma ci sarà) che probabilmente non aveva idea di cosa fosse il QR code, a parte che era una cosa “moderna” e “digitale”.
C’è questa illusione che il digitale sia infinitamente preciso e privo di errori, ma il concetto base del digitale è proprio la quantizzazione dell’informazione che avviene ad ogni interfaccia tra il mondo digitale e quello analogico. Sono parole troppo difficili. Bisogna pensare. Ed avere persone competenti. Meglio far finta di essere in una puntata di CSI, dove si può zoomare all’infinito in qualsiasi immagine.
lunedì 13 maggio 2019
Sostenibilità? Non bastano le buone intenzioni
Ieri ho passato la giornata al Salone del Libro di Torino (non lo chiamo “Salone Internazionale” perché la dimensione internazionale era veramente evanescente).
Una delle caratteristiche di questa edizione è una maggiore attenzione alla sostenibilità, ed in particolare alla raccolta differenziata dei rifiuti. All’interno del salone vi erano bidoni diversi (plastica, indifferenziato), ed in un paio di casi ho visto degli addetti presidiare tali bidoni e suggerire la collocazione corretta dei rifiuti.
Lodevole intento, soprattutto per separare la grande quantità di plastica (penso alle bottigliette d’acqua) che si genera in eventi di questo genere.
Ma allora perché ai cancelli di ingresso mi hanno sequestrato la borraccia (di plastica) che mi ero portato da casa proprio per non usare bottiglie usa e getta?
Piuttosto che separare i rifiuti (cosa ovviamente utile e necessaria), non sarebbe meglio evitare di produrli (anche per azzerare i costi della raccolta)?
Fortunatamente mi ero portato da casa anche un paio di bottigliette di plastica tradizionali (quale ingegnere non ha un Piano B pronto per ogni occasione?), le quali sono invece entrate liberamente al Salone senza suscitare alcun dubbio da parte degli addetti. Mah.
Devo dire che mi dispiace ancor più perché la borraccia era di mia figlia (8 anni), che utilizza a scuola, perché ai bambini, invece, hanno insegnato a riusare il contenitore dell’acqua. La scuola fa dei passi educativi, la società li vanifica e li mortifica.
Meno slogan, più coordinamento. Chissà se imboccheremo mai questa strada?
P.S.1. abbiamo potuto recuperare la borraccia all’uscita
P.S.2. ci sarebbero anche altri aspetti da rilevare (perché non c’erano contenitori per la carta? perché i bidoni non erano ben identificabili attraverso i colori convenzionali?), ma affrontiamo un punto per volta.
venerdì 3 maggio 2019
Tips: Unigram
Non c’è dubbio che Telegram sia una piattaforma di gran lunga migliore di WhatsApp, soprattutto perché è basata su un’architettura cloud “vera” (che gli permette di essere multi-device) e non sul database di messaggi e immagini immagazzinato sul telefono dell’utente.
Particolarmente comoda è l’esistenza di molte diverse applicazioni (mobile, web, desktop) tutte sempre sincronizzate ed intercambiabili: https://telegram.org/apps
In mobilità utilizzo l’applicazione Android, mentre quando sono in ufficio utilizzo l’applicazione nativa (quella presente sul Windows Store).
L’applicazione Android ha la capacità di supportare nativamente più account diversi, permettendo così di gestire diversi profili e cambiare rapidamente tra di essi. L’applicazione desktop ufficiale, invece, non ha questa capacità.
Si trovano diverse guide per permettere di attivare diverse istanze di Telegram Desktop in parallelo, ciascuna su un profilo diverso, ma è una soluzione pesante in termini di risorse e tutto sommato poco elegante.
Ma il fatto che (1) esiste un problema e (2) il protocollo e le API di Telegram sono pubbliche, fanno sì che gli sviluppatori si diano da fare e trovino delle soluzioni al problema. Le API aperte vincono sempre!
Ed infatti esiste Unigram, che è un clone praticamente identico di Telegram (tra l’altro, open source) che ha implementato la funzionalità multi-profilo. Per la massima comodità, anche Unigram è disponibile sul Windows Store.
sabato 16 marzo 2019
Pigrecate
Anche quest’anno è appena passato il 14 marzo, che internazionalmente è il giorno dedicato a PiGreco (3.14). Il bello di questa ricorrenza è che si sentono ripetere molte scemenze pseudo-matematiche. E molti ad applaudirle a bocca aperta, dimostrando di non voler applicare la dose minima di ragionamento e senso critico.
La mia preferita? il fatto che PiGreco, poiché è un numero trascendente, e come tale ha un’espansione decimale infinita e non periodica, comprenderebbe nella sua espansione qualsiasi sequenza di cifre (quindi anche il tuo compleanno, il tuo saldo in banca, il numero di telefono di Belen, il risultato della prossima estrazione del SuperEnalotto, e così via). Molto poetico ed ispiratore, ma purtroppo falso (o meglio, non è noto se sia vero).
Ricordiamo i fatti (mi scusino i matematici veri per le semplificazioni):
- è vero che l’espansione di PiGreco è infinita
- è vero che tale espansione non è periodica (ossia non esiste una sequenza di cifre che, da un certo punto in avanti, si ripete sempre uguale)
- queste proprietà sono valide in qualsiasi base si esprima il numero.
Ma l’infinito è grande. Il fatto che ci siano infinite cifre, sempre diverse, non implica che una determinata sequenza debba necessariamente essere presente. Posso andare avanti con infinite cifre senza mai ripetermi ed evitando sempre (ad esempio) la sequenza 111222333444.
Dimostrazione:
- Esprimete PiGreco in base 9. PiGreco=3,124188124074472… (fonte OEIS)
- Ovviamente, avrà una espansione infinita e non periodica.
- Ma, per costruzione, la sua espansione (pur essendo infinita e non periodica) non conterrà mai la cifra ‘9’ (che in base 9 non esiste)
- Ora, rileggiamo il numero in base 10 (non vale più PiGreco, ma non importa)
- Avremo una sequenza numerica infinita, non periodica, che non conterrà mai ‘9’ né alcuna sequenza che contenga ‘9’.
Quindi non è detto che un numero trascendente possa contenere ogni possibile sequenza. Per poterlo dire sarebbe necessario ipotizzare in più che PiGreco sia un Numero Normale (il che non è al momento ancora noto), ed anche il tal caso sarebbe vero solamente in senso statistico (la probabilità di trovare una sequenza tende al 100%).
Se vogliamo costruire un numero che contenga ogni possibile sequenza, c’è un metodo molto più semplice (anche se meno poetico-evocativo):
0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 … 98 99 100 101 102 … 999 1000 1001 … (Ha anche un nome: è la costante di Champernowne)
È un po’ lungo, e decisamente noioso, ma tanto l’infinito è grande e c’è spazio per tutti… prima o poi troverai il numero che ti serve.
P.S. se ho commesso degli errori matematici, sarei ben lieto di essere corretto.
venerdì 15 febbraio 2019
Condividere un file
Succede spesso che gli studenti inviino una e-mail per chiedere chiarimenti sull’esercizio che stanno svolgendo.
Ecco i metodi utilizzati per condividere l’esercizio che stanno svolgendo, che vanno dal meno frequente (ma più adeguato) al più frequente (ma orribile da tutti i punti di vista):
- Codice sorgente su un repository GitHub, inviando il link al repository.
Nota: non succede mai, ma sarebbe il mio sogno. - Codice sorgente completo (es. progetto Eclipse o progetto PyCharm) inviato come zip.
Nota: quando lo zip supera i filtri dell’anti-spam, è un po’ scomodo da gestire, ma alla fine sei sicuro che ci sia tutto. - Codice sorgente parziale (es. solo un file, o parte di un file), inviato come allegato di e-mail.
Nota: a patto che l’errore sia proprio in quel file (e comunque non hai modo di provarlo, quindi devi andare “ad istinto”… e sappiamo tutti quanto vale l’istinto nel debug). - Codice sorgente parziale, incollato nel corpo della e-mail.
Nota: spazi, indentazioni, caratteri speciali, se se sono andati a farsi friggere. - Videata del codice sorgente (screenshot del PC), inviata come file immagine via e-mail.
Nota: molto stupido (vedi solo una parte di un file, e non puoi studiarlo né modificarlo) e molto raro (quasi nessuno sa come salvare su file uno screenshot preso da PC… suggerimento: in Windows c’è uno “Strumento di Cattura”, oppure usate il freeware Greenshot). - Videata del codice sorgente, sbilenca e sfocata, ottenuta fotografando lo schermo con un cellulare.
Nota: è di gran lunga la modalità più utilizzata. Di solito è impossibile capire cosa stavano facendo e cosa poter rispondere. Infatti, solitamente non rispondo, o chiedo che inviino il file originale.
Ma soprattutto il dubbio amletico è: stai lavorando su un file, sei su un PC (o Mac che sia), hai un programma di posta… come ti viene in mente di fare una foto allo schermo?
Ovviamente temo il momento in cui mi invieranno un video in cui mi spiegano a voce il problema, inquadrando lo schermo con fare tremolante ed incerto. Lo temo, ma so già che prima o poi arriverà.
lunedì 14 gennaio 2019
The cat black
The cat black? Orrore! Lo sanno tutti che in inglese gli aggettivi vanno prima del nome: The black cat è la forma corretta. Sarà probabilmente una regola che vi hanno insegnato alla terza lezione di inglese.
Lo sanno tutti!
Lo sanno tutti?
Beh, probabilmente non i curatori di questa campagna di sconti, che hanno stampato probabilmente decine di migliaia di “shopping bag reusable and recyclable”.
Per fortuna che hanno precisato “Made in Italy”, manca forse il “and written in Ital-inglisc”. Sicuramente gli sconti li hanno fatti sui traduttori…
venerdì 11 gennaio 2019
Elenchi Laureati Politecnico
Succede spesso di ricevere richieste da parte di aziende che vogliano contattare studenti neolaureati. Mi sono reso conto che gli elenchi di laureati, pur essendo disponibili sul sito del Politecnico, non sono facili da trovare (ed anzi, una ricerca su Google rimanda ad un servizio dismesso dal 2011).
Per chi fosse interessato, la pagina da visitare per ricercare i profili di studenti e laureati del Politecnico è: http://stagejob.polito.it/aziende/profili_studenti_e_neolaureati
È disponibile una visualizzazione di tipo anonimo (senza dati identificativi dello studente, ma solo con dati riassuntivi sulla carriera e sulla tesi di laurea svolta) accessibile a tutti. Le aziende, inoltre, possono registrarsi e consultare le informazioni complete sugli studenti selezionati.
Unico problema: i laureati nel settore ICT, soprattutto quelli più bravi, tendono ad essere già occupati sin dal giorno della laurea (talvolta anche prima). Ma a questo problema si può ovviare solamente aumentando il numero di studenti e studentesse che scelgano una carriera informatica.
mercoledì 9 gennaio 2019
Tasto “Ricarica”
Alcune di queste, posizionate nelle stazioni, possono anche attivare un nuovo abbonamento acquistato on-line o attraverso altri canali (ad esempio, convenzioni aziendali), ricaricando la relativa tessera.
La procedura per ricaricare è autoesplicativa e documentata a caratteri belli grandi sulla macchinetta stessa e, se non bastasse, anche a fianco della stessa.
Ci sarebbe da chiedersi: perché hanno dovuto scrivere due volte le istruzioni per la ricarica? in fondo è semplicissimo: basta premere il tasto “Ricarica”.
Solo che… il tasto “Ricarica” non esiste, bisogna invece selezionare “Attiva titolo”. Ovvio, no?
lunedì 7 gennaio 2019
Tips: Dizionario italiano in JetBrains
Gli IDE prodotti da JetBrains sono ottimi strumenti per lo sviluppo di applicazioni nei più disparati linguaggi. Inoltre, le versioni professionali degli IDE sono gratuite per studenti e docenti. In particolare, uso molto spesso PyCharm per programmare in Python.
Nella scrittura del codice, PyCharm segnala non solo (ovviamente!) gli errori di sintassi, semantica e stile nel codice, ma anche gli errori di ortografia (spelling) contenuti nei nomi delle variabili, delle funzioni, e nelle stringhe di testo.
Il controllo ortografico avviene normalmente in lingua inglese, ma è possibile aggiungere dizionari anche di altre lingue. Ad esempio, spesso noi italiani utilizziamo un misto di italiano ed inglese sia come identificatori di variabili e funzioni, sia come messaggi in output.
La procedura per installare nuovi dizionari è ben documentata in questa pagina della documentazione ufficiale JetBrains. e vengono supportati sia dizionari sotto forma di lista di parole (una parola per linea, con estensione .dic), sia dizionari nel formato Hunspell (composti da un elenco di parole .dic ed una serie di regole di modifica .aff), che però richiedono l’installazione di un plugin aggiuntivo.
Personalmente propendo per la maggior semplicità del semplice elenco di parole. Il passo successivo è: dove si trova un elenco (completo, aggiornato) di parole italiane? La cosa più semplice è fare riferimento ai dizionari ridistribuiti dall’editor WinEdt, che sono scaricabili da questa pagina.