Internal symmetry Updated 2025-07-16
Spacetime symmetry Updated 2025-07-16
LGM-30 Minuteman Updated 2025-07-16
Ah, the choice of name, both grim and slightly funny, Dr. Strangelove comes to mind quite strongly. Also Fallout (franchise).
- youtu.be/VTQ8yZSyrC0?t=75 map of missile silos
- youtu.be/VTQ8yZSyrC0?t=210 shows a map of the communication copper wires linking up a silo farm. Presumably Hardened Intersite Cable System
Bibliography:
Intel GPU Updated 2025-07-16
Intel Research Updated 2025-07-16
Integer factorization algorithm Updated 2025-07-16
Instrumental convergence Updated 2025-07-16
Rotate object around a point in Inkscape Updated 2025-11-05
Set SVG background color in Inkscape Updated 2025-11-05
This is related to the underlying SVG pain point of SVG background color:
Mathematical consistency of quantum field theory Updated 2025-07-16
Definition of the indefinite orthogonal group Updated 2025-07-16
Given a matrix with metric signature containing positive and negative entries, the indefinite orthogonal group is the set of all matrices that preserve the associated bilinear form, i.e.:Note that if , we just have the standard dot product, and that subcase corresponds to the following definition of the orthogonal group: Section "The orthogonal group is the group of all matrices that preserve the dot product".
As shown at all indefinite orthogonal groups of matrices of equal metric signature are isomorphic, due to the Sylvester's law of inertia, only the metric signature of matters. E.g., if we take two different matrices with the same metric signature such as:and:both produce isomorphic spaces. So it is customary to just always pick the matrix with only +1 and -1 as entries.
Indefinite special orthogonal group Updated 2025-07-16
Like the special orthogonal group is to the orthogonal group, is the subset of with determinant equal to exactly 1.
Iterative in-order Updated 2025-07-16
This is a bit harder than iterative pre-order: now we have to check if there is a left or right element or not:
- (START) push current
- if there is left:
- move left
- else:
- (ELSE) pop
- visit
- if there is right
- move right
- GOTO START
- else:
- GOTO ELSE
The control flow can be slightly simplified if we allow NULLs: www.geeksforgeeks.org/inorder-tree-traversal-without-recursion/
IBM 705 Updated 2025-07-16
Hyperbolic sine Updated 2025-07-16
Hyperbolic cossine Updated 2025-07-16
Kirchhoff's diffraction formula Updated 2025-07-16
WebGL Updated 2025-07-16
HTML snippet:
new class extends OurbigbookCanvasDemo {
init() {
super.init('webgl', {context_type: 'webgl'});
this.ctx.viewport(0, 0, this.ctx.drawingBufferWidth, this.ctx.drawingBufferHeight);
this.ctx.clearColor(0.0, 0.0, 0.0, 1.0);
this.vertexShaderSource = `
#version 100
precision highp float;
attribute float position;
void main() {
gl_Position = vec4(position, 0.0, 0.0, 1.0);
gl_PointSize = 64.0;
}
`;
this.fragmentShaderSource = `
#version 100
precision mediump float;
void main() {
gl_FragColor = vec4(0.18, 0.0, 0.34, 1.0);
}
`;
this.vertexShader = this.ctx.createShader(this.ctx.VERTEX_SHADER);
this.ctx.shaderSource(this.vertexShader, this.vertexShaderSource);
this.ctx.compileShader(this.vertexShader);
this.fragmentShader = this.ctx.createShader(this.ctx.FRAGMENT_SHADER);
this.ctx.shaderSource(this.fragmentShader, this.fragmentShaderSource);
this.ctx.compileShader(this.fragmentShader);
this.program = this.ctx.createProgram();
this.ctx.attachShader(this.program, this.vertexShader);
this.ctx.attachShader(this.program, this.fragmentShader);
this.ctx.linkProgram(this.program);
this.ctx.detachShader(this.program, this.vertexShader);
this.ctx.detachShader(this.program, this.fragmentShader);
this.ctx.deleteShader(this.vertexShader);
this.ctx.deleteShader(this.fragmentShader);
if (!this.ctx.getProgramParameter(this.program, this.ctx.LINK_STATUS)) {
console.log('error ' + this.ctx.getProgramInfoLog(this.program));
return;
}
this.ctx.enableVertexAttribArray(0);
var buffer = this.ctx.createBuffer();
this.ctx.bindBuffer(this.ctx.ARRAY_BUFFER, buffer);
this.ctx.vertexAttribPointer(0, 1, this.ctx.FLOAT, false, 0, 0);
this.ctx.useProgram(this.program);
}
draw() {
this.ctx.clear(this.ctx.COLOR_BUFFER_BIT);
this.ctx.bufferData(this.ctx.ARRAY_BUFFER, new Float32Array([Math.sin(this.time / 60.0)]), this.ctx.STATIC_DRAW);
this.ctx.drawArrays(this.ctx.POINTS, 0, 1);
}
} Blockchain.info Updated 2025-07-16
TODO who owns it? Are they reliable?
- transaction hex data: blockchain.info/tx/930a2114cdaa86e1fac46d15c74e81c09eee1d4150ff9d48e76cb0697d8e1d72?format=hex
- disassembled transaction as JSON: blockchain.info/tx/930a2114cdaa86e1fac46d15c74e81c09eee1d4150ff9d48e76cb0697d8e1d72?format=json
- block by height:
This helper dumps a transaction JSON to a binary:
bitcoin-tx-out-scripts() (
# Dump data contained in out scripts. Remove first 3 last 2 bytes of
# standard transaction boilerplate.
h="$1"
echo curl "https://blockchain.info/tx/${h}?format=json" |
jq '.out[].script' tmp.json |
sed 's/"76a914//;s/88ac"//' |
xxd -r -p > "${h}.bin"
) BitcoinStrings.com Updated 2025-07-16
bitcoinstrings.com has all
strings -n20 strings, we can obtain the whole thing and clean it up a bit with:wget -O all.html https://bitcoinstrings.com/all
cp all.html all-recode.html
recode html..ascii all-recode.html
awk '!seen[$0]++' all-recode.html > all-uniq.htmlawk to skip the gazillion "mined by message" repeats.A lot of in that website stuff appears to be cut up at the 20 mark. As shown in Force of Will, this is possibly because they didn't use
-w in strings -n20, and the text after the newlines was less than 20 characters.That website can be replicated by downloading the Bitcoin blockchain locally, then:
cd .bitcoin/blocks
for f in blk*.dat; do strings -n20 -w $f | awk '!seen[$0]++' > ${f%.dat}.txt; done
tail +n1 *.txtRemove most of the binary crap:
head -n-1 *.txt | grep -e '[. ]' | grep -iv 'mined by' | less There are unlisted articles, also show them or only show them.


