Have you ever wondered how a touch screen knows you are touching it? Well, it has these layers of transparent metal electrodes embedded in the display. When your finger gets close to the screen it causes a disturbance in the magnetic field that the electrodes sense.
Because the electrodes are laid out on a grid, they can report back the x and y co-ordinates of the disturbance to the operating system. Pretty neat.
Or maybe you’ve wondered why we call it a Gaussian blur? When we blur an image, we look at all the neighbouring pixels and multiply them by a matrix of weights called a kernel.
The most common type of kernel has a gaussian distribution, meaning it gets stronger towards the middle and weaker at the edges. This produces a more realistic blur without being too computationally expensive.
Maybe you’ve always wanted to know how the pen tool works in Figma and what those handles actually do when you move them.
They control the points on a bezier curve which is a cool piece of math we use to draw curves in vector graphics, like fonts and SVGs.
But of course, our screens are made of pixels and struggle to display smooth curves. So we have to take these curves and figure out how to display them so that they represent the shapes as accurately as possible.
This is called rasterisation but it’s not as simple as it seems and we need a whole bunch of clever tricks like, anti-aliasing to trick our eyes into thinking we are looking at straight lines.
If you’ve ever wondered about any of these things or if they’ve sparked your curiosity, then this is for you.
This book won’t teach you how to actually make software - it’s not a tutorial or a guide but rather something more interesting than that. It’s a manual that explains how the things you use everyday actually work.
It won’t make you a better designer or programmer tomorrow - there’s nothing actionable in here. But knowing how things work comes in handy when you find yourself out of your depth. Or at the very least, you can pretend to be smart in front of your friends.
You don’t need to be technical to read this - there are a lot of pictures and diagrams to do the heavy lifting. You just need to be curious.
MAKING SOFTWARE
Table of contents [v1.0]
[ chapters: 8 ⋅ articles: 46 ]
- Pixels and Color
- How does a screen work?
- Touch screens.
- What is an image?
- Colour spaces, models and gamuts.
- Why calculating colour contrast is so difficult.
- Gradients and perceptual uniformity.
- The maths behind blending modes
- Fonts and Vectors
- Drawing curves.
- Rasterisation and anti-aliasing.
- SVG Viewbox
- SVG paths
- SVG filters.
- Doing maths with shapes.
- 3D and Shaders
- How does a GPU work?
- What even is a shader?
- Signed Distance Fields
- Blurs, noise and other effects.
- Casting, marching and tracing rays
- 3D projection
- AI and ML
- Machine Learning vs neural networks.
- How an LLM works.
- Attention is all you need.
- Generating images.
- How AI infrastructure works.
- Compression and Data
- What is a byte?
- Binary, hexadecimal and decimal.
- Entropy
- Lossless vs Lossy
- Cryptography
- Image compression.
- CRDTs
- Networking and The Web
- What is a browser?
- Clients and servers.
- How DNS lookup works?
- Protocols
- Serialisation
- Streaming
- What is a cache?
- Compilers and Interpreters
- How does code run?
- What is an interpreter?
- What is a compiler?
- What makes code fast?
- Misc
- Regular Expressions
- QR codes
- How a fingerprint sensor works
- Quantum computing
Common Questions
NO | QUESTION | ANSWER |
---|---|---|
01 | Will this be a physical book? | Not to start with. it'll be a digital book, probably with the option to download a PDF. If there is enough interest, I'd love to do a print run but it's a bigger project. |
02 | When will it launch? | I'm not entirely sure yet. I'd love to get it out before the European summer this year. It's a lot of work to illustrate everything so you might need to have some patience. |
03 | What if I want it right now? | I'm going to do a pre-order, where you'll get access to the chapters that are already written. You'll get to see each chapter slowly take form as I push out new drafts. |
04 | Can you write about x? | If you join the pre-order, you can help shape some of the books topics. I'm always looking for stuff to add but can't guarantee anything. |
05 | How much will it cost? | I'm also not sure yet, but it will cost something. A good portion of the content will be free though, especially if you are on the mailing list. |
06 | Do you offer discounts or PPP? | No, mainly because I don't have the time to manage any of that. I get emails everyday about it and I can't keep up. |
07 | How do you make the illustrations? | By hand, in Figma. There's no secret - it's as complicated as it looks. |
08 | What font is that? | Departure Mono. |
current progress: ███▓▒░░░░░░░░░░░░