In questo esempio: Build your first Blazor app, è facilissimo far partire una applicazione Hello World dotnet standard, che risponde in locale, e può essere facilmente modificata. Queste tecnologie, quando si muovono i primissimi passi, possono essere molto complesse.
Questo articolo di open culture parla del blu. "Un colore fa parte di uno spettro, quindi non si può scoprire un colore", dice il professor Mas Subramanian, un chimico dello stato solido alla Oregon State University. "Si può solo scoprire un materiale che è di un colore particolare" o, più precisamente, un materiale che riflette la luce in modo tale che noi lo percepiamo come un colore. Modestia scientifica a parte, a Subramanian è stato effettivamente attribuito il merito di aver scoperto un colore: la prima tonalità inorganica di blu in 200 anni.
Chiamato "YInMn blue" - e affettuosamente "MasBlue" all'Oregon State - il nome del nuovo pigmento deriva dalla sua composizione chimica di ossidi di ittrio, indio e manganese, che insieme hanno assorbito le lunghezze d'onda rosse e verdi e riflesso le lunghezze d'onda blu in modo tale che è venuto fuori un blu molto luminoso. Si tratta di un blu, infatti, mai visto prima, dal momento che non è un pigmento naturale, ma uno letteralmente cucinato in laboratorio, e per caso.
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
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.
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.
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
Le Machine Learning Guides di google sono in grado di portare un neofita ad una certa conoscenza del campo nel quale la ricerca è più rovente degli ultimi anni.
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.
«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