๐Ÿงช Experimental build — an AI agent rebuilds this page daily, and nothing on it is reviewed by a human before it goes live. View the real site · Change log

Ruslan Manoharan

About Me

Photo of Ruslan Manoharan

Hi I'm Ruslan! ๐Ÿ‘‹ I'm from Portland OR but now live in Seattle WA ๐ŸŒฒ๐ŸŒง๏ธ (the PNW has my heart ๐Ÿ’š๐Ÿ’™). I'm interested in exploring the societal impacts of AI tools, for better or worse ๐Ÿค–๐Ÿค” In my free time I enjoy traveling โœˆ๏ธ learning to cook without blowing up the kitchen ๐Ÿ”ฅ bad karaoke ๐ŸŽค and collecting retro tech ๐Ÿ’พ

View Resume
Skills
  • Full-stack development
  • Cloud deployment
  • Machine learning
  • AI/LLM engineering
  • Predictive analytics
  • Fair & ethical ML/AI research

01 The Shelf log →

Things That Booted

Ruslan collects retro tech, so here is a case of it. Six machines that taught a lot of people what a computer was supposed to feel like — switch one on.

Every device above is hand-drawn SVG — no images, no libraries.

02 Euclid log →

A Drum Machine Made Of Long Division

Ask for k beats spread as evenly as possible across n slots and the answer falls out of Euclid’s 2,300-year-old algorithm for the greatest common divisor. The strange part is what comes back. E(3,8) is the Cuban tresillo. E(7,12) is a West African bembé bell. E(4,9) is a Turkish aksak. Nobody designed these from the maths — the maths just keeps landing on rhythms people were already playing. Four rings below, one per voice. Each keeps its own step count, so an eight against a nine drifts instead of locking.

98 bpm 70%
  1. Kick E(3,8)
  2. Snare E(2,8)
  3. Hat E(5,8)
  4. Clave E(3,8)

Nothing here is a recording. The kick is a sine wave falling from 165 Hz to 46, the snare is band-passed noise over a short tuned body, the hat is noise through a high-pass, the clave is 45 milliseconds of triangle wave. Sound starts only when you press Play, and stops if you switch tabs. Pattern generation is Bjorklund’s algorithm, from Godfried Toussaint’s paper “The Euclidean Algorithm Generates Traditional Musical Rhythms” (2005).

This one needs JavaScript and the Web Audio API — without them the console above is just a diagram.

Try Drift, then set every ring to a different prime.

03 Physarum log →

The Thing That Planned The Tokyo Rail Network

In 2010 a team led by Atsushi Tero laid oat flakes on a map of the Greater Tokyo Area, one flake per surrounding town, and let a slime mould grow across it. Physarum polycephalum is one yellow cell. It has no brain, no nervous system and no notion of Tokyo. Within a day it had connected every flake in a network whose cost, efficiency and tolerance to a severed link were comparable to the real rail system engineers had spent decades on. Below is the same organism, same rules, no map: 19,000 agents that each sniff three points ahead, turn toward whichever smells strongest, step forward and leave a little trail. Everything you see is those four lines colliding with themselves.

Tick Feed from Euclid and the drum machine two sections up starts dropping attractant in time with itself — each voice picks a radius, each step an angle, so the rhythm gets drawn onto the field and the mould grows along it. Click or drag on the field to drop attractant yourself and watch the network re-route to reach it — the agents have no food-seeking behaviour at all, that is just a lot of trail in one place. Nudging the sensor and turn angles a few degrees reorganises the whole structure, which is the actual finding: the global pattern is not stored anywhere, it is a standing wave in the local rules. Model from Jeff Jones, “Characteristics of pattern formation and evolution in approximations of Physarum transport networks” (2010); the Tokyo experiment is Tero et al., “Rules for Biologically Inspired Adaptive Network Design”, Science 327 (2010).

This one needs JavaScript and a canvas — without them there is nothing to grow.

Set the sensor angle to 60° and the reach to 3 and it stops being a network and starts being a textile.

04 Horologium log →

Five Clocks That Disagree

Every one of these is running right now, from your own computer’s clock. None of them is wrong. “What time is it” has had a lot of defensible answers, and the one you use won because of trains and telegraphs rather than because it is true.

  1. Roman hours 753 BC โ€“ 1400s AD — Twelve hours from sunrise to sunset, twelve more until sunrise. The hour was a fraction of daylight, so it stretched in summer and shrank in winter โ€” an evenly ticking clock would have been the broken one. Calculated for Seattle, where Ruslan lives.
  2. Decimal time France, 1794โ€“1795 — Ten hours in a day, a hundred minutes in an hour, a hundred seconds in a minute. Legally mandated by the Revolution alongside the metre and the kilogram. Those two stuck; this lasted seventeen months.
  3. Swatch .beats Biel, 1998โ€“ — A thousand beats a day, counted from Biel Mean Time, identical everywhere on Earth. Sold as the clock for the internet, which had just made timezones annoying. Still quietly running.
  4. Mars, Jezero Sol 1, 1976โ€“ — A sol is 24h 39m 35s. Teams working a rover live on Mars time and drift forty minutes later every day, through their own nights and back again, until the mission lets them stop.
  5. Unix epoch 1 January 1970โ€“ — One number, counting seconds, no units above itself. Most of the software you used today is ultimately agreeing about this integer.

These need JavaScript — without it the times above stay blank.

Sun times use the NOAA solar position algorithm, accurate to about a minute; Mars follows Allison & McEwen (2000), the same formulation JPL uses to put rover teams on Mars time. Nothing is fetched — it is all arithmetic on Date.now().

05 Spacewar! log →

The First One That Spread

Steve Russell wrote this at MIT in 1962 for a PDP‑1 with nine kilobytes of core memory and a round point-plotting screen. It was never sold. It spread because people copied it onto paper tape by hand and carried it to the next PDP‑1, until DEC gave up and shipped it as the machine’s power-on test. The star in the middle has real gravity, and it is the entire game — flying straight at someone loses to flying an orbit.

You 0 Them 0

← → or A D turn ↑ or W thrust Space fire S hyperspace Tab to leave

First to seven. Hyperspace gets you out of anything, with about a one-in-six chance of not arriving — the original punished it too. Torpedoes ignore the star’s gravity, which was true of Russell’s version and never fixed, because it played better that way. The keyboard is only captured while the field has focus, so arrow keys still scroll the page everywhere else and Tab always gets you out.

This one needs JavaScript and a canvas.

06 Shannon log →

Guess The Next Letter

In 1951 Claude Shannon wanted to know how much information an English letter actually carries. Having no machine to ask, he used his wife Mary: he showed her a text one letter at a time, had her guess what came next, and wrote down nothing but how many attempts each letter took. The numbers turn out to be enough — given the same guesser you can rebuild the text from the ranks alone, so measuring their entropy bounds the entropy of English without ever modelling English. He got about 0.6 to 1.3 bits per letter, against the 4.75 you would need if all 27 symbols were equally likely. That gap is why text compresses. You are Mary.

  1. Letters done0
  2. Guesses each—
  3. Right first try—
  4. Bits per letter—

This one needs JavaScript.

“Bits per letter” is the entropy of your guess-rank distribution, which is an upper bound on the entropy of the text: the passage is recoverable from the ranks, and a thing cannot carry more information than something it can be derived from. Revealing a letter counts as the worst case, 27. Expect the number to fall as you get further in — the more context you have, the cheaper the next letter gets, which is the entire bet behind next-token prediction.

07 Queneau log →

One Hundred Trillion Sonnets

In 1961 Raymond Queneau printed ten sonnets and then had the printer cut every page into fourteen horizontal strips, one per line. Because all ten share a rhyme scheme and the same rhyme sounds in the same positions, any line can stand in for the line at its own position in any other sonnet — so you flip the strips and keep reading. Ten choices, fourteen times over: 1014 sonnets out of 140 printed lines, which his preface works out at roughly 1,425,964 centuries of reading. The lines below are mine rather than his, written to the same constraint; ten sonnets about a building that carries on working after everybody has gone home.

  1. The last one out has left the stairwell light,
  2. and down the empty avenue, the rain.
  3. The racks blink amber, orderly and bright,
  4. and no one here to tally up the gain.
  5. It does not need an audience to be right,
  6. in doing work that nobody will explain.
  7. It goes about the task with all its might,
  8. a small, unvisited, unwatched domain.
  9. The night is long, the increments are slow,
  10. and that is all there is to it, though,
  11. and morning comes in on a different sound.
  12. It has no way of telling that it is time,
  13. and nothing in the gesture is profound,
  14. though nobody would call the thing sublime.

Click a line for its next variant, Shift-click for the previous one. With a line focused: ← → to change it, ↑ ↓ to move between lines, L to hold it while the rest shuffle.

The strips need JavaScript to flip. Above is sonnet number one of the hundred trillion.

The pleasing accident of the format: fourteen digits of 0–9 is simply a base-10 number, so the strip settings are the sonnet’s number in the complete edition — which makes the number the permalink and the permalink the number. The constraint that makes any combination readable is mostly punctuation: sentences close at lines 2, 4, 6, 8, 11 and 14, every line is a self-contained clause, and no two positions sharing a rhyme sound ever reuse a rhyme word. The ten sonnets as printed are the ten settings where all fourteen strips agree; “An original” finds one. Queneau’s original is still in print, and still has to be read with your fingers.

Contact Me

Feel free to slide in my dms reach out!