tecnologia

Scienza e tecnologia

Come realizzare una buona API

categorie

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

API Cheat Sheet – What is an API, How it Works, and How to Choose the Right API Testing Tools

[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

categorie

«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 ?

categorie

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

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