Figure 1.
Nelson-Mandela.jpg
. Source. Message:
"There is nothing like returning to a place that remains unchanged to find the ways in which you yourself have altered." - Nelson Mandela Nelson Rolihlahla Mandela was a South African anti-apartheid revolutionary, politician and philanthropist who served as President of South Africa from 1994 to 1999. - Wikipedia Born: July 18, 1918, Mvezo, South Africa Died: December 5, 2013.
MathDoctorBob by Ciro Santilli 40 Updated 2025-07-16
He got so old from 2012 to 2021 :-)
This dude did well. If only he had written a hyperlinked wiki rather than making videos! It would allow people to jump in at any point and just click back. It would be Godlike.
mathdoctorbob.org/About.html says:
Robert Donley received his doctorate in Mathematics from Stony Brook University and has over two decades of teaching experience at the high school, undergraduate, and graduate levels.
Ciro Santilli had once assigned this as one of Ciro Santilli's best random thoughts, but he later found that Wikipedia actually says exactly that: en.wikipedia.org/wiki/Reverse_engineering ("similar to scientific research, the only difference being that scientific research is about a natural phenomenon") so maybe that is where Ciro picked it up unconsciously in the first place.
Computer science by Ciro Santilli 40 Updated 2025-07-16
A branch of mathematics that attempts to prove stuff about computers.
Unfortunately, all software engineers already know the answer to the useful theorems though (except perhaps notably for cryptography), e.g. all programmers obviously know that iehter P != NP or that this is unprovable or some other "for all practical purposes practice P != NP", even though they don't have proof.
And 99% of their time, software engineers are not dealing with mathematically formulatable problems anyways, which is sad.
The only useful "computer science" subset every programmer ever needs to know is:
Funnily, due to the formalization of mathematics, mathematics can be seen as a branch of computer science, just like computer science can be seen as a branch of Mathematics!
Power engineering by Ciro Santilli 40 Updated 2025-07-16
Applications of power, we have to remember it is there to notice how awesome it is!
RandomX by Ciro Santilli 40 Updated 2025-07-16
This innovative POW is optimized for CPUs and it's based on execution of random code and other memory-heavy techniques.
This notation is designed to be relatively easy to write. This is achieved by not drawing ultra complex ASCII art boxes of every component. It would be slightly more readable if we did that, but prioritizing the writer here.
Two wires are only joined if + is given. E.g. the following two wires are not joined:
  |
--|--
  |
but the following are:
  |
--+--
  |
Simple symmetric components:
Asymmetric components have multiple letters indicating different ports. The capital letter indicates the device, and lower case letters the ports. The wires then go into the ports:
  • D: diode
    • a: anode (where electrons can come in from)
    • c: cathode
    Sample usage in a circuit:
    --aDc--
    Can also be used vertically like aany other circuit:
    |
    a
    D
    c
    |
    We can also change the port order, the device is still the same due to capital D:
    --cDa--
    
     |
    Dac--
    
     |
    Dca--
    
       |
    --caD
  • DC DC source. Ports:
    • p: positive
    • n: negative
    E.g. a 10 V source with a 10 Ohm resistor would be:
    +---pDC_10_n---+
    |              |
    +----R_10------+
    If only one side is given, the other is assumed to be at a the ground G. We can also omit p and m in that case and assume that p is the one used, e.g. the above would be equivalent to:
    DC_10---R_10---G
    If the voltage is not given, it is assumed to be a variable voltage power supply.
  • LED: same as diode
  • I: electric current source. Ports:
  • P: potentiometer source. Ports:
    • 1: one of the sides
    • 2: the middle
    • 3: the other side
  • T: transistor. The ports are sgTd:
    • s: source
    • g: gate
    • d: gate
    Sample usage in a circuit:
    ---+
       |
    --sgTd--
    All the following are also equivalent:
       |
       g
    --sTd--
    
        |
    --Tsgd--
       |
  • V: Voltmeter. Ports:
    • p: positive
    • n: negative
    If we don't need to specify explicit positive and negative sides, we can just use:
    ---V---
    without any ports. This is notably often the case for AC circuits.
    Optionally, we can also add the sides as in:
  • ports can also be separated by double underscores from the component names to increase readability. Single underscores can also be used to increase readability of longer multi-word component names e.g.:
    RPI_PICO_W__1gp0__3gnd
                |       |
                R_2k    |
                |       |
                +-aLEDc-+
    which is the same as:
    RPI_PICO_W
    1gp0  3gnd
    |       |
    R_2k    |
    |       |
    +-aLEDc-+
    represents a circuit linking port 1 of a Raspberry Pi Pico W, which is GPIO pin 0, through a resistor and an LED, back to pin 3 of the board, which is ground.
Numbers characterizing components are put just next to each component with an underscore. When there is only one parameter, standard units are assumed, e.g.:
+-----+
|     |
C_1p  R_2k
|     |
+-----+
means:
Micro is denoted as u.
Wires can just freely come in and out of specs of a component, they are then just connected to the component, e.g.:
DC_10---R_10---G
means applying a voltage of 10 V across a 10 Ohm resistor, which would lead to a current of 1 A
If a component has more than two parameters, units are used to distinguish them when possible, e.g.:
AC_1kV_2MHz
means an AC source with:
This is what happens when you apply a step voltage to a series RC circuit: TODO graph.
Crystal detector by Ciro Santilli 40 Updated 2025-07-16
The first diodes. These were apparently incredibly unreliable, especially for portable radios, as you had to randomly search for the best contact point you could find in a random polycrystalline material!!
And also quality was highly dependant on where the material was sourced from as that affected the impurities present in the material. Later this was understood to be an issue of doping.
It was so unreliable that vacuum tube diodes overtook them in many applications, even though crystal detectors are actually semiconductor diodes, which eventually won over!
For a long time, before artificial semiconductors kicked in, people just didn't know the underlying physical working principle of these detectors. What I cannot create, I do not understand basically.

Pinned article: Introduction to the OurBigBook Project

Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
We have two killer features:
  1. topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculus
    Articles of different users are sorted by upvote within each article page. This feature is a bit like:
    • a Wikipedia where each user can have their own version of each article
    • a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
    This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.
    Figure 1.
    Screenshot of the "Derivative" topic page
    . View it live at: ourbigbook.com/go/topic/derivative
  2. local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:
    This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
    Figure 2.
    You can publish local OurBigBook lightweight markup files to either https://OurBigBook.com or as a static website
    .
    Figure 3.
    Visual Studio Code extension installation
    .
    Figure 4.
    Visual Studio Code extension tree navigation
    .
    Figure 5.
    Web editor
    . You can also edit articles on the Web editor without installing anything locally.
    Video 3.
    Edit locally and publish demo
    . Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension.
    Video 4.
    OurBigBook Visual Studio Code extension editing and navigation demo
    . Source.
  3. https://raw.githubusercontent.com/ourbigbook/ourbigbook-media/master/feature/x/hilbert-space-arrow.png
  4. Infinitely deep tables of contents:
    Figure 6.
    Dynamic article tree with infinitely deep table of contents
    .
    Descendant pages can also show up as toplevel e.g.: ourbigbook.com/cirosantilli/chordate-subclade
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact