When making this website, i wanted a simple, reasonable way to make it look good on most displays. Not counting any minimization techniques, the following 58 bytes worked well for me:
main {
max-width: 38rem;
padding: 2rem;
margin: auto;
}
-- LFSRs are good for games where you want a random number generator with a short period, | |
-- so that speed runners can device tactics to control the RNG's state. | |
-- Otherwise they're a bit of an obsolete piece of tech. | |
-- See: https://en.wikipedia.org/wiki/Linear-feedback_shift_register | |
-- LFSRs work by shifting all of the bits to the right by one, and using the shifted | |
-- out bit to XOR in at specific taps. Another way to put it is that they first check | |
-- if the state is odd, then divides by two, and if it was odd, Exclusive-Ors in a value. | |
-- The bit shifted out is suitably random. Want more bits, cycle the generator more. |
Latency Comparison Numbers (~2012) | |
---------------------------------- | |
L1 cache reference 0.5 ns | |
Branch mispredict 5 ns | |
L2 cache reference 7 ns 14x L1 cache | |
Mutex lock/unlock 25 ns | |
Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
Compress 1K bytes with Zippy 3,000 ns 3 us | |
Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |