aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_posts/2021-03-21-coins.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/_posts/2021-03-21-coins.md b/_posts/2021-03-21-coins.md
new file mode 100644
index 0000000..f29937c
--- /dev/null
+++ b/_posts/2021-03-21-coins.md
@@ -0,0 +1,38 @@
+---
+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.