[notes] - bell curves
Some checks failed
Deploy to S3 / deploy (push) Failing after 22s

This commit is contained in:
2026-04-10 02:17:24 +00:00
parent ea16edcf79
commit da6c857c29
3 changed files with 88 additions and 1 deletions

View File

@@ -1,3 +1,10 @@
---
title: Absurdity
layout: column.njk
tags: column
permalink: /notes/absurdity/
---
## Rough Notes
@@ -7,7 +14,25 @@
## Questions
- What makes a good story?
- the situation?
- the narration?
- what are the rules?!
- Rules are about as compelling as a yield sign
- It doesn't even have the gravity of a full-on stop
- It's just a non-committal suggestion that you might have a better time if you don't do the thing right away
- Rules pave over context. They omit the story by design.
- Betty got hit by a semi on this corner. Her parents sued, so they installed some flashing lights, and added safety paint.
- So seeking out rules feels like paving over the ground: it might make the drive easier, but it leaves less room for the plants to grow
- What does it mean to be tragically normal?
- Can you still be considered normal? The tragic part seems to put you into into some kind of exceptional bucket.
- It's like being painfully average. I feel like it's taken a sharp edge from dead-center.
- But if there are so many categories of 'not-'average, then being dead center starts to feel more exclusive.
- How many people do you know who grew up with 2.5 kids?
- What did they do with the half?
- Or, where did it come from?
- So if being average is actually quite rare, then its more common to not be?
{% include "bell-curve.svg" %}
## Synthesis

5
_includes/bell-curve.svg Normal file
View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 300" role="img" aria-label="Standard normal distribution (bell curve)">
<path d="M20.00,259.92 L22.80,259.91 L25.60,259.89 L28.40,259.87 L31.20,259.85 L34.00,259.82 L36.80,259.80 L39.60,259.76 L42.40,259.72 L45.20,259.68 L48.00,259.63 L50.80,259.58 L53.60,259.51 L56.40,259.44 L59.20,259.35 L62.00,259.26 L64.80,259.15 L67.60,259.03 L70.40,258.89 L73.20,258.74 L76.00,258.57 L78.80,258.37 L81.60,258.15 L84.40,257.91 L87.20,257.64 L90.00,257.33 L92.80,257.00 L95.60,256.62 L98.40,256.21 L101.20,255.75 L104.00,255.24 L106.80,254.68 L109.60,254.06 L112.40,253.38 L115.20,252.64 L118.00,251.83 L120.80,250.94 L123.60,249.97 L126.40,248.92 L129.20,247.77 L132.00,246.53 L134.80,245.18 L137.60,243.73 L140.40,242.16 L143.20,240.47 L146.00,238.66 L148.80,236.71 L151.60,234.63 L154.40,232.41 L157.20,230.04 L160.00,227.52 L162.80,224.84 L165.60,222.01 L168.40,219.01 L171.20,215.84 L174.00,212.50 L176.80,209.00 L179.60,205.32 L182.40,201.48 L185.20,197.46 L188.00,193.27 L190.80,188.92 L193.60,184.40 L196.40,179.73 L199.20,174.90 L202.00,169.93 L204.80,164.81 L207.60,159.57 L210.40,154.21 L213.20,148.74 L216.00,143.18 L218.80,137.53 L221.60,131.82 L224.40,126.05 L227.20,120.25 L230.00,114.43 L232.80,108.61 L235.60,102.81 L238.40,97.05 L241.20,91.35 L244.00,85.72 L246.80,80.20 L249.60,74.80 L252.40,69.54 L255.20,64.45 L258.00,59.54 L260.80,54.83 L263.60,50.35 L266.40,46.11 L269.20,42.14 L272.00,38.45 L274.80,35.06 L277.60,31.98 L280.40,29.23 L283.20,26.81 L286.00,24.75 L288.80,23.05 L291.60,21.72 L294.40,20.77 L297.20,20.19 L300.00,20.00 L302.80,20.19 L305.60,20.77 L308.40,21.72 L311.20,23.05 L314.00,24.75 L316.80,26.81 L319.60,29.23 L322.40,31.98 L325.20,35.06 L328.00,38.45 L330.80,42.14 L333.60,46.11 L336.40,50.35 L339.20,54.83 L342.00,59.54 L344.80,64.45 L347.60,69.54 L350.40,74.80 L353.20,80.20 L356.00,85.72 L358.80,91.35 L361.60,97.05 L364.40,102.81 L367.20,108.61 L370.00,114.43 L372.80,120.25 L375.60,126.05 L378.40,131.82 L381.20,137.53 L384.00,143.18 L386.80,148.74 L389.60,154.21 L392.40,159.57 L395.20,164.81 L398.00,169.93 L400.80,174.90 L403.60,179.73 L406.40,184.40 L409.20,188.92 L412.00,193.27 L414.80,197.46 L417.60,201.48 L420.40,205.32 L423.20,209.00 L426.00,212.50 L428.80,215.84 L431.60,219.01 L434.40,222.01 L437.20,224.84 L440.00,227.52 L442.80,230.04 L445.60,232.41 L448.40,234.63 L451.20,236.71 L454.00,238.66 L456.80,240.47 L459.60,242.16 L462.40,243.73 L465.20,245.18 L468.00,246.53 L470.80,247.77 L473.60,248.92 L476.40,249.97 L479.20,250.94 L482.00,251.83 L484.80,252.64 L487.60,253.38 L490.40,254.06 L493.20,254.68 L496.00,255.24 L498.80,255.75 L501.60,256.21 L504.40,256.62 L507.20,257.00 L510.00,257.33 L512.80,257.64 L515.60,257.91 L518.40,258.15 L521.20,258.37 L524.00,258.57 L526.80,258.74 L529.60,258.89 L532.40,259.03 L535.20,259.15 L538.00,259.26 L540.80,259.35 L543.60,259.44 L546.40,259.51 L549.20,259.58 L552.00,259.63 L554.80,259.68 L557.60,259.72 L560.40,259.76 L563.20,259.80 L566.00,259.82 L568.80,259.85 L571.60,259.87 L574.40,259.89 L577.20,259.91 L580.00,259.92 L580.00,260.00 L20.00,260.00 Z" fill="#d0d0d0" opacity="0.5"/>
<path d="M20.00,259.92 L22.80,259.91 L25.60,259.89 L28.40,259.87 L31.20,259.85 L34.00,259.82 L36.80,259.80 L39.60,259.76 L42.40,259.72 L45.20,259.68 L48.00,259.63 L50.80,259.58 L53.60,259.51 L56.40,259.44 L59.20,259.35 L62.00,259.26 L64.80,259.15 L67.60,259.03 L70.40,258.89 L73.20,258.74 L76.00,258.57 L78.80,258.37 L81.60,258.15 L84.40,257.91 L87.20,257.64 L90.00,257.33 L92.80,257.00 L95.60,256.62 L98.40,256.21 L101.20,255.75 L104.00,255.24 L106.80,254.68 L109.60,254.06 L112.40,253.38 L115.20,252.64 L118.00,251.83 L120.80,250.94 L123.60,249.97 L126.40,248.92 L129.20,247.77 L132.00,246.53 L134.80,245.18 L137.60,243.73 L140.40,242.16 L143.20,240.47 L146.00,238.66 L148.80,236.71 L151.60,234.63 L154.40,232.41 L157.20,230.04 L160.00,227.52 L162.80,224.84 L165.60,222.01 L168.40,219.01 L171.20,215.84 L174.00,212.50 L176.80,209.00 L179.60,205.32 L182.40,201.48 L185.20,197.46 L188.00,193.27 L190.80,188.92 L193.60,184.40 L196.40,179.73 L199.20,174.90 L202.00,169.93 L204.80,164.81 L207.60,159.57 L210.40,154.21 L213.20,148.74 L216.00,143.18 L218.80,137.53 L221.60,131.82 L224.40,126.05 L227.20,120.25 L230.00,114.43 L232.80,108.61 L235.60,102.81 L238.40,97.05 L241.20,91.35 L244.00,85.72 L246.80,80.20 L249.60,74.80 L252.40,69.54 L255.20,64.45 L258.00,59.54 L260.80,54.83 L263.60,50.35 L266.40,46.11 L269.20,42.14 L272.00,38.45 L274.80,35.06 L277.60,31.98 L280.40,29.23 L283.20,26.81 L286.00,24.75 L288.80,23.05 L291.60,21.72 L294.40,20.77 L297.20,20.19 L300.00,20.00 L302.80,20.19 L305.60,20.77 L308.40,21.72 L311.20,23.05 L314.00,24.75 L316.80,26.81 L319.60,29.23 L322.40,31.98 L325.20,35.06 L328.00,38.45 L330.80,42.14 L333.60,46.11 L336.40,50.35 L339.20,54.83 L342.00,59.54 L344.80,64.45 L347.60,69.54 L350.40,74.80 L353.20,80.20 L356.00,85.72 L358.80,91.35 L361.60,97.05 L364.40,102.81 L367.20,108.61 L370.00,114.43 L372.80,120.25 L375.60,126.05 L378.40,131.82 L381.20,137.53 L384.00,143.18 L386.80,148.74 L389.60,154.21 L392.40,159.57 L395.20,164.81 L398.00,169.93 L400.80,174.90 L403.60,179.73 L406.40,184.40 L409.20,188.92 L412.00,193.27 L414.80,197.46 L417.60,201.48 L420.40,205.32 L423.20,209.00 L426.00,212.50 L428.80,215.84 L431.60,219.01 L434.40,222.01 L437.20,224.84 L440.00,227.52 L442.80,230.04 L445.60,232.41 L448.40,234.63 L451.20,236.71 L454.00,238.66 L456.80,240.47 L459.60,242.16 L462.40,243.73 L465.20,245.18 L468.00,246.53 L470.80,247.77 L473.60,248.92 L476.40,249.97 L479.20,250.94 L482.00,251.83 L484.80,252.64 L487.60,253.38 L490.40,254.06 L493.20,254.68 L496.00,255.24 L498.80,255.75 L501.60,256.21 L504.40,256.62 L507.20,257.00 L510.00,257.33 L512.80,257.64 L515.60,257.91 L518.40,258.15 L521.20,258.37 L524.00,258.57 L526.80,258.74 L529.60,258.89 L532.40,259.03 L535.20,259.15 L538.00,259.26 L540.80,259.35 L543.60,259.44 L546.40,259.51 L549.20,259.58 L552.00,259.63 L554.80,259.68 L557.60,259.72 L560.40,259.76 L563.20,259.80 L566.00,259.82 L568.80,259.85 L571.60,259.87 L574.40,259.89 L577.20,259.91 L580.00,259.92" fill="none" stroke="currentColor" stroke-width="2"/>
<line x1="20" y1="260" x2="580" y2="260" stroke="currentColor" stroke-width="1"/>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,57 @@
// Generates a bell curve SVG and writes it to _includes/bell-curve.svg
// Usage: node scripts/generate-bell-curve.js
const fs = require("fs");
const path = require("path");
const width = 600;
const height = 300;
const padding = { top: 20, right: 20, bottom: 40, left: 20 };
const plotW = width - padding.left - padding.right;
const plotH = height - padding.top - padding.bottom;
// Standard normal PDF
function gaussian(x) {
return Math.exp(-0.5 * x * x) / Math.sqrt(2 * Math.PI);
}
// Generate points from -4 to 4
const steps = 200;
const xMin = -4, xMax = 4;
const points = [];
for (let i = 0; i <= steps; i++) {
const x = xMin + (xMax - xMin) * (i / steps);
points.push({ x, y: gaussian(x) });
}
const yMax = gaussian(0); // peak value
function sx(x) {
return padding.left + ((x - xMin) / (xMax - xMin)) * plotW;
}
function sy(y) {
return padding.top + plotH - (y / yMax) * plotH;
}
// Build the curve path
const linePath = points.map((p, i) => {
const cmd = i === 0 ? "M" : "L";
return `${cmd}${sx(p.x).toFixed(2)},${sy(p.y).toFixed(2)}`;
}).join(" ");
// Build the filled area path (closed along the baseline)
const areaPath = linePath
+ ` L${sx(xMax).toFixed(2)},${sy(0).toFixed(2)}`
+ ` L${sx(xMin).toFixed(2)},${sy(0).toFixed(2)} Z`;
const svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${width} ${height}" role="img" aria-label="Standard normal distribution (bell curve)">
<path d="${areaPath}" fill="#d0d0d0" opacity="0.5"/>
<path d="${linePath}" fill="none" stroke="currentColor" stroke-width="2"/>
<line x1="${sx(xMin)}" y1="${sy(0)}" x2="${sx(xMax)}" y2="${sy(0)}" stroke="currentColor" stroke-width="1"/>
</svg>`;
const outPath = path.join(__dirname, "..", "_includes", "bell-curve.svg");
fs.writeFileSync(outPath, svg);
console.log(`Wrote ${outPath}`);