Explained from First Principles

Welcome to Explained from First Principles, a technology, science, and philosophy blog for curious people who want to understand and change the world. In order to make you feel at home here as quickly as possible, here is what you should know about this blog.

Tabloidscoverpeople Newspaperscoverevents This blogcoversideas
This blog explains technical concepts and scientific theories.



The following articles have been published on this blog:


The goal of this website is to provide the best introductions available to the covered subjects. After doing a lot of research about a particular topic, I write the articles for my past self in the hope they are useful to the present you. Each article is intended to be the first one that you should read about a given topic and also the last — unless you want to become a real expert on the subject matter. I try to explain all concepts as much as possible from first principles, with which I mean the following:

  • Reductionist reasoning: There is a big difference between understanding how something works and understanding why something works. The latter is much more interesting as it allows you to predict how a system behaves in novel circumstances.
  • No prior knowledge required: I strive to make the explanations comprehensible with no prior knowledge beyond a high-school education. Since education varies a lot by school and country, I link even basic concepts to external sources, such as Wikipedia.
  • Reasoning transparency: By referencing the sources behind empirical claims and by giving you the full explanation whenever possible, you can form your own opinion without having to trust me. The articles themselves are minimal-trust investigations.


As is the case for all humans, my expertise is limited. Given the wide range of topics I cover, I cannot be an expert in all of them. I try to check empirical claims and study normative statements as well as I can, but unlike schools and Wikipedia, the content on this blog is intentionally opinionated. I believe that the judgment of an approach is just as important as the approach itself, given the right amount of intellectual humility as opinions can and should evolve with new considerations. The problem with learning is that the more you understand, the more you understand what you don’t understand. While going down the rabbit hole of a topic can be a lot of fun, I have to stop my research at some point in order not to paralyze myself. Therefore, if I’m mistaken about facts, please bring it to my attention. If you disagree with my conclusions, write a rebuttal. If your rebuttal contributes to a civilized debate, I’ll link to it.


In order to truly understand why things are the way they are and not different, you have to put in a lot of effort. But as with many things in life, the more you put into it, the more you get out of it. To respect your time, I write as succinctly as I can, which makes the information density of my texts really high. However, complex concepts simply require a lot of words to explain them properly. I put a lot of thought into the structure of each article to make it as easy to skim and digest as possible. I avoid overarching storylines so that you can read each section independently, which allows the articles to be used as works of reference.


Explained from First Principles by Kaspar Etter is licensed under the Creative Commons Attribution 4.0 International License.


While I researched the content on this website thoroughly, you take or omit actions based on it at your own risk. In no event shall I as the author be liable for any damages arising from information or advice on this website or on referenced websites.

In order to make this blog as useful as possible, I added the following features for you. If you have ideas for improvement, tell me.

Table of contents

The table of contents is generated to the left on bigger screens and accessible through the button in the lower right corner on smaller screens. It contains two levels of titles, which are automatically expanded on bigger screens and always expanded on smaller screens. As the current section is highlighted, you always know where you are, which is crucial to grasp complex topics.

If you click on a green link, which references a different section on the same page, a new entry in your browser history is generated so that you can easily go back to where you were before you clicked the link. A click on a blue link opens the referenced page in a new window or tab. Like this, you never have to worry that you lose your current position. Let’s just try it: Click here and then back.

Browser address

When you scroll through an article, your browser address is updated continuously in order to always link to the current section. While this can create a lot of entries in your browser history, it helps you find more easily where you left off, especially on mobile when a page reload is forced upon you. If you want to share an article without linking to a particular section, make sure to remove everything in the address from the hash (#) onward. Alternatively, simply scroll to the top of the page before copying the address.

If you want to share a link to a specific section, just click on the green icon after the title in order to copy the exact address to the clipboard of your device. On devices with a mouse, the green link icon is shown only when you hover your mouse over the title.

Section skipping

If a section does not interest you, you can click on the text of its title to advance to the next section of the same or a higher level.

Information boxes

Articles contain boxes with additional information, which you can open and close by clicking on their title. If you want to expand all boxes, you can click on “Expand” in the navigation bar. This is useful for including all boxes when searching for a phrase on a page.

Recommended reading

Boxes which start out open contain explanations that are important to follow the main narrative. Their content doesn’t fit the structure of the article or is self-contained enough to warrant its own box. In either case, the article may refer to such boxes.

Optional reading

Boxes which start out closed contain side notes that can be skipped without impairing the main topic. Sometimes I just like to digress. Other times, such boxes contain background information which is too technical for a general audience. In either case, you might miss out on interesting little details if you don’t open them. However, if an article already feels too long or advanced to you, I suggest that you simply skip all closed boxes when you read the article for the first time.

Dark and light mode

You can switch from a dark appearance to a light appearance by clicking on the second-last entry in the navigation bar at the top.

Interactive tools

Many articles contain interactive tools, which allow you to play around with a particular concept. In order to revisit earlier examples later on, the values you enter are stored locally in your browser. You can go back and forth through the history of values by clicking on the corresponding buttons. The values are persisted across sessions: If you close the browser window and then open the article again, the entered values are still there. You can erase the history of a tool by clicking the button with the trash icon. If you don’t want the entered values to be persisted across sessions in the first place, then open the article in the private mode of your web browser. You can also erase all stored values, including your theme preference, by clicking on the pink link in this sentence.

Sharing of values

You can share a tool’s current set of values with someone else by clicking on the corresponding button. The values are encoded into the fragment of the copied link. This has the advantage that they are not sent to the server when opening the link. On the downside, such links don’t work for users who disabled JavaScript.

Article download

You can download each article as a PDF for printing or offline reading. You find the download link at the top of the corresponding article. The printing feature of your browser also works, of course, but I cannot ensure that the article is formatted nicely this way. Additionally, only the open information boxes are printed if you export the article yourself.

Graphics export

By right-clicking a graphic with your mouse (or by double-clicking it on a touch device), you can download the graphic as a pixel image in the PNG format or as a vector graphic in the SVG format. You can use the graphics on this blog for anything you want as long as you give appropriate credit, indicate if you made changes, and don’t suggest that I endorse you (see the license above).

Acronym tooltips

While I generally try to avoid acronyms, sometimes they’re better known than what they stand for. Whenever you encounter an acronym on this website, you can hover with your mouse over it (or click on it on a touch device) to get a tooltip with their full name.


I work independently, and I’m supported only by donations from my readers. I pledge to disclose all conflicts of interest which might bias the content on this blog. All the text on this website is written by me and not by a large language model (LLM), such as ChatGPT.


Do not hesitate to contact me if you have feedback, questions, or suggestions for topics to write about. Please also let me know if an explanation is hard to follow. If you found a typographical error, a factual inaccuracy or a logical fallacy, you can also create an issue.

It already means a lot to me if you read and share my articles. If you have a regular income and learned something from my articles, I would really appreciate your financial support. You can support me on GitHub, Liberapay, Patreon, and PayPal. You can also transfer money directly to my bank account using my name and the IBAN CH48 0025 7257 6106 9840 Q. If you prefer to stay “anonymous”, you can donate some bitcoin to bc1q4fsulplawjucrw9sz0swgu6thgk24fn03wttrrcesut2nsq0zwgsepveep . Every satoshi counts.



My name is Kaspar Etter. I’m a curious and skeptical person. I studied computer science at ETH and live in Zurich, Switzerland.


Here are my answers to frequently asked questions (FAQ):

Do you also have a mailing list?

No. I don’t like the pricing models of the major mailing list providers, the double opt-in hassle due to the European General Data Protection Regulation (GDPR), and anti-spam regulations requiring me to disclose my physical address, so I opted for a Telegram channel instead. You can also activate notifications on this blog’s Twitter profile or subscribe to its news feed using RSS/Atom. I intend to use these channels exclusively to announce new content, which means that you don’t have to worry about noise.

Can’t you write shorter articles?

I guess I could, but I also believe that length is the wrong metric. Whether a text is worth reading should be judged by the number of insights per word and not by the number of words. Your opinion may vary, but I think I’m doing pretty well on this second metric.

Why don’t you split your long articles into smaller ones?

In my opinion, scrolling is easier than clicking, especially when you just want to skim a text. Having everything on a single page is also friendlier for offline reading and for using your browser’s search functionality to find what you’re looking for. The biggest reason for splitting long articles into smaller ones is search engine optimization (SEO). It would also have the desirable side effect of allowing me to post new content more often. For now, I’m willing to sacrifice both in favor of making my content as useful as possible, but my view on this might change in the future.

Have you considered creating videos about your content?

Yes, I have, but I think it’s neither a good fit for me nor for my content. I like edutainment a lot, and there are many great channels on YouTube, which I watch often. However, written text has many advantages when you truly want to understand something: You can read at your own pace, reread a paragraph as needed, recognize the structure of an argument, copy sentences into your notes, and search for terms of interest. In comparison to videos, text is also much easier to make interactive and to update after its publication. Last but not least, the World Wide Web (WWW) allows me to link to additional explanations and to the sources of my information.

Have you considered publishing your articles as books?

Not really. I think that books are an outdated format for most purposes. On the one hand, books lack the concept of hyperlinks: You cannot easily link into the text and out of it. On the other hand, books cannot have interactive elements, which often make learning so much easier. Regarding monetization, I’m not a fan of paywalls. I believe that information shall be freely accessible and shareable as long as it does more good than harm. In my opinion, the Web is the ideal publishing platform. But we’ll see what the future holds.

What software do you use to create the graphics?

I wrote my own SVG framework because I couldn’t find a solution which matched my needs. I wanted to be able to style the scalable vector graphics with the page-wide CSS so that the theme can be toggled without having to replace the graphics. The support for CSS classes wasn’t great in the vector graphics editors that I’ve checked. Using code instead of a graphical user interface (GUI) to create vector graphics has the advantage that graphics can build on one another and share common functionality. It also makes it straightforward to compile a single graphic in different ways. I wanted the graphics to be generated ahead of time so that they can be used for other purposes as well. All major SVG libraries, however, manipulate a document object model (DOM). While there are workarounds to run them on a server, such as using a headless browser or a DOM library, I decided to roll my own little SVG library, which grew over time. It is heavily tailored to my needs and my design language, but if there’s enough interest, I’m open to splitting the framework into its own repository.

Why don’t you contribute to Wikipedia instead?

This is a valid question, which I’ve asked myself in the past. The main reasons for publishing my content on my own website are:

  • Format/structure: Both textbooks and encyclopedias have their merit. For learning about a new topic, textbooks are preferable, though, as they provide a learning path with a point of entry and linear steps which build on one another. It’s much easier to get lost in an encyclopedia as it lacks similar guidance. Since its authors cannot know where a reader is coming from, its articles often assume either too much or too little prior knowledge, which leads to undesirable gaps and repetitions in the learning experience.
  • Artistic freedom: By being fully independent, I can make up better terms and concepts, which make it easier to grasp new ideas. A great example for this is the security layer in the article about the Internet, which makes a lot of sense, but which you won’t find in the classic literature. Being independent also allows me to give advice and to state my opinion even on controversial topics.
  • Software stack: By building my own publishing platform, I can implement all ideas that I have and make my articles interactive.
  • Hassle-free process: I don’t enjoy long discussions and interference with my work, but this fear of mine might well be misplaced.
  • Proper attribution: Given the enormous amount of work I put into my articles, I’d like to get something out of it. For now, this is mostly recognition, but I’d like to make a living out of this at some point. You can help me get there by supporting me financially.

Do you accept guest content on your blog?

No; even if you’re willing to pay for it. There are many open publishing platforms, such as Medium, but this website isn’t one of them.

If you like my work, please consider supporting me with a donation so that I can keep publishing articles which are freely available. To be informed about new articles, follow this blog on Reddit, Twitter, or Telegram, or subscribe to its news feed using RSS/Atom.