--- title: Cactus's Obvious, Intuitive Naming Scheme --- It's well-established that naming things is one of the two hardest problems in computer science (along with cache invalidation and off-by-one errors). So I solved naming. If you've got a project that needs a name, here you go. The ingredients are simple: 1. Your name. 2. The word "obvious". 3. A good adjective. 4. The kind of thing you've made. The canonical example, from which this scheme was reverse-engineered, is [Tom's Obvious, Minimal Language](https://en.wikipedia.org/wiki/TOML). People who haven't used TOML might think that "obvious" is functioning here to describe the language, but various attributes of TOML ([non-ASCII keys requiring quotes](https://toml.io/en/v1.0.0#keys), [substantial distinctions between single- and double-quoted strings](https://toml.io/en/v1.0.0#string), [array-of-tables syntax](https://toml.io/en/v1.0.0#array-of-tables)) indicate that "obvious" is merely part of the name template rather than an actual descriptor. As an example, we can construct a name for this approach to assigning names to things. My name is *cactus* (for some value of "name", and for that matter "my"), it would be good if this was *intuitive*, and this is a *naming scheme*. As such, the name this process assigns to itself is "Cactus's Obvious, Intuitive Naming Scheme", which abbreviates nicely to "COINS". We can also construct COINS names for other things: - [Linus's Obvious, Free Kernel](https://en.wikipedia.org/wiki/Linux_kernel) - [Bjarne's Obvious, Powerful Language](https://en.wikipedia.org/wiki/C%2B%2B) - [Donald's Obvious, Expressive Language](https://en.wikipedia.org/wiki/TeX) - [Leslie's Obvious, Usable Macros](https://en.wikipedia.org/wiki/LaTeX) - [Jack's Obvious, Nightmarish Hellsite](https://en.wikipedia.org/wiki/Twitter) - [Bram's Obvious, Terse Editor](https://en.wikipedia.org/wiki/Vim_(text_editor)) - [Sonja's Obvious, Minimal Language](https://en.wikipedia.org/wiki/Toki_Pona) - [Kurt's Obvious, Profound Theorem](https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems) - [[Miku]'s Obvious, Engaging Film](https://en.wikipedia.org/wiki/Primer_(film)) - [Jimmy's Obvious, Collective Encyclopedia](https://en.wikipedia.org/wiki/Wikipedia) - [Alan's Obvious, Revolutionary Mistake](https://en.wikipedia.org/wiki/Computer) Despite the fact that Tom's Obvious, Minimal Language inspired this naming scheme, it actually suffers greatly from having used it. If I ever get my hands on a time machine, I will go back and tell Tom to call it "My INI-Like Format" instead.