Archivi autore: .mau.

Informazioni su .mau.

matematto non praticante

Niklaus Wirth

Niklaus Wirth Credo che tutti gli smanettoni informatici della mia generazione sappiano perfettamente chi fosse Niklaus Wirth, morto a Capodanno a 89 anni; e molti conoscevano anche la battuta apocrifa “In genere gli europei pronunciano il mio nome correttamente, mentre gli americani lo storpiano in ‘Nickel’s Worth.’ (‘Vale un nichelino’): insomma gli europei mi chiamano per nome, gli americani per valore”. Quasi tutti gli smanettoni di cui sopra hanno programmato in Pascal, il linguaggio da lui ideato: credo che il Turbo Pascal Borland sia stato uno dei programmi più piratati degli anni ’80.

Io invece non ho mai programmato in Pascal :-) In effetti mentre studiavo matematica mi ero portato avanti con il lavoro e avevo dato Sistemi 1 a informatica: andai a metà dicembre dal professore a chiedere il programma che prevedeva anche di scrivere (a mano, mica al computer!) un programma in Pascal, a Capodanno aprii per la prima volta il testo, il 6 gennaio sera chiesi a un mio amico informatico “scusa, mi dici quando devo mettere il puntoevirgola finale e quando no?”, la mattina del 7 entrai in aula e dopo un’oretta ne uscii dopo aver dato scritto e orale, per poi dimenticare quando mettere il puntoevirgola :-)

Ma a parte tutto, Wirth è stato fondamentale per passare dal paradigma di programmazione “quasi assembler” del FORTRAN (ma anche del BASIC) a quello algoritmico-strutturato. Il Pascal non è stato il primo linguaggio di programmazione con le strutture begin/end; ALGOL lo ha preceduto di quasi un decennio. Ma è stato il primo linguaggio di programmazione che fu studiato per insegnare a programmare “bene”, costringendoti a strutturare gli algoritmi; ed è per quello che ha avuto tutto quel successo. Se riuscivi a compilare un programma in Pascal senza che ti venisse sputata una serie di errori avevi qualche speranza di avere messo in pratica quello che volevi davvero fare. L’informatica cominciò così a diventare un mestiere, e non un’arte. Dite niente…

(Immagine di Thuresson, da Wikimedia Commons, PD)

Quizzino della domenica: Peggio la toppa che il buco

Un carpentiere ha a disposizione due tavole di legno, una 2m x 5m e l’altra 1m x 1m, per riempire un buco rettangolare di 3m x 4m. Taglia antrambe le tavole in due parti e riassembla i pezzi per riempire apparentemente il rettangolo. Dov’è il buco?

le due tavole
(trovate un aiutino sul mio sito, alla pagina https://xmau.com/quizzini/p677.html; la risposta verrà postata lì il prossimo mercoledì. Problema dalla Ontario Mathematics Gazette.)

L’architetto e l’oracolo (ebook)

Finalmente sono riuscito a trovare un testo che parli delle AI di ultima generazione in modo apprezzabile. Il punto è che io ho un’idea di base di come possono funzionare, e mi accorgo subito se qualcuno sta menando il can per l’aia. Come del resto dice nel titolo, Roncaglia vede Wikipedia e le AI generative come due modelli di conoscenza complementari: la prima si occupa di organizzare la conoscenza, le seconde escono dalla logica compilativa e provano a trovare nuove connessioni tra le informazioni per ampliare la conoscenza. (Dal suo punto di vista è irrilevante che le AI siano “intelligenti” oppure no: tanto siamo noi che prendiamo i risultati e ci facciamo qualcosa). Non saprei dire se questa sua tesi sia completamente valida, però mi sembra un ottimo punto da cui partire per una nuova visione della conoscenza.
Il libro è diviso in quattro parti: nella prima Roncaglia fa una storia dei modelli elettronici di organizzazione delle informazioni (sulla gestione tecnica di Wikipedia ha preso un paio di svarioni, che però sono ininfluenti nel contesto: la sua trattazione del modello è corretta e dà begli spunti). La seconda parte parla appunto dell’evoluzione delle AI e dei vantaggi e svantaggi del loro attuale modello oracolare-probabilistico. Seguono due parti apparentemente scorrelate: nella terza Roncaglia cerca di capire cosa succede con l’esternalizzazione della nostra memoria e il nostro affidarci a supporti esterni; nella quarta racconta come la contrapposizione è stata vista in alcune opere di fantascienza, a partire dal ciclo asimoviano della Fondazione.
Il testo è davvero interessante e consigliabile!

(Gino Roncaglia, L’architetto e l’oracolo : Forme digitali del sapere da Wikipedia a ChatGPT, Laterza 2023, pag. 256, € 12,99 (cartaceo: 19), ISBN 97888581536599788858153659)
Voto: 5/5

dopo il Dottor Sottile…

Paolo Benanti Diciamo che lo scorso ottobre la nomina di Giuliano Amato alla presidenza della Commissione sull’Intelligenza Artificiale mi aveva fatto immaginare che la Commissione in questione fosse semplicemente un baraccone politico: l’unico dubbio era come mai Meloni avesse scelto Amato. Ieri il PresConsMin ha spiegato urbi et orbi che la nomina era stata fatta a sua insaputa: Amato avrà deciso che tanto non veniva comunque considerato dai media e ha alzato le tende, non senza dire che “ci perdono qualcosa”.
Con incredibile rapidità il governo ha nominato un nuovo presidente: un prete, padre Paolo Benanti. Non ci sono dubbi sulle sue competenze in materia, intendiamoci: tanto per dire, il segretario generale dell’ONU Guterres l’ha inserito nel New Artificial Intelligence Advisory Board. Però fa un po’ ridere che dopo chi ha come soprannome quello del sacerdote e teologo Duns Scoto si sia scelto di passare direttamente a un sacerdote…

(foto: autore Paolo Pegoraro, da Wikimedia Commons – CC-BY-SA 4.0)

charmap

l'output di charmap cercando la cedilla
Charmap è un’utility Windows che immagino ci sia da una vita ma non avevo mai scoperto fino a poco tempo fa. Ti permette di copiare un carattere, ma soprattutto ti permette di cercare un carattere se hai un’idea di quello che ti serve: nella figura potete vedere tutti i caratteri Unicode che hanno una cedilla. D’accordo, non cambierà la vita, ma almeno la migliora un pochettino!

Uomo batte Tetris

i pezzi del tetris Chi ha la mia età (ma forse anche una decina d’anni in meno) ha sicuramente giocato a Tetris in una delle infinite versioni. A quanto pare la più antica per console è quella Nintendo: leggo dalla BBC che un adolescente statunitense è riuscito a “rompere il gioco”, arrivando a un livello – il 137 – dove la console si blocca. Il tutto è stato reso possibile da una tecnica di gioco ideata nel 2010, l’ipertocco (“hypertapping”), in cui il movimento apparentemente inconsulto delle dita sul joystick è molto più veloce di quello standard e della velocità di caduta dei pezzi. Evidentemente i programmatori non avevano pensato che si potesse arrivare così in là, altrimenti avrebbero usato qualche kilobyte per una schermata “mi arrendo…”

L’unico mio dubbio è quello della frase “but as of last month, only AI had been able to reach the game’s true kill screen.” Come fa un’AI a muovere i pezzi del Tetris? E se si parla di movimento virtuale (un programma vede la posizione, sceglie una mossa, e questa mossa viene eseguita) a che serve un’AI quando basta un normale programma con un’euristica adatta? Ma si sa, oggidì bisogna sempre parlare di intelligenze artificiali…

Aggiornamento: (14:30) su Mastodon lowlevel mi segnala questo post di Tom’s Hardware (americano), dove la mia ipotesi che il sistema automatico per giocare a Tetris non fosse un’AI è confermata – ma non ci voleva molto – e specifica una cosa interessante. Il crash è dovuto a un bit overflow, quindi a un baco di programmazione che può arrivare in momenti diversi del gioco a seconda di come si è sviluppato. In realtà se non ci fosse il baco la versione Nintendo farebbe semplicemente rollover: dopo il livello 255 tornerebbe al livello 0.

Il principio dei cassetti – risposte ai problemi

La scorsa settimana ho parlato del principio dei cassetti e vi ho lasciato tre problemi. Se non siete riusciti a risolverli ecco qua come si fa.

I 15 cavalieri della tavola rotonda hanno pasteggiato un po’ troppo prima di sedersi a discutere, e quando si sono seduti nessuno di essi era seduto al proprio posto. Dimostrate che è possibile ruotare la tavola in modo che ci siano almeno due persone al posto corretto.

Per ciascun cavaliere calcoliamo di quanti posti in senso orario è spostato rispetto alla posizione che dovrebbe avere. Visto che sappiamo che nessuno è al suo posto, a ciascuno di loro sarà assegnato un numero da 1 a 14. Ma i cavalieri sono 15: per il principio dei cassetti due cavalieri devono avere lo stesso numero. Basterà allora ruotare la tavola in senso antiorario di quel numero di posizioni perché loro due siano al loro posto.

Se scegliete sei numeri interi tra 1 e 999 ce ne saranno almeno due la cui differenza è un multiplo di 5.

In questo caso il 999 è una falsa pista: quello che conta è che i numeri sono interi. Calcolate i resti modulo 5 dei sei numeri: possono essere solo 0, 1, 2, 3 e 4. Essendoci sei numeri e cinque possibili resti, per il principio dei cassetti due di essi devono avere lo stesso resto, e quindi la loro differenza sarà un multiplo di 5.

Avete una bilancia a due piatti e 28 monete, una delle quali è più pesante delle altre. Dimostrate che non è possibile trovare quale sia la moneta più pesante con tre pesate.

In questo caso si usa il principio dei cassetti in una forma leggermente diversa da quella standard. Ogni pesata ha tre esiti possibili: il braccio sinistro è più pesante, il braccio destro è più pesante, la bilancia resta in equilibrio. Qualunque combinazione di monete si scelga di pesare ci sarà la possibilità che la moneta più pesante sia in un gruppo di almeno dieci monete; nell’ipotesi migliore 27 monete possono essere assegnate a nove a nove ai tre esiti, ma la ventottesima creerà un gruppo da 10. Con lo stesso ragionamento la seconda pesata lascerà la possibilità che la moneta più pesante sia in un gruppo da 4, ed evidentemente la terza pesata non potrà trovare con certezza la moneta pesante perché gli esiti possibili sono solo tre. Attenzione: questo ragionamento non dimostra che sia sempre possibile trovare la moneta pesante in un gruppo da 27 (nella pratica lo è, ma occorre trovare un modo per suddividere le possibilità in modo uniforme tra i tre esiti), ma è semplicemente una dimostrazione di impossibilità.