Resources

L'algoritmo MiniMax

minimax algorithm
L'algoritmo MiniMax è una regola utilizzata nell'intelligenza artificiale, nella teoria delle decisioni, nella teoria dei giochi, nella statistica e nella filosofia per ridurre al minimo la possibile perdita nel caso peggiore (perdita massima). Quando si tratta di guadagno, si parla di "maximin", per massimizzare il guadagno minimo. Originariamente formulata per la teoria dei giochi a somma zero per n giocatori, che copre sia i casi in cui i giocatori eseguono mosse alternate sia quelli in cui eseguono mosse simultanee, è stata estesa anche a giochi più complessi e a decisioni generali in presenza di incertezza.

Minimax Algorithm Guide: How to Create an Unbeatable AI

image credit: researchgate.net

Decision Analysis 1: Maximax, Maximin, Minimax Regret

Intermediate Minimax Algorithm for Tic-Tac-Toe using C#

Pyxel - The Python Retro Console

pyxel
Pyxel è un engine retro console 8-bit come Pico-8 per python. Solo 16 colori e 4 canali con 64 suoni definibili, per Win, Mac e Linux, il codice della cartuccia si scrive in python, legge come input keyboard, mouse e gamepad, editor di immagini e suoni integrato.

Sul README.md è tutto perfettamente documentato

Pyxel wiki
reddit
Learn Python by Building 12 Projects in This 3-Hour Course

Python VS JavaScript – What are the Key Differences
11 Python Projects Junior Developers Can Build for Coding Practice
6 Quick Python Projects for Coding Practice
Python Code Examples – Sample Script Coding Tutorial for Beginners

discord

★ github

[via]


12 Beginner Python Projects - Coding Course

⌨️ (1:40) 1. Madlibs
⌨️ (6:54) 2. Guess the Number (computer)
⌨️ (13:17) 3. Guess the Number (user)
⌨️ (21:14) 4. Rock Paper Scissors
⌨️ (24:25) 5. Hangman
⌨️ (35:53) 6. Tic-Tac-Toe
⌨️ (59:59) 7. Tic-Tac-Toe AI
⌨️ (1:15:53) 8. Binary Search
⌨️ (1:27:16) 9. Minesweeper
⌨️ (1:51:55) 10. Sudoku Solver
⌨️ (2:05:34) 11. Photo Manipulation in Python
⌨️ (2:31:49) 12. Markov Chain Text Composer

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

La musica ispirata da Bach

In questo video: Songs Inspired By Bach, impariamo meglio l'influenza diretta del grande compositore tedesco, che si estende fino alla musica di 3 secoli dopo.

David Bennett è un pianista britannico che fa divulgazione musicale sul suo canale youtube.

Siti che raccolgono musica di dominio pubblico:
musopen.org
open music archive
freesound.org
freepd.com
Petrucci Music Library
Choral Wiki
ccmixter.org
free music public domain
free soundtrack music
audiolibrary channel
public domain 4u

Le parole della musica


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


Linda Barry - Making Comics

Linda Barry - Making Comics
Making Comics è il nuovo libro di Linda Barry, rinomata autrice e insegnante di Comics all'università del Wisconsin.

Sul suo canale youtube c'è molto materiale rivolto a chiunque voglia muovere i primi passi. I fumetti sono un linguaggio ancestrale che non è dedicato solo a chi "sa disegnare". L'abilità nel disegno, dal punto di vista estetico, non è l'essenza dei fumetti. Gli storyboard dei film e delle serie e anche quelli relativi a progetti di altra natura ne sono la dimostrazione più evidente.

the near sighted monkey tumblr
playlists

[via]

David Whittaker sul DeepSID

categorie

David Whittaker

David Whittaker è il virtuoso inglese che ha accompagnato il nostro tempo libero nei tardi anni '80 con le sue composizioni per il 6501 del Commodore 64.

Tra i suoi brani più noti, le variazioni di "Lazy Jones", le colonne sonore di "Solomon's Key", "Star Wars", "The Living Daylights" e "License to Kill".

Tutta la sua produzione si può ascoltare direttamente online grazie al progetto DeepSID.

wikipedia
Video Game Music Preservation Foundation


Netlify

categorie

Netlify

Netlify è un servizio web con un tier free soddisfacente che funziona collegandosi al proprio repository GitHub per estrarre il codice sorgente, per poi eseguire un processo di build per pre-renderizzare tutte le pagine in HTML statico. In poche parole, Netlify crea un proprio tipo di repository che esegue push sia verso un repository Github che verso i propri microservizi. Poi, esegue e distribuisce i contenuti su una ampia CDN per fornire siti web statici pre-costruiti ai visitatori.

La cosa migliore di Netlify è che seleziona il CDN migliore e distribuisce i contenuti, il che si traduce in siti web pre-costruiti che si caricano più velocemente rispetto alle reti di hosting tradizionali. Invece di caricare il sito ogni volta che il visitatore va su una pagina, il visitatore ottiene una versione precaricata direttamente dal server geografico più vicino, riducendo drasticamente i tempi di caricamento.

documentation
custom domains
get started
Netlify CLI
Basic build settings

[via]

Netlify Tutorial - How to build and deploy websites using Netlify