Layman's Guide to Computing
Subscribe
Archives
[LMG S6] Issue 70: The Cookie Factory
May 2, 2020
Previously: Cookies are little fragments of information with a name and a value, and associated with a domain address. They are most commonly used to...
[LMG S6] Issue 69: The Cookie Monster
April 25, 2020
Previously: The old CPM model (cost per thousand impressions) in the early Internet was replaced by the CPC model (cost per click) after the dot-com bust....
[LMG S6] Issue 68: The Age of Bloat
April 18, 2020
Previously: Each click on a link, or even an ad, sends data to the server. This information can include an ID for the link you clicked, or the category of ad...
[LMG S6] Issue 67: The Innocent Times
April 11, 2020
Previously: DoubleClick, the first commercially successfully ad server, launched in 1996. It ran a system that tracked the performance of banner ads across...
[LMG S6] Issue 66: Before the Cloud
April 4, 2020
Previously: Shared memory helps to reduce the amount of memory needed by all the applications running on an operating system. It also allows applications to...
[LMG S5] Issue 65: Memory Sharing in the Operating System
March 28, 2020
Previously: Meltdown and Spectre require the programs executing them to have access to kernel memory space. Kernel address isolation attempts to prevent the...
[LMG S5] Issue 64: Fixing Meltdown and Spectre
March 14, 2020
Previously: For Meltdown and Spectre to work, they need two things: (1) Permission to carry out instructions (i.e. run programs) on the OS, and (2) knowledge...
[LMG S5] Issue 63: Limitations of Meltdown and Spectre
March 7, 2020
Previously: To snoop the cache, we: Flush the cache corresponding to the 256 memory addresses (to get a cache miss when attempting to load the data from...
[LMG S5] Issue 62: Cache snooping
March 3, 2020
Apologies for the delay in Issue 62, it took longer than expected to work out how to laymanise it enough to be easily understood. Much thanks to Alex for his...
[LMG S5] Issue 61: Mapping the cache
February 22, 2020
Previously: Speculative execution is a feature that lets the CPU speed up execution if it correctly predicts a decision point. The CPU carries out the...
[LMG S5] Issue 60: CPU Optimisation Part 2 – Speculative Execution and Spectre
February 15, 2020
Previously: A set of instructions can trick a CPU into reordering load instructions so that the data is temporarily loaded into the cache before the...
[LMG S5] Issue 59: Meltdown
February 8, 2020
Previously: The CPU comprises different types of execution units. All the execution units can run at the same time, but they may execute instructions over...
[LMG S5] Issue 58: CPU Optimisation Part 1 – Out-of-Order Processing
February 1, 2020
Previously: The CPU stores data for ready access in the CPU cache. Accessing data from the CPU cache is much faster than accessing data from main memory....
[LMG S5] Issue 57: Cache, the CPU’s working space
January 25, 2020
Previously: The operating system is responsible for listing and managing the computer’s resources, making them available to programs running on the computer,...
[LMG S5] Issue 56: Operating Systems and resource management
January 18, 2020
Previously: The CPU just executes instruction after instruction after instruction. Each instruction may consist of loading data from a memory location,...
[LMG S5] Issue 55: Addressing memory
January 11, 2020
Previously: To get useful output from a CPU, we must translate the operations we want it to perform into CPU instructions, in a process known as compiling....
[LMG S5] Issue 54: Compiling programming code into CPU instructions
January 4, 2020
Previously: CPUs are unconscious slaves that simply execute instruction after instruction, at a very fast rate. Last issue, I introduced the idea of the CPU...
[LMG S5] Issue 53: The CPU is an instruction-obeying slave
December 28, 2019
Previously: PDF’s markup language is more concerned with how things appear on the page than with what they were originally. Once the PDF is generated, it is...
[LMG S4] Issue 52: PDFs part 2 – Text and images
December 21, 2019
Previously: PDF is the gold standard for universal compatibility (supported by most software and platforms) and visual fidelity (displays exactly the same...
[LMG S4] Issue 51: PDFs part 1 – Compatibility and fidelity
December 14, 2019
Previously: An HTML file contains markup tags that tell the browser how to interpret and format the text within the tags. Other document formats usually use...
[LMG S4] Issue 50: Complex file formats and the Document
December 7, 2019
Previously: A file consists of data, preceded by a file header which describes the data. Software (including operating systems) detect the kind of data...
[LMG S4] Issue 49: What is a File?
November 30, 2019
Previously: A video container can hold one or more audio, video, or text data streams. To encode or decode a data stream, you need to have the necessary...
[LMG S4] Issue 48: Of containers and codecs
November 23, 2019
Previously: Data cannot be compressed beyond its predictability limit in a lossless fashion. Lossless compression does not discard any information. It spots...
[LMG S4] Issue 47: Lossless compression
November 16, 2019
Previously: Computers compress image and audio data through a process similar to summarising: it analyses the data using algorithms that use brightness and...
[LMG S4] Issue 46: Lossy compression
November 9, 2019
Previously: Humans can distinguish 120 dB of loudness, which means the loudest perceivable sound is a million times louder than the softest perceivable...
[LMG S4] Issue 45: Audio, a sampling of values
November 2, 2019
Previously: An image’s resolution describes its dimensions. Its pixel resolution gives an indication of its physical size (if printed or displayed on a...
[LMG S4] Issue 44: Image resolution
October 26, 2019
Previously: Colour is stored as a combination of red, green, and blue. In a computer system, each colour is stored as one byte (8 bits), allowing for 256...
[LMG S4] Issue 43: Images, a mosaic of 3 colours
October 19, 2019
Previously: Unicode is an encoding format which is meant to support every language, ever. Most websites, apps, and interfaces support it today. In the last...
TYPO for [LMG S4] Issue 42: Unicode, computers go international
October 15, 2019
I made a typo this issue, right after the issue summary. It is below: But people need to know that it is not possible, and actually easy, to represent...
[LMG S4] Issue 42: Unicode, computers go international
October 12, 2019
Previously: In ASCII encoding, text is stored as a 7-bit sequence. Text consists of letters, numbers, symbols, and control codes. Control codes instruct the...
[LMG S4] Issue 41: ASCII, the typewriter digitised
October 5, 2019
Previously: 8 bits comprise 1 byte. Humans count bytes in multiples of thousands, while computers count bytes in multiples of 1,024. It’s still difficult to...
[LMG S4] Issue 40: Bits and bytes
September 28, 2019
Previously: Networks enable data packets to get from one computer in the network to another through gateways that forward the data packets according to fixed...
[LMG S3] Issue 39: Caches and caching
September 21, 2019
Previously: When a webpage document loads (Stage 1), it is processed by the web browser, which then loads other requested resources, such as stylesheets,...
[LMG S3] Issue 38: Loading a web page
September 14, 2019
Previously: Data packets hop from server to server. The more hops a packet must undergo, the longer the latency. The slower the servers along the route, the...
[LMG S3] Issue 37: Traceroute–Google Maps for data packets
September 7, 2019
Previously: Latency is the time duration between a ping packet being sent out and its response being received. It is an indication of how far away a target...
[LMG S3] Issue 36: Latency
August 31, 2019
Previously: VPNs link devices that are not within the same network using an encrypted tunnel that prevents gateways from snooping on the data packet as it...
[LMG S3] Issue 35: Virtual Private Networks (VPNs)
August 24, 2019
Previously: Firewalls block data packets that match certain rules. They decrypt the data packet layer by layer, dropping those that match its programmed...
[LMG S3] Issue 34: Firewalls
August 17, 2019
Previously: Data is encapsulated when it goes out from an app onto the internet as a request or response. First, in the TCP layer, the OS tags the request...
[LMG S3] Issue 33: Port numbers
August 10, 2019
Previously: The devices on your home network share the single ISP-assigned IP address through your router. The router rewrites the source IP and port number...
[LMG S3] Issue 32: Sharing a public IP address: Network Address Traversal
August 3, 2019
Previously: A router assigns IP addresses automatically using DHCP. It reserves any registered static IP addresses for devices identified by their MAC...
[LMG S3] Issue 31: Getting a private IP address: DHCP (and DDNS)
July 27, 2019
Previously: Private IP addresses are special IP addresses that routers will treat as belonging to devices within the private network, and not outside it....
[LMG S3] Issue 30: Private IP Addresses
July 20, 2019
Previously: Your web browser resolves a hostname (finds out which IP address a hostname points to) by sending a DNS query to its gateway. Back in Issue 27, I...
[LMG S3] Issue 29: How to resolve a hostname
July 13, 2019
Previously: An IP address is a string of four numbers that looks like 255.255.128.1. IP addresses are a list managed by the IANA, and all Internet registries...
[LMG S3] Issue 28: Domain Names and DNS
July 6, 2019
Last issue, I introduced IP addresses: a string of four numbers that tells routers where to send the data packet. These IP addresses are managed by the...
[LMG S3] Issue 27: What is an IP address?
June 29, 2019
In Season 2, I took a detour to introduce some cool things that developers typically work with, and ideas they implement to make their work as smooth as...
[LMG S2] Issue 26: Software distribution
June 15, 2019
I skipped last week’s issue to attend my brother’s graduation, and now I’m back :) In the past 12 issues I’ve talked a bit about different kinds of programs...
[LMG S2] Issue 25: Text Editors and Integrated Development Environments
June 1, 2019
Last week, I introduced issue trackers, which are software tools that developers use to keep track of problems and issues with their software. Issue trackers...
[LMG S2] Issue 24: Issue trackers, Bug trackers
May 25, 2019
Last week, we talked about how developers plan out a project and describe specifically what needs to be done: they write out a specification, and then they...
[LMG S2] Issue 23: Specifications in software
May 18, 2019
Last week, we took a look at part of the (heavily simplified) software development pipeline: fork a repository → make changes → commit changes (and do...
[LMG S2] Issue 22: Continuous Integration in software
May 11, 2019
Last week I introduced forking and merging, which are how developers ensure that they don't override other peoples’ work. They fork a repository to create...
Newer archives
Older archives