x86 Paging Tutorial / Bibliography Updated 2025-07-16
Free:
Non-free:
  • bovet05 chapter "Memory addressing"
    Reasonable intro to x86 memory addressing. Missing some good and simple examples.
Peter Cordes mentions that some architectures like MIPS leave paging almost completely in the hands of software: a TLB miss runs an OS-supplied function to walk the page tables, and insert the new mapping into the TLB. In such architectures, the OS can use whatever data structure it wants.
The Klein-Gordon equation can be written in terms of the d'Alembert operator as:
so we can expand the d'Alembert operator in Einstein notation to:
SymPy Updated 2025-07-16
This is the dream cheating software every student should know about.
It also has serious applications obviously. www.sympy.org/scipy-2017-codegen-tutorial/ mentions code generation capabilities, which sounds super cool!
The code in this section was tested on sympy==1.8 and Python 3.9.5.
Let's start with some basics. fractions:
from sympy import *
sympify(2)/3 + sympify(1)/2
outputs:
7/6
Note that this is an exact value, it does not get converted to floating-point numbers where precision could be lost!
We can also do everything with symbols:
from sympy import *
x, y = symbols('x y')
expr = x/3 + y/2
print(expr)
outputs:
x/3 + y/2
We can now evaluate that expression object at any time:
expr.subs({x: 1, y: 2})
outputs:
4/3
How about a square root?
x = sqrt(2)
print(x)
outputs:
sqrt(2)
so we understand that the value was kept without simplification. And of course:
sqrt(2)**2
outputs 2. Also:
sqrt(-1)
outputs:
I
I is the imaginary unit. We can use that symbol directly as well, e.g.:
I*I
gives:
-1
Let's do some trigonometry:
cos(pi)
gives:
-1
and:
cos(pi/4)
gives:
sqrt(2)/2
The exponential also works:
exp(I*pi)
gives;
-1
Now for some calculus. To find the derivative of the natural logarithm:
from sympy import *
x = symbols('x')
print(diff(ln(x), x))
outputs:
1/x
Just read that. One over x. Beauty. And now for some integration:
print(integrate(1/x, x))
outputs:
log(x)
OK.
Let's do some more. Let's solve a simple differential equation:
y''(t) - 2y'(t) + y(t) = sin(t)
Doing:
from sympy import *
x = symbols('x')
f, g = symbols('f g', cls=Function)
diffeq = Eq(f(x).diff(x, x) - 2*f(x).diff(x) + f(x), sin(x)**4)
print(dsolve(diffeq, f(x)))
outputs:
Eq(f(x), (C1 + C2*x)*exp(x) + cos(x)/2)
which means:
To be fair though, it can't do anything crazy, it likely just goes over known patterns that it has solvers for, e.g. if we change it to:
diffeq = Eq(f(x).diff(x, x)**2 + f(x), 0)
it just blows up:
NotImplementedError: solve: Cannot solve f(x) + Derivative(f(x), (x, 2))**2
Sad.
Let's try some polynomial equations:
from sympy import *
x, a, b, c = symbols('x a b c d e f')
eq = Eq(a*x**2 + b*x + c, 0)
sol = solveset(eq, x)
print(sol)
which outputs:
FiniteSet(-b/(2*a) - sqrt(-4*a*c + b**2)/(2*a), -b/(2*a) + sqrt(-4*a*c + b**2)/(2*a))
which is a not amazingly nice version of the quadratic formula. Let's evaluate with some specific constants after the fact:
sol.subs({a: 1, b: 2, c: 3})
which outputs
FiniteSet(-1 + sqrt(2)*I, -1 - sqrt(2)*I)
Let's see if it handles the quartic equation:
x, a, b, c, d, e, f = symbols('x a b c d e f')
eq = Eq(e*x**4 + d*x**3 + c*x**2 + b*x + a, 0)
solveset(eq, x)
Something comes out. It takes up the entire terminal. Naughty. And now let's try to mess with it:
x, a, b, c, d, e, f = symbols('x a b c d e f')
eq = Eq(f*x**5 + e*x**4 + d*x**3 + c*x**2 + b*x + a, 0)
solveset(eq, x)
and this time it spits out something more magic:
ConditionSet(x, Eq(a + b*x + c*x**2 + d*x**3 + e*x**4 + f*x**5, 0), Complexes)
Oh well.
Let's try some linear algebra.
m = Matrix([[1, 2], [3, 4]])
Let's invert it:
m**-1
outputs:
Matrix([
[ -2,    1],
[3/2, -1/2]])
Uncomputable function Updated 2025-07-16
The prototypical example is the Busy beaver function, which is the easiest example to reach from the halting problem.
WormWideWeb Updated 2025-07-16
wormwideweb.org/
Browse freely moving whole-brain calcium imaging datasets
INNER JOIN Updated 2025-07-16
Microwave oven Updated 2025-07-16
Video 1.
How Microwaves Work by National MagLab (2017)
Source. A bit meh. Does not mention the word cavity magnetron!
Video 2.
How a Microwave Oven Works by EngineerGuy
. Source. Cool demonstration of the standing waves in the cavity with cheese!
NADP+ Updated 2025-07-16
ExpertRank Updated 2025-07-16
Was adopted by AskJeeves in 2001.
The Google Story Chapter 11. "The Google Economy" comments:
As they saw it, generation one was AltaVista, generation two was Google, and generation three was Teoma, or what Ask Jeeves came to refer to as Expert Rank. Teoma's technology involved mathematical formulas and calculations that went beyond Google's PageRank system, which was based on popularity. In fact, the concept had been cited in the original Stanford University paper written by Sergey Brin and Larry Page as one of the methods that could be used to rank indexed Web sites in response to search requests. "They called their method global popularity and they called this method local popularity, meaning you look more granularly at the Web and see who the authoritative sources are," Lanzone said. He said Brin an Page had concluded that local popularity would be exceedingly difficult to execute well, because either it would require too much processing power to do it in real time or it would take too long.
googlesystem.blogspot.com/2006/03/expertrank-authoritative-search.html mentions
ExpertRank is an evolution of IBM's CLEVER project, a search engine that never made it to public.
and:
The difference between PageRank and ExpertRank is that for ExpertRank the quality of the page is important and that quality is not absolute, but it's relative to a subject.
There are other more recent algorithms with similar names, and are prehaps related:

Unlisted articles are being shown, click here to show only listed articles.