tecnologia

Scienza e tecnologia

Reti: il modello OSI per il networking

network topology types
Il Modello OSI, fondamentale per la comunicazione di rete, infrastruttura cruciale per il 3° millennio, spiegato in modo che sia comprensibile a chiunque:

1 - Physical Layer
2 - Data Link Layer
3 - Network Layer
4 - Transport Layer
5 - Session Layer
6 - Presentation Layer
7 - Application Layer

wikipedia

[via]

categorie: 

FastAPI e Rust

fastapi
FastAPI è una delle tecnologie più immediate per creare delle API. Ecco alcune delle feature:

- Documentazione automatica tramite OpenAPI, che permette di fare cose come generare codice Python che sappia parlare con le API.
- Documentazione sull'interfaccia utente che permette di comprendere facilmente e interagire direttamente con l'API.
- Validazione degli input tramite Pydantic, lo stesso strumento usato per generare gli schemi nella documentazione. Fondamentalmente basta annotare il vostro endpoint con gli input/output e questi vengono documentati e validati.
- Facile da testare usando qualcosa come pytest grazie ad alcuni fantastici strumenti inclusi e alla flessibilità dell'iniezione di dipendenza.
- La fantastica documentazione di FastAPI, alcuni dei migliori in giro, dà accesso ad alcune delle feature migliori.
- Facile da ospitare su AWS Lambda usando Mangum.

Ma qualcuno ha deciso di reimplementare il tutto in Rust

[via]

Intro to FastAPI - The Best Way to Create APIs in Python?

Learning FastAPI

Il Telaio Jaquard - Progenitore del Computer

In questo interessante articolo Before Lovelace si risale alle origini dell'era del computer, con il suo progenitore più antico: il Telaio Jaquard.

Fu creato dall'omonimo inventore francese agli albori del XIX secolo. Era capace di intrecciare disegni complessi con i fili del tessuto, governati individualmente, e soprattutto era programmabile con delle schede perforate: una tecnologia dismessa solo pochi decenni fa che permise di gestire i molti tra i primi supercomputer.

Il motore analitico di Babbage e di Ada Lovelace sarebbe comparso soltanto 40 anni dopo ed avrebbe a sua volta influenzato il lavoro di Alan Turing degli anni '30.

the jaquard loom
Untangling the Tale of Ada Lovelace

[via]

A Jacquard loom in action

How was it Made? Jacquard weaving

Building a Computer Controlled Loom

categorie: 

Come realizzare una buona API

API Design
Johanne Andersen ci racconta nel suo articolo Practical Advice to Good API Design come realizzare una buona Application Programming Interface. Per farlo ha preso spunto da un famoso googletalk video di Joshua Bloch: How to build good APIs and why it matters by .

Quali sono le caratteristiche di una buona API ?
- Facile da imparare
- Facile da usare, anche senza documentazione
- Difficile da usare in modo improprio
- Il codice che la utilizza deve essere di facile lettura e manutenzione
- Abbastanza potente da soddisfare i requisiti
- Facile da evolvere
- Adeguata al pubblico

Nella pratica:
- Una API dovrebbe fare una cosa e farla bene
- Una API dovrebbe essere più piccola possibile, ma non esagerare
- Non inserire i dettagli di implementazione nella API
- Ridurre al minimo l'accessibilità di tutto
- I nomi contano !
- La documentazione è importante
- Mai deformare una API per le prestazioni
- Ridurre al minimo i cambiamenti
- Creare sottoclassi solo dove ha senso
- Progettare e documentare per l'ereditarietà o vietarla
- Non far fare al client tutto ciò che il modulo potrebbe fare
- Applicare il principio della minima sorpresa
- Fail fast - Gli errori devono essere segnalati il più presto possibile dopo che si sono verificati.
- Fornire un accesso programmatico a tutti i dati disponibili sotto forma di stringa
- Sovraccaricare con cura
- Utilizzare i tipi di parametri e di ritorno appropriati
- Utilizzare un ordine di parametri coerente tra i vari metodi
- Evitare lunghe liste di parametri
- Evitare i tipi di restituzione che richiedono un'elaborazione ulteriore

Tradotto con www.DeepL.com/Translator (versione gratuita)
[via]

How To Design A Good API and Why it Matters

Rust Hobogo

rust hobogo

Hobogo è un interessante gioco online realizzato da Emil Ernerfeldt in Rust. L'autore ha anche pubblicato il codice su github.

Il gioco si svolge in una scacchiera dove due giocatori si alternano nel collocare i propri segnalini. Si può piazzare un proprio segnalino solo se nelle adiacenze ci sono più amici che nemici. Il secondo giocatore è interpretato da una IA che esegue una MonteCarlo Blind Search nell'albero decisionale per 1 secondo, e non è affatto debole.

Hobogo è in realtà una demo di egui, una interfaccia web in "immediate mode" che esegure direttamente nel browser, sempre in rust, senza l'uso di html, dom, javascript.

Rust Windows in the browser with Egui demo


Come Navigare in un Mare di Informazioni

«Ci sono due pesci che nuotano e a un certo punto incontrano un pesce anziano che va nella direzione opposta, fa un cenno di saluto e dice: "Salve, ragazzi. Com'è l'acqua?" I due pesci giovani nuotano un altro po', poi uno guarda l'altro e fa "Ma che diavolo è l'acqua?"»

- David Foster Wallace

Una domanda che i "nativi digitali", le persone di una certa età e anche tutti gli altri si dovrebbero porre: come si naviga in mezzo ad un oceano di informazioni ? E' il caso di restare per sempre nella propria isoletta social, apparentemente al riparo dai pericoli del "mare aperto" ? Come si fa a sopravvivere al bias di conferma (la parola bias su wiktionary) ? E' davvero il caso di fidarsi degli "influencer" da milioni di follower ? Il paradosso dell'intera conoscenza dello scibile umano sempre a portata di click è che dilaga l'ignoranza. E questo semplicemente perchè, appoggiandosi ad una metafora da videogioco, invece di imparare le regole partendo dai livelli più semplici e poi accedendo a quelli più difficili, sul web e sui social tutti i livelli sono presenti contemporaneamente. E volendo indulgere nella suddetta metafora, alcuni livelli difficili si presentano come semplicissimi...

Chi pensa di "sapersi arrangiare", che sia tutto così intuitivo grazie al proprio smartphone, forse è il caso che riveda la propria posizione. Per esempio facendosi una domanda: quante volte il web e i social sono stati davvero alla base di qualche evento negativo successo ultimamente ? E qual'è la tendenza ? Si è davvero sicuri di avere il controllo di quello che ci succede, oppure non c'è una vaga sensazione di essere controllati dietro a quella ridda di gattini, foto di momenti epici altrui e complotti vari che si succedono sullo schermo "come con i rulli delle slot machine" ?

Personalmente, da ingegnere informatico che ha visto il web nascere, crescere, che se lo è studiato a tutti i livelli e che ci lavora quotidianamente, non sono mai stato tanto disorientato, e tanto preoccupato per una jungla inestricabile di interessi che si stanno letteralmente divorando il tempo, e non solo, di centinaia di milioni di persone, me compreso.


Crash Course Navigating Digital Information Preview

The Queen's Gambit - Il sonoro

The Queen's Gambit
Spesso si sottovaluta l'importanza del suono in un opera audiovisiva. Il suono è importante perché coinvolge il pubblico: aiuta a fornire informazioni, aumenta il valore della produzione, evoca risposte emotive, enfatizza ciò che è sullo schermo e serve a dare indicare il "tono". Quando vengono usati bene insieme, il linguaggio, gli effetti sonori, la musica e persino il silenzio possono elevare drammaticamente il video. Ma è ancora più vero il contrario: un cattivo suono può rovinare il video, magari lavorando anche a livello inconscio.

L'audio non può risolvere l'animazione scadente, un montaggio di basso livello o il movimento di una telecamera amatoriale. Tuttavia, quando si tratta di creare un'esperienza completa per il pubblico, l'audio è probabilmente più importante della qualità video. Il suono aggiunge emozione e collega le persone a ciò che vedono. Supporta ogni visuale e ogni taglio, e definisce lo stato d'animo e il tono generale della narrazione.

A Sound Effect intervista il sound designer Wylie Stateman e il montatore Eric Hoehn sul loro lavoro per "The Queen's Gambit", la serie dell'anno a sorpresa su Netflix.

Studying The VFX Of The Queen's Gambit

[via]

Cos'è una particella ?

particle quanta magazine Ashley Mackenzie

What Is a Particle?

"Cos'è una particella ?" si chiede Natalie Wolchover su Quanta Magazine nella sua serie di articoli sulle strutture nascoste.

Si pensa sempre a molte cose: un oggetto puntiforme, un'eccitazione di un campo, un granello di pura matematica che si è intrufolato dentro alla realtà. Ma mai la concezione di una particella da parte dei fisici è cambiata più di quanto non stia cambiando in questi ultimi tempi. La descrizione dipende spesso dallo strumento usato, dalla disciplina che la esprime, dal punto di vista del ricercatore.

Una particella diventa di volta in volta una funzione d'onda collassata, l'eccitazione quantistica di un campo di energia, l'irriducibile rappresentazione di un gruppo, un oggetto stratificato, una deformazione dell'ocenao di Qubit, perfino la vibrazione di stringhe ad 11 dimensioni.

Sembra che la realtà, così sfaccettata al nostro livello di percezione, moltiplichi indefinitamente il suo aspetto scendendo nel dettaglio, un interessante concetto controintuitivo, che forse ha più di un risvolto filosofico. COme ai bei vecchi tempi di Democrito e Aristotele.

image credit: Ashley Mackenzie

[via]

Carlo Rubbia on the Future of Particle Physics

categorie: 

AI Hub

AI hub homepage
AI Hub offre una raccolta di risorse per sviluppatori e data scientist che si occupano di sistemi di intelligenza artificiale (AI). Si può eseguire il training di un modello di machine learning (ML) in un notebook o implementatelo in un servizio gestito. Trovare e implementare pipeline di ML. Esplorare e riutilizzare i moduli TensorFlow. Scoprire la soluzione migliore per servire e gestire il vostro modello una volta addestrato. Si può imparare da tutorial ed esempi approfonditi.

Colab Notebook Search
Tensorflow modules

Docs


Digital Garden - Self Wiki

Digital Garden - Self Wiki
Come faccio a ricordare tutto quello che imparo ?

La risposta a questa domanda, apparentemente impossibile, trova una soluzione piuttosto efficace: creare un wiki della propria conoscenza, divisa per argomenti. Questo processo viene chiamato da alcuni, creare il proprio giardino digitale, il proprio digital garden.

Lo hanno già fatto in molti, e questi sono i loro wiki, a disposizione dichiunque per poterne prendere spunto e addirittura prendere nota delle cose imparate !

Il punto di partenza è stata questa discussione.

Il digital garden di RIchard Litt

Learn Anything
meta-knowledge
Awesome Lists

image credit: Camila Cerda

Learning how to learn | Barbara Oakley | TEDxOaklandUniversity

Quattro Stadi di Competenza di una Abilità

four stages of competence

Secondo un modello psicologico descritto nel 1969 da Martin Broadwall nel suo "four levels of teaching" si possono definire generalmente quattro stadi di competenza relativamente ad una qualsiasi abilità (skill).

Si va dalla "non conoscenza", nella quale l'unica cosa che si può usare è l'intuito, ma sbagliando perchè non si è approfondita ancora la materia.
Poi si passa alla "incompetenza conscia" nella quale si conosce quello che non si sa della materia e quindi si possono azzardare delle analisi citandone gli aspetti principali, ma molto probabilmente sbagliando.
Poi si arriva alla "competenza conscia" che permette di fare delle analisi corrette.
Ed infine si arriva alla "competenza inconscia", Nella quale si padroneggia abbastanza da poter mettere in campo anche l'intuito.

Nelle organizzazioni il trasferimento di queste competenze avviene secondo altri 4 livelli: SECI model of knowledge dimensions


categorie: 

Principi della metodologia Toyota

the toyota way toyotashiki
Ecco alcuni dei principi del "Metodo Toyota", che da decenni ispira alcune delle best practice di management in vari settori industriali di tutto il mondo, in giapponese si pronuncia "toyotashiki" (トヨタ式).

Kaizen (改善, "miglioramento"): in giapponese significa semplicemente miglioramento, nel senso generale, da piccolo e occasionale a grande e continuativo. Nell'accezione economica internazionale invece è diventato sinonimo di quest'ultimo concetto, instaurare la tendenza a un costante miglioramento di ogni aspetto della produzione.

Metodologia 5S, le 5 "S" stanno per:
seiri (整理) in giapponese semplicemente "ordine", ma economicamente: "priorità" (sort).
seiton (整頓) in giapponese tenere in ordine, a portata di mano, ma economicamente "gestione ordinata" (set in order).
seisō (清掃) in originale "pulizia", ma nel metodo "far brillare" (shine)
seiketsu (清潔) in Giappone "pulito, igenicamente", ma che diventa "standardizzare" (standardize)
shitsuke (躾) originale "educazione", che diventa "mantenimento" (sustain/self-discipline).

Genba ("gemba"): il "posto reale", la "scena del delitto". Diventa la gestione localizzata con sopralluogo e interviste dove avviene il lavoro vero, per rendersi conto direttamente dei problemi e individuare soluzioni pratiche e realistiche.

[via]

Verso un Acceleratore di Conoscenza Universale

La mente umana rimane un "motore di innovazione" senza pari, con la sua capacità unica di dare un senso alle informazioni complesse e di trovare profonde connessioni analogiche che hanno guidato il progresso della scienza e della tecnologia negli ultimi millenni.

La recente esplosione di informazioni disponibili online in quasi tutti i domini dovrebbe rappresentare un'opportunità per accelerare questo "motore", ma minaccia invece di rallentarlo man mano che si raggiungono i limiti di elaborazione delle informazioni delle singole menti coinvolte.

La Legge di Brooke

In questo video Aniket Kittur parla degli sforzi per costruire un acceleratore universale della conoscenza: un sistema in cui persone si impegnano online per consolidarlo e condividerlo con altri, portando a cicli virtuosi di miglioramento continuo delle fonti di informazione che a loro volta aiutano le persone a sintetizzare e innovare in modo ancora più efficace.

Circa 70 miliardi di ore all'anno, solo negli Stati Uniti, sono dedicate a questo sistema online in settori che vanno dalla letteratura scientifica alla salute; catturarne anche solo una frazione potrebbe fornire benefici significativi. Si discutono quindi tre livelli integrati di ricerca che sono necessari per realizzare questa visione:
a livello individuale nella comprensione e nella cattura della cognizione di ordine superiore;
a livello computazionale nello sviluppo di nuovi sistemi di interazione e partner di intelligenza artificiale per la cognizione umana;
a livello sociale nello sviluppo di sistemi complessi e creativi di crowdsourcing e di social computing.

A scientific approach to Learning


categorie: 

Reti Logiche

Reti Logiche

Online Logic Simulator permette di sperimentare, direttamente online, con i gate delle reti logiche, i componenti di base dei computer, implementati tramite transistor nei chip.

Ci sono già dozzine di circuiti predisposti, dei i quali si può finalmente comprendere il funzionamento nel dettaglio, e si possono fare modifiche a piacimento.

Ottimo anche per la progettazione, e la verifica che tutto funzioni prima di armeggiare con l'hardware.

github
Digital electronics


categorie: 

Omeostasi e Dopamine Detox

L' omeostasi è la tendenza naturale del corpo a mantenere il suo stato di equilibrio. La dopamina è un ormone e neurotrasmettitore che causa una sensazione piacevole. Qualsiasi attività rilascia quantità di dopamina, ma alcune attività, come l'assunzione di droghe, ne rilasciano quantità innaturali.

I comportamenti che generano microrilasci di dopamina frequenti (ad esempio usare il cellulare per scorrere le infinite timeline dei social) contribuiscono ad aumentare la tolleranza alla dopamina, di fatto rendendo progressivamente meno "divertenti" certe attività. E' la cosiddetta "instant gratification". Per questo sarebbe consigliabile cercare di abbassare i livelli e farli tornare normali con una giornata di "astinenza da dopamina", nella quale si cerca di "annoiarsi". L'effetto positivo è quello di riuscire a fare attività più approfondite ma meno appaganti nell'immediato più facilmente, ed ingannare il cervello in modo da riuscire a portarle a compimento.

Una ottima soluzione per riuscire ad invertire la tendenza infatti è quella di associare le attività che si vorrebbero fare, quelle a basso rilascio di dopamina (leggere un libro, fare esercizio, studiare) ad una ricompensa ad "alto rilascio" (una caramella, una partitella, ecc.).

E' pavlovianamente ovvio no ? E allora traiamone beneficio.

The Social Dilemma

[via]

categorie: