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.
Numerical analysis by Ciro Santilli 40 Updated 2025-07-16
Techniques to get numerical approximations to numeric mathematical problems.
The entire field comes down to estimating the true values with a known error bound, and creating algorithms that make those error bounds asymptotically smaller.
Not the most beautiful field of pure mathematics, but fundamentally useful since we can't solve almost any useful equation without computers!
The solution visualizations can also provide valuable intuition however.
Important numerical analysis problems include solving:
All those dedicated applied mathematicians languages are a waste of society's time, Ciro Santilli sure applied mathematicians are capable of writing a few extra braces in exchange for a sane general purpose language, we should instead just invest in good libraries with fast C bindings for those languages like NumPy where needed, and powerful mainlined integrated development environments.
And when Ciro Santilli see the closed source ones like MATLAB being used, it makes him lose all hope on humanity. Why. As of 2020. Why? In the 1980s, maybe. But in the 2020s?
Borrow from the Internet Archive for free: archive.org/details/supermenstory00murr
Initial chapters put good clarity on the formation of the military-industrial complex. Being backed by the military, especially just after World War II, was in itself enough credibility to start and foster a company.
It is funny to see how the first computers were very artisanal, made on a one-off basis.
Amazing how Control Data Corporation raised capital IPO style as a startup without a product. The dude was selling shares at dinner parties in his home.
Very interesting mention on page 70 of how Israel bought CDC's UNIVAC 1103 which Cray contributed greatly to design, and everyone knew that it was to make thermonuclear weapons, since that was what the big American labs like this mention should be added to: en.wikipedia.org/wiki/Nuclear_weapons_and_Israel but that's Extended Protected... the horrors of Wikipedia.
Another interesting insight is how "unintegrated" computers were back then. They were literally building computers out of individual vacuum tubes, then individual semiconducting transistors, a gate at a time. Then things got more and more integrated as time went. That is why the now outdated word "microprocessor" existed. When processors start to fit into a single integrated circuit, they were truly micro compared to the monstrosities that existed previously.
Also, because integration was so weak initially, it was important to more manually consider the length of wire signals had to travel, and try to put components closer together to reduce the critical path to be able to increase clock speeds. These constraints are also of course present in modern computer design, but they were just so much more visible in those days.
The book does unfortunately not give much detail in Crays personal life as mentioned on this book review: www.goodreads.com/review/show/1277733185?book_show_action=true. His childhood section is brief, and his wedding is described in one paragraph, and divorce in one sentence. Part of this is because he was very private about his family most likely note how Wikipedia had missed his first wedding, and likely misattribute children to the second wedding; en.wikipedia.org/wiki/Talk:Seymour_Cray section "Weddings and Children".
Crays work philosophy is is highlighted many times in the book, and it is something worthy to have in mind:
  • if a design is not working, start from scratch
  • don't be the very first pioneer of a technology, let others work out the problems for you first, and then come second and win
Cray's final downfall was when he opted to try to use a promising but hard to work with material gallium arsenide instead of silicon as his way to try and speed up computers, see also: gallium arsenide vs silicon. Also, he went against the extremely current of the late 80's early 90's pointing rather towards using massively parallel systems based on silicon off-the-shelf Intel processors, a current that had DARPA support, and which by far the path that won very dramatically as of 2020, see: Intel supercomputer market share.

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