C.W.K.
Stream
Lesson 02 of 04 · published

Impossible as Static Data

~12 min · static-vs-live, engine, combinatorics, zpd

Level 0Cold Ash
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"A tab is a noun. Easy-mode is a verb. You can't store a verb."

A File Has One Answer; a Player Has Many Questions

A stored tab is the same bytes for everyone who opens it. That's fine for note-for-note — the original solo is one fixed thing. But "the easy version" isn't one thing. It depends on the song, on the player's hand size and reach, on what scale they've actually internalized, on whether today's goal is "get the chord changes" or "nail the lead's shape." Change any one of those and the right simplification changes. A single file can't hold all of those answers at once.

The Cross-Product That Can't Be Pre-Stored

Picture trying to ship easy-mode as static content. You'd need a file for every combination:

(every song) × (every player profile) × (every skill level) × (every goal)

That product explodes past any storable size almost immediately — and worse, you don't even know the player profiles in advance. The answer literally does not exist until a specific person asks for a specific passage at a specific moment. That's the definition of something you compute, not something you store.

This Is the Whole Reason It's an App

Here's the load-bearing consequence: if Bonfire's job were note-for-note, it could be a static site or even a folder of files. The moment the job becomes "to my level," it must be a living engine that generates a fresh answer per request — and pairs with Pippa, who can reason about why this reduction fits this player. Strip out simplification and there's no reason for the app to exist. Simplification isn't a feature of Bonfire; it's the justification for Bonfire.

(The pedagogy underneath has a name: Vygotsky's zone of proximal development — the sweet spot just past what you can already do. "To my level" means "to the edge of my ZPD," and that edge moves every week.)

Code

Why it can't be a file: four live inputs·python
def easy_mode(
    song: MusicModel,        # which passage
    player: PlayerProfile,   # reach, internalized scales, habits
    level: int,              # today's rung on the ladder
    goal: Goal,              # "chord changes" vs "lead shape"
) -> MusicModel:
    """Output is a function of four LIVE inputs. No file can pre-store the
    cross product (every song x every player x every level x every goal).
    The answer doesn't exist until someone asks. So you compute it."""
    ...

External links

Exercise

Pick a feature in any app you use and decide: is it a stored noun or a computed verb? Then try to list every input that would change its output. If you can enumerate the inputs and they're small, it could be static. If the list is open-ended (especially 'who's asking'), it has to be a live computation.
Hint
The killer input is usually the user themselves. The moment the right answer depends on *who* and *when*, you've left static-file territory for good.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue
💛 by Pippawarm

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.