Ecco una carrellata di materiale che mi è tornato utile negli ultimi tempi. Anche se è principalmente a mio uso e consumo (non voglio dimenticare i titoli e alcune informazioni a contorno, nel caso i link dovessero scomparire in futuro), spero possa far comodo anche ad altri programmatori/smanettoni.
Ebooks
The Handbook of Applied Cryptography: le basi teoriche e oltre 200 algoritmi relativi al mondo della crittografia. Una manna se avete un esame e/o dovete implementare qualcosa che abbia a che fare con l’argomento.
The primary objective of an adversary who wishes to “attack” a public-key encryption scheme is to systematically recover plaintext from ciphertext intended for some other entity A. If this is achieved, the encryption scheme is informally said to have been broken.
The Most Useful Free eBooks for Web Developers: collezione di ebook per sviluppatori HTML5/Javascript/CSS3. Ovviamente non li ho letti tutti, ma gli autori della pagina sostengono di averli selezionati da una lista iniziale di 400; questi 17 sono i più visualizzati/consigliati dalla comunità online, quindi tendo a fidarmi della qualità di ciascuno di essi.
Design patterns are reusable solutions to commonly occurring problems in software design. They are both exciting and a fascinating topic to explore in any programming language.
(Da Learning Javascript Design Patterns)
Functional programming in Python è un’ottima introduzione all’uso dei costrutti principali della programmazione funzionale. Python di per sé non è un linguaggio funzionale, il che a mio parere può aiutare lo sviluppatore “OO/strutturato” nella transizione. Sempre a mio parere, trovo che l’applicazione ragionata di queste tecniche rendano più leggibile, flessibile e “debuggabile” il prodotto finale.
A comprehension is an expression that uses the same keywords as loop and conditional blocks, but inverts their order to focus on the data rather than on the procedure. Simply changing the form of expression can often make a surprisingly large difference in how we reason about code and how easy it is to understand.
Guide
How to C (as of 2016): ok, il K&R è la Bibbia, ma scrivere in C nel 2016 significa anche approfittare delle evoluzioni dello standard per ottenere codice più leggibile e “prevedibile”.
Un tale Keith Thompson (da non confondere con Ken, uno dei papà di UNIX) ha successivamente pubblicato un articolo di risposta altrettanto interessante.> The first rule of C is don’t write C if you can avoid it.
19 Git tips for everyday use: la complessità di
git
può incutere timore, e non a torto. Qui ci sono alcuni consigli per sfruttarlo al meglio da linea di comando. Dello stesso autore anche un ottimo cheat sheet.I like to create a new branch for every new bug or feature. Among other benefits, it helps me to get a great clarity on how a series of commits may relate to a particular task. If you ever merged a pull request on github or a similar tool, you will in fact be able to nicely see the merged branch history in
git log --oneline --graph
view.
Strumenti online
- Contrast Ratio: tool per verificare se il rapporto tra due colori (testo/sfondo) rispetta le linee guida sull’accessibilità WCAG 2. Utile per il web design.
- repl.it: Read-Eval-Print Loop è un sinonimo ampolloso per “shell interattiva”. Questo sito permette di testare piccoli programmi scrivendoli direttamente nella shell o nella casella di testo a fianco.
- Dillinger: un buon editor MarkDown con anteprima in tempo reale, consente anche di esportare il proprio documento in PDF o di interagire con diversi servizi cloud.
Dataset/collezioni
- StockSnap: archivio di immagini con licenza Creative Commons Zero (CC0). In altre parole potete usarle in qualunque progetto, anche commerciale, senza dover nemmeno citare la fonte.
- WMS Geoportale Nazionale: il Ministero dell’Ambiente mette a disposizione numerosi dataset, che grazie a questi endpoint WMS possono essere consultati direttamente da applicazioni come Quantum GIS o ArcGIS.
Humour/Cultura generale
HAKMEM è uno storico memo che circolava nel laboratorio AI del MIT. Scritto nel 1972, contiene dimostrazioni matematiche, algoritmi, trucchi e veri e propri hack per effettuare operazioni nel minor numero di cicli possibili. Una versione PDF searchable, basata sulle scansioni dell’originale, è disponibile qui.
Here is some little known data which may be of interest to computer hackers. The items and examples are so sketchy that to decipher them may require more sincerity and curiosity than a non-hacker can muster. Doubtless, little of this is new, but nowadays it’s hard to tell.
The UNIX-Haters Handbook: un libro un po’ datato che raccoglie storie dell’orrore, curiosità e critiche tutte incentrate su questo storico sistema operativo. Molti passaggi sono tuttora validi, ma altrettanti sono reliquie di un tempo lontano, per cui lo considero un libro umoristico più che un manuale tecnico. Vale la pena leggere una risposta al libro da parte di Eric S. Raymond.
Users care deeply about their files and data. They use computers to generate, analyze, and store important information. They trust the computer to safeguard their valuable belongings. Without this trust, the relationship becomes strained. Unix abuses our trust by steadfastly refusing to protect its clients from dangerous commands. In particular, there is
rm
, that most dangerous of commands, whose raison d’etre is deleting files.CodeCrap: lo slogan, “where developers go to laugh and cry”, dice tutto.
try { return true; } finally { return false; }
Credits
Ho scoperto molti articoli di questa lista grazie alle comunità di Hacker News e di r/programming: sono ottimi punti di riferimento per tutti gli addetti ai lavori.