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).
Video 1.
The $130B Plan to Replace the U.S.’s Nuclear Missiles by The Wall Street Journal
. Source.
https://web.archive.org/web/20230321151835im_/https://minutemanmissile.com/images/HICSCableCloseUp.jpg
https://web.archive.org/web/20230321151835im_/https://minutemanmissile.com/images/HICSCableSplicerTwo.jpg
https://web.archive.org/web/20230321151835im_/https://minutemanmissile.com/images/HICSCableConnectivitySchematic.jpg
Intel GPU Updated 2025-07-16
Intel Research Updated 2025-07-16
"Intel Research Lablets", that's a terrible name.
There's a tiny little crosshair that you can drag around to set the center of rotation.
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.
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
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?
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"
)
Their API limit witout key is 1 query per 10 seconds!!!
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.html
awk 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 *.txt
Remove 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.