MAKING SOFTWARE Making Software A reference manual for people who design and build software. Written and illustrated by Dan Hollick. ░ FIG_001 [ 3.5" FLOPPY DISK ] © 1986 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. FIG_002 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. FIG_003 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. t = 0.20 FIG_004 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. FIG_005 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. As everything around us has become more complicated our understanding of technology has diminished. It used to be that we needed to understand our tools deeply but today we understand them in a shallow, abstracted way. 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 FIG_006 [ CATHODE RAY TUBE DISPLAY ] © 1980 Early Access You can now buy the book in early access. Just remember that it isn’t finished yet - I’ll be chipping away at it and releasing new chapters when they are ready. GET EARLY ACCESS ($99) Want some free chapters?Join the mailing list Table of Contents. V1.0 PROGRESS ⋅ WORDS PIXELS AND COLOR How does a screen work? 3.6K WORDS What is a color space? 6.2K WORDS Blending modes. 1.9K WORDS Digital images. 3.5K WORDS Touch screens. 1.4K WORDS FONTS AND VECTORS Drawing curves. 2.0K WORDS How to make a font. 6.1K WORDS Rasterisation and anti-aliasing. 1.8K WORDS Scalable Vector Graphics. 4.4K WORDS Boolean operations. 3.2K WORDS 3D AND GRAPHICS How does a GPU work? 3.6K WORDS Shaders. 4.6K WORDS Rays and SDFs. 2.0K WORDS Blurs, noise and other effects. 2.8K WORDS AI AND ML Neural nets and transformers. Gradient descent and backpropagation. Embeddings and attention. Generating images. DATA AND COMPRESSION Bits, bytes and binary. 3.1K WORDS Entropy and compression. 5.1K WORDS Image compression. 5.4K WORDS Cryptography. 3.4K WORDS How is data stored? 4.9K WORDS NETWORKING AND THE WEB Sending and receiving data. 3.0K WORDS How the internet works. 3.7K WORDS What is a browser? COMPILERS AND INTERPRETERS What is code? Compilers and interpreters. What makes code fast? MISC QR and barcodes. 2.1K WORDS Quantum computing. Current Progress: ██████████████▒░░░░░ FINISHED CHAPTERS: 22 / 31 WORDS/CHAPTER: 3.5K IMAGES/CHAPTER: 39 CURRENT WORD COUNT: 77.6K EST WORD COUNT: 109.3K CURRENT IMAGE COUNT: 848 FIG_007 [ 3.5" HARD DISK DRIVE ] © 2003 Is any of this written by AI? How do you make the illustrations? When will it launch? Is this a physical book? What font is that? Can you write about x? Will you offer discounts or PPP? ↑ ↓ Common Questions. IN: IS THIS A PHYSICAL BOOK? OUT: No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. QUESTION ANSWER Is any of this written by AI? No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. How do you make the illustrations? No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. When will it launch? No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. Is this a physical book? No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. What font is that? No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. Can you write about x? No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. Will you offer discounts or PPP? No, it’s a digital book for now. Once it’s fully ready, I’m going to do a print run but there’s a ton of work involved in making a physical book and I want to do it properly. I want it to be like a really fucking nice coffee table style book. People who buy the advanced digital edition will get first dibs on pre-ordering any print editions, so if that’s something you’re interested in, make sure you get that one. Early Access You can now buy the book in early access. Just remember that it isn’t finished yet - I’ll be chipping away at it and releasing new chapters when they are ready. GET EARLY ACCESS ($99) Want some free chapters?Join the mailing list FIG_008 [ MECHANICAL KEYSWITCH ] © 1986