Mat Hill
← to home
Got a recommendation? I'd love to hear it!
πŸ“Œ means I haven't bought / read / watched yet.

# Art

Anders Zorn: Sweeden's Master Painter πŸ“Œ
Point and Line to Plane by Wassily Kandinsky πŸ“Œ
Ashmolean's John Ruskin teaching videos
The Elements of Drawing by John Ruskin
Celtic Design: Knotwork by Aidan Meehan πŸ“Œ
Nature's Engraver by Jenny Uglow πŸ“Œ
Ways of Seeing by John Berger
Line of Action
Wood Engraving: How to Do It by Simon Brett
Anatomy of Colour by Patrick Baty πŸ“Œ
Nature's Palette by Patrick Baty
Sargent: The Masterworks πŸ“Œ
Sargent & Spain πŸ“Œ
Sargent Portrait Drawings: 42 Works
John Singer Sargent: Figures and Landscapes, 1874-1882, Volume IV πŸ“Œ
Joaquin Sorolla: Painter of Light πŸ“Œ
The Grammar of Ornament by Owen Jones
Guide for Drawing the Acanthus and Every Description of Ornamental Foliage (1886)
Ornamental Drawing and Architectural Design (1857)
The Illustrated Architectural, Engineering, & Mechanical Drawing Book (1881)
Drawing & Understanding Scroll Designs by Ron Smith
The Essential Guide to Drawing Scrolls by Sam Alfano
Ornamental Archive by Russ Abbott
International Association of Master Penmen, Engrossers, and Teachers of Handwriting
Spencerian Penmanship theory & workbooks (no UK delivery sadly!)
The Universal Penman by George Bickham
Fantastic Ornament I & II
Intro to Copperplate Calligraphy by Maria Montes
Treasury of American Pen & Ink Illustration 1881-1938 πŸ“Œ
Pen and Ink Techniques
Rendering in Pen and Ink
Drawing with Pen and Ink πŸ“Œ
The Calligrapher's Bible by David Harris
The Bible of Illuminated Letters by Margaret Morgan
Mastering Copperplate Calligraphy by Eleanor Winters
Bygone Arts - Calligraphy Inspired by Medieval Manuscripts
The Visual Display of Quantitative Information by Edward Tuft πŸ“Œ
Stuart Semple's blackest black paint
Bruce MacEvoy's watercolour resources πŸ“Œ
Beautiful Landscape Painting Outdoors: Mastering Plein Air
Composition of Outdoor Painting by Edgar Payne πŸ“Œ
The Artist's Guide to Selecting Colors by Michael Wilcox πŸ“Œ
Bridgman's Complete Guide to Drawing From Life πŸ“Œ
Drawing the Head and Hands by Andrew Loomis πŸ“Œ
Figure Drawing for All It's Worth by Andrew Loomis πŸ“Œ
Successful Drawing by Andrew Loomis πŸ“Œ
Creative Illustration by Andrew Loomis πŸ“Œ
Alla Prima II Companion πŸ“Œ
Anders Zorn: Sweden's Master Painter πŸ“Œ
Stephen Bauman's videos
Anatomy for Sculptors πŸ“Œ
Anatomy of Facial Expression πŸ“Œ
Form of the Head and Neck πŸ“Œ
Atlas of Human Anatomy for the Artist by Stephen Rogers Peck
Carlson's Guide to Landscape Painting πŸ“Œ
Human Anatomy for Artists by Elliot Goldfinger πŸ“Œ
Animal Anatomy for Artists by Elliot Goldfinger πŸ“Œ
Ian Robert's painting & composition tutorials.
Chelsea Lang's alla prima videos and demonstrations.
Oil Painting Techniques and Materials by Harold Speed πŸ“Œ
The Practice and Science of Drawing by Harold Speed
Alex Tzavaras's traditional fine art video tutorials
New Masters Academy
London Fine Art Studios
Alla Prima II by Richard Schmid
How To Render by Scott Robertson
How To Draw by Scott Robertson
Imaginative Realism by James Gurney
Color and Light by James Gurney
James Gurney's Video Demos
The Animator's Survival Kit by Richard Williams
Fundamentals of Drawing by V.A. Mogilevtsev
Fundamentals of Painting by V.A. Mogilevtsev
Lift Off by Scott Robertson
Alive! Blender animation course
Charles Bargue Drawing Course
Ernst Haeckell: Art Forms From The Abyss
Structure 3: the Art of Sparth
Cosmonauts: Birth of the Space Age by Doug Millard
Proto Anime Cut Archive by Stefan Riekeles
Cracking Animation By Peter Lord & Brian Sibley
Framed Perspective by Marcos Mateu-Mestre
Framed Ink by Marcos Mateu-Mestre

# Design

Classic Human-Computer-Interaction demos
3D Interacton - Friends don't let friends use trackball controls
High quality free fonts by the Indian Type Foundry
Satyr - a font with no straight lines.
IBM Common User Interface guidelines
Apple Human Interface guidelines
The Mythical Man Month by Frederick P. Brooks Jr.
A Small Matter of Programming: Perspectives on End User Computing by Bonnie A. Nardi
Bartosz Ciechanowski's interactive explainers
Media For Thinking the Unthinkable by Bret Victor
What Can a Technologist do About Climate Change? by Bret Victor
The Design of Everyday Things by Donald A. Norman
How to Be a Graphic Designer Without Losing Your Soul by Adrian Shaughnessy
Bojack Horseman: The Art Before the Horse by Chris McDonnell
Matthew Bird's history of industrial design lectures
UBUWEB's ethnopoetics
Why not Flexbox
Kevin Lynagh on choosing features
Rethinking Software Design
Write Free Software
How technology loses out in companies, countries & continents and what to do about it by Bert Hubert

# Narrative

Wonderbook by Jeff Vandermeer
Screen Writing 101 by Film Crit Hulk
What is Scenography? by Pamela Howard
Understanding Comics by Scott McCloud
Sculpting In Time by Andrei Tarkovsky

# Music

The Oxford Dictionary of Musical terms
The Contemporary Violin by Patricia and Allen Strange πŸ“Œ
A Brief History of New Music by Hans Ulrich Obrist πŸ“Œ
iFi audio equipment
OndΕ™ej AdΓ‘mek
Piano Technique by Walter Gieseking & Karl Leimer
The Art of Piano Playing by Heinrich Neuhaus
Conversations with Iannis Xenakis
Sound Tracks: Uncovering Our Musical Past by Graeme Lawson πŸ“Œ
Why Does This Song Stink?
rfruehwald's "Music as Pattern" lectures
Decolonise Fest
Music Theory for Guitar
Designing Sound by Andy Farnell
Concise Introduction to Tonal Harmony by Burstein & Straus
Music Theory for Computer Musicians by Michael Hewitt
Patch & Tweak by Kim BjΓΈrn & Chris Meyer
Pedal Crush by Kim BjΓΈrn & Scott Harper
Analog Man's Guide to Vintage Effects
Mixing Secrets by Mike Senior
Recording Secrets by Mike Senior
Microsound by Curtis Roads
Skissur by Γ“lafur Arnalds
The Producer's Manual by Paul White
<3 <3 <3

# Computing

Rebuilding the Cathedral by Nadia Eghbal
Stop Writing Dead Programs by Jack Rusher
The Graphing Calculator Story by Ron Avitzur
Pass by value vs. pass by pointer
Analog Computing by Bernd Ulmann
A 2024 Plea for Learn Software
A Plea for Lean Software
Develop with Cocoa for Apple Devices without using Objective-C by Felix Klinge
Introduction into low-level optimization by Felix Klinge πŸ“Œ
The Art of Unix Programming
Virtual Memory lectures by David Black-Schaffer
Power and Energy lectures by David Black-Schaffer
Arena Allocator tips and tricks
Easy 6502 Assembly
Pikuma computing courses <3
Davy Wybiral's Intro to x86 Assembly Language
Inter-process communication in Linux πŸ“Œ
Mike Acton's 2007 game programming lecture at MIT
Solving the Right Problems for Engine Programmers
Fix your timestep!
Game Dev Tech's OpenGL Cocoa tutorial
How GLFW uses NSApplication's event loop
Winprog Win32 Tutorials
Neil Blakey-Milner's platform layers
Mike Oldham's handmade hero MacOS port
Jeff Buck's handmade hero MacOS port
X11 Clipboard
Game Dev Tech's OpenGL X11 tutorial
David Gow's handmade hero Linux port
Casey Muratori's Handmade Hero
Windows Timer Resolution: The Great Rule Change
The Xlib Manual
A tour through Xlib and related technologies
X11 Drag and Drop Spec
X11 Drag and Drop Pitfalls
FreeDesktop Trash spec
File URI scheme spec
URI spec
X11 Clipboard Spec
Xcb, X11, Xlib, Wayland?
Language Implementation Patterns by Terence Parr πŸ“Œ
Hacker's Delight by Henry S. Warren, Jr.
Bit Twiddling Hacks
Implementing malloc()
Modern Computer Vision library
GLSL hash functions without sin()
Compilers: Principles, Techniques, and Tools πŸ“Œ
Quite OK audio format.
Quite OK image format.
Is Parallel Programming Hard, And, If So, What Can You Do About It? πŸ“Œ
What really happens when you navigate to a URL
Branch prediction in modern processors
Gallery of Processor Cache Effects
NASA JPL C code standards
MISRA C code standards
SEI CERT C code standards
The use of assert() in SQLite
How SQLite is tested
SQLite's 'amalgamation' build method
Preshing on Programming
Floating point exposed
Rick Regan's floating point and binary articles
The secret life of a NaN
Bruce Dawson's floating point articles
William Kahan on the development of IEEE 754 floating point
What Every Programmer Should Know About Floating-Point Arithmetic
nakst's tutorial on UI library development
nakst's tutorial on writing a CLAP audio plugin
John Nagle on socket ACK delays
Using select() properly
C macro pitfalls
What Every C Programmer Should Know About Undefined Behavior
A Guide to Undefined Behavior in C and C++
Unicode Text Analyser
SQL playground
Godbolt compiler explorer
Fuzz testing book
Write Fuzzable code
From Nand 2 Tetris
Crafting Interpreters by Robert Nystrom
SS64 command line reference
SS64 numerical conversions
The Pocket Guide to Debugging by Julia Evans
WAV file spec
Beginner's guide to linkers
What Every Programmer Should Know About Memory by Ulrich Drepper
High Performance Browser Networking
bash pitfalls
unofficial bash 'strict mode'
'entr' for running commands when files change
Google's Bash style guide
Writing a C Compiler by Nora Sandler πŸ“Œ
Network Know-How by John Ross πŸ“Œ
Nmap Essentials by David Shaw πŸ“Œ
The Linux Programming Interface by Michael Kerrisk πŸ“Œ
Thinking Forth by Leo Brodie
UNIX and Linux System Administration Handbook
Wireshark Essentials by James H. Baxter πŸ“Œ
Linux perf Examples by Brendan Gregg πŸ“Œ
WebRTC For The Curious πŸ“Œ
Learn X in Y Minutes
Data Oriented Design by Richard Fabian
Fluent Python by Luciano Ramalho
JavaScript: The Definitive Guide by David Flanagan
Beej's Guide to Network Programming by Beej
Beej's Guide to C by Beej
Hands-On Network Programming with C by Lewis Van Winkle
Game Engine Architecture by Jason Gregory
Dave Frampton's Devlog
The Little Schemer
The C Programming Language by Brian Kernighan & Dennis Ritchie
Computer Organization and Design by John Hennessy & David Patterson
Understanding Compression by Colton McAnlis & Aleks Haecky
The RISC-V Reader by David Patterson & Andrew Waterman
Operating Systems: Three Easy Pieces by R. H. and A. C. Arpaci-Dusseau
The Practice of Programming by Brian Kernigham & Rob Pike
The Elements of Computing Systems by Noam Nisan & Shimon Schocken
Packet Guide to Core Network Protocols by Bruce Hartpence
Interconnections 2nd Edition by Radia Perlman
OpenCL In Action by Matthew Scarpino
Make: AVR Programming by Elliot Williams
Linux Basics for Hackers by OccupyTheWeb
C++ Cookbook
Learning OpenCV 3 by Adrian Kaehler & Gary Bradski
C++ Concurrency in Action by Anthony Williams
Algorithms in a Nutshell
The Rust Programming Language
Effective C++ 3rd Edition by Scott Meyers
Effective Modern C++ by Scott Meyers
Mastering Android NDK by Sergey Kosarevsky & Viktor Latypov
Physics for Game Developers by Bryan Bywalec & David M Bourg
Cinder Creative Coding Cookbook by Dawid Gorny
Game Programming Patterns by Robert Nystrom
Android Native Development Cookbook by Feipeng Liu
Assembly Language Step by Step by Jeff Duntemann
Real-Time Collision Detection by Christer Ericson πŸ“Œ
Game AI Pro 360 by Steve Rabin
Everything curl by Daniel Stenberg
Fullstack Vue by Hassan Djirdeh
Programming Internet Email by David Wood πŸ“Œ
Expert C Programming: Deep C Secrets by Peter van der Linden

# Security

Cyber Security: A Pre-War Reality Check
Rob Hansen's cryptography FAQ
iodΓ©OS de-Google'd Android
Nitter twitter access (Elon broke it, as of April 2024)
Piped YouTube access
The Art of Analyzing Hacked and Leaked Data by Micah Lee
Cyber and information security: have we all gone mad?
Cryptography Engineering: Design Principles and Practical Applications
Serious Cryptography by Jean-Philippe Aumasson
xkdc on passwords
GPG/PGP explainers
Go Incognito security course
SS64 password security
Hacksplaining lessons
Secure Coding in C and C++
Building Secure and Reliable Systems
Designing Secure Software by Loren Kohnfelder
Cybersecurity for Small Networks by Seth Enoka πŸ“Œ
Computer Systems Security MIT Course πŸ“Œ
Web Security for Developers
Nightmare reverse engineering course πŸ“Œ
Harden the World
James Mickens
Yet Another Firefox Hardening Guide
Cryptography attacks course πŸ“Œ

# Graphics

RGB to XYZ: The Science and History of Color by John Austin
Norman Koren's image sharpness series
Ian Mallett's subpixel zoo
Writing a TrueType font renderer πŸ“Œ
Minimal Cross-Platform Graphics
Improving texture atlas allocation in WebRender
The Trouble with Anti-Aliasing [text]
The Raster Tragedy - font rendering
Adventures in Text Rendering
How to draw styled rectangles using the GPU and Metal
Text Rendering Hates You by Aria Beingessner
Premultiplication & gamma
GPUs prefer premultiplication
Beware of Transparent Pixels
Porter-Duff 1984 paper: Compositing Digital Images
Tom Forsyth on Premultiplied Alpha pt. I
Tom Forsyth on Premultiplied Alpha pt. II
Programming OpenGL in Linux: GLX and Xlib
OpenGL 3.0 Context Creation (GLX)
Noise functions
I Am Graphics And So Can You
Kohi Vulkan & C game engine series πŸ“Œ
Moving to Vulkan
JosΓ© Henriques' Vulkan 101 πŸ“Œ
Alian Galvan's Raw Vulkan πŸ“Œ
A trip through the graphics pipeline πŸ“Œ
Computer Graphics at TU Wien - Vulkan rendering tutorials
An Introduction to Vulkan
Intel Vulkan tutorial πŸ“Œ
GDC Vulkan Essentials πŸ“Œ
Engaging voyage vullkan πŸ“Œ
Vulkan shader resource binding πŸ“Œ
Vulkan memory management πŸ“Œ
Transitioning from OpenGL to Vulkan πŸ“Œ
OpenGL-like Vulkan πŸ“Œ
Vulkan on NVIDIA GPUs πŸ“Œ
Vulkan's Key Features on ARM πŸ“Œ
Porting a graphics engine to Vulkan πŸ“Œ
Get Your Engine Ready for Vulkan on Mobile πŸ“Œ
Multi-threading in Vulkan πŸ“Œ
Samsung's Vulkan Usage Recommendations πŸ“Œ
GPU-driven rendering πŸ“Œ
Most common mistakes in Vulkan apps πŸ“Œ
Vulkan fast paths πŸ“Œ
High-performance Low-overhead rendering with OpenGL and Vulkan πŸ“Œ
Vulkan Lessons Learned πŸ“Œ
Vulkan Memory Allocator
AMD's Vulkan tutorials πŸ“Œ
Vulkan Cookbook πŸ“Œ
Vulkan Tutorial site πŸ“Œ
Jeremy Ong's graphics programming blog
RenderDoc's Vulkan in 30 minutes
vkguide πŸ“Œ
Writing and Efficient Vulkan Renderer πŸ“Œ
Brendan Galea's Vulkan Game Engine Tutorial πŸ“Œ
Understanding SVG Coordinate Systems and Transformations
fffuel SVG reference
CG Cinematography book
A Pixel Is Not A Little Square
Collection of game graphics breakdowns
Font Rendering is Getting Interesting
Oklab colour encoding by BjΓΆrn Ottosson
How software gets color wrong by BjΓΆrn Ottosson
Color: From Hexcodes to Eyeballs
Completely Painless Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs
Bruce MacEvory's colour book
History of Reflection Mapping
Motion-Picture Colour Management white paper.
Blue noise article and textures
Nvidia's spatiotemporal blue noise
How Unicode Characters Become Glyphs on Your Screen
OpenGL Common Mistakes
GLSL Common Mistakes
OpenGL Transformation Matrices
OpenGL SuperBible
GPUPro 360 Guide to Image Space by Wolfgang Engel
Unity 5.x Shaders and Effects Cookbook by Alan Zucconi & Kenneth Lammers
Real-Time Shadows πŸ“Œ
The Algorithmic Beauty of Plants by PrzemysΕ‚aw Prusinkiewicz


FFTs for users πŸ“Œ
FFTs for implementers πŸ“Œ
Groovy DSP's tutorials
Midi frequency conversion algorithms.
24/192 Music Downloads ...and why they make no sense
D/A and A/D lecture by Christopher Montgomery
Digital Media lecture by Christopher Montgomery
Discrete-Time Signal Processing by Alan V Oppenheim and Ronald W. Schafer πŸ“Œ
DSP lectures by Prof. David Anderson πŸ“Œ
Hack Audio by Eric Tarr
Digital Signal Processing by Steven W. Smith
Designing Audio Effect Plugins in C++ by Will Pirkle
Spin Semiconductor DSP tutorials snippets wiki
Pi Pico audio visualiser project
JOS's DSP textbooks etc.
Audio Effects by J. D. Reiss & Andrew McPherson
DAFX 2nd Edition
The Theory and Technique of Electronic Music by Miller Puckette

# Electronics

How to Make Something that Makes (almost) Anything
The Valve Wizard
LM13700 VCA circuit
Arito Suzuki's guitar pedal videos
JHS pedals videos
An Alternative to the American way of Innovation by Andrew 'bunnie' Huang
The Hardware Hacker by Andrew 'bunnie' Huang
Technology is Not Magic by Andrew 'bunnie' Huang
Moritz Klein's DIY synth tutorials
Aaron Lanterman's lectures
Tayda Electronics online store
Ben Eater's lectures
Troubleshooting Analog Circuits by Robert A. Pease
KiCad Like a Pro by Peter Dalmaris
The Art of Electronics by Horowitz & Hill
The CMOS Cookbook by Donald E. Lancaster
Small Signal Audio Design by Douglas Self
Op Amps For Everyone by Bruce Carter
Practical Electronics For Inventors by Paul Scherz
Handmade Electronic Music by Nicolas Collins
Electronics for Guitarists by Denton J. Dailey
Building Valve Amplifiers by Morgan Jones
Make: Analog Synthesizers by Ray Wilson
Make: Electronics by Charles Platt
Complete Electronics Self Teaching Guide by Earl Boysen & Harry Kybett
Electronics Projects For Musicians by Craig & Chris Anderton
Do-It Yourself Projects for Guitarists by Craig Anderton
Sequence 15's Electricity for Synth DIY'ers
Analog Devices Wiki
All About Circuits
Electronics Club's tutorials
DJ Jon Dent's useful CMOS chips
74HC595 shift register tutorial
Protecting digital inputs
WM8731 CODEC x RP2040
Compander IC stock
Open Music Labs - DIY PWM DACs etc.
Coda FX -9v from +9v example
BBD phase VCO circuit
DIYStrat guitar FX stuff
Beavis Instruments projects & tutorials
Idea2IC stories & history
Electronotes magazine archive
DIYstompboxes forum
Geofex DIY pedals
AMZ guitar FX blog
AMZ guitar FX notes & calculators
Spring Reverb info
Sound-au's articles & spring reverb example
Mutable Instruments' open source firmware repo

# Maths

Tractatus Logico-Philosophicus by Ludwig Wittgenstein πŸ“Œ
Imaginary Numbers are not Real - the Geometric Algebra of Spacetime πŸ“Œ
Geometry to Algebra and Back: 4000 Years of Papers by Jack Rusher
The Universal History of Numbers by Georges Ifrah πŸ“Œ
Number Theory by George E. Andrews πŸ“Œ
Mathematics, Magic and Mystery by Martin Gardner
Introduction to Graph Theory by Richard J. Trudeau πŸ“Œ
Fifty Challenging Problems in Probability, with Solutions πŸ“Œ
Introduction to Mathematical Fluid Dynamics by Richard E. Meyer πŸ“Œ
Basic Mathematics by Serge Lang πŸ“Œ
Philosophy of Mathematics by Øystein Linnebo
The Divine Proportion by H. E. Huntley
Information Theory by Robert B. Ash πŸ“Œ
Quaternions for Computer Graphics by John Vince
A Programmers Introduction to Mathematics by Jeremy Kun
Essential Mathematics for Games and Interactive Applications
Elementary Geometry by John Roe πŸ“Œ
Calculus Made Easy by Silvanus P. Thompson
Parallel curves of cubic BΓ©ziers πŸ“Œ
Linear Algebra - Core Topics for the First Course πŸ“Œ
The Princeton Companion to Mathematics πŸ“Œ
The Princeton Companion to Applied Mathematics πŸ“Œ
Keenan Crane's Discrete Differential Geometry lectures πŸ“Œ
The Foundations of Arithmetic by Gottlob Frege
Set Theory & Logic by Robert R. Stoll πŸ“Œ
Bruce Lindbloom colour maths resources
Math to code translations
Numerical Mathematics and Computing
A Primer on BΓ©zier Curves πŸ“Œ
Self-Organization in Biological Systems
Bias and gain are your friend.

# Misc

The Archaeology of Knowledge by Michel FoucaultπŸ“Œ
I Am a Strange Loop by Douglas R. Hofstadter πŸ“Œ
GΓΆdel, Escher, Bach by Douglas R. Hofstadter πŸ“Œ
Strange Loop conference talks
How To Lace Cable Harnesses (from 1962)
Introduction to Crystallography by Donald E. Sands πŸ“Œ
GNUPlot In Action by Philip K. Janert
wizard zines by Julia Evans
OpenNIC alternate DNS
Live Coding: A User's Manual
Introduction to Quantum Computing
SS64 ffmpeg reference
Compilation of awesome lists
Ian's secure shoelace knot
Better Without AI by David Chapman
Dr. Christopher White's Historical Geology lectures πŸ“Œ
The Joy of Pitman Shorthand πŸ“Œ
Omniglot encyclopedia of writing systems & languages
InkBox open source OS for Kobo e-reader devices
Elle Stone's free/libre photography & digital colour resources
Akiyoshi's Illusion pages
Migadu email hosting
Foxlet's macOS VM
Linode cloud computing
Drew Devault's blog
Crowd Supply hardware projects
Framework laptop
Gemini Protocol
Small web

↑ to top
← to home