-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathbrownmnms.html
177 lines (165 loc) · 9.68 KB
/
brownmnms.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<!DOCTYPE html>
<html>
<head>
<link rel="canonical" href="https://hardmath123.github.io/brownmnms.html"/>
<link rel="stylesheet" type="text/css" href="/static/base.css"/>
<title>Brown M&Ms - Comfortably Numbered</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="alternate" type="application/rss+xml" title="Comfortably Numbered" href="/feed.xml" />
<!--
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script>
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$']]}
});
</script>
-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-Um5gpz1odJg5Z4HAmzPtgZKdTBHZdw8S29IecapCSB31ligYPhHQZMIlWLYQGVoc" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js" integrity="sha384-YNHdsYkH6gMx9y3mRkmcJ2mFUjTd0qNQQvY9VYZgQd7DcN7env35GzlmFaZ23JGp" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js" integrity="sha384-vZTG03m+2yp6N6BNi5iM4rW4oIwk5DfcNdFfxkk9ZWpDriOkXX8voJBFrAO7MpVl" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
// customised options
// • auto-render specific keys, e.g.:
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
{left: '\\begin{align}', right: '\\end{align}', display: true},
{left: '\\(', right: '\\)', display: false},
{left: '\\[', right: '\\]', display: true}
],
// • rendering keys, e.g.:
throwOnError : false
});
});
</script>
</head>
<body>
<header id="header">
<script src="static/main.js"></script>
<div>
<a href="/"><span class="left-word">Comfortably</span> <span class="right-word">Numbered</span></a>
</div>
</header>
<article id="postcontent" class="centered">
<section>
<h1>Brown M&Ms</h1>
<center><em><p>A request.</p>
</em></center>
<h4>Saturday, September 6, 2014 · 4 min read</h4>
<p>David finally convinced me why we use MLA format. This is a story that involves
Van Halen, and the existence of a clause in their contract that demanded a bowl
full of M&Ms, but no brown ones. I’ve included the story from the horse’s
mouth, i.e. lead singer David Lee Roth (not the same David). All this is quoted
from <a href="http://www.snopes.com/music/artists/vanhalen.asp">Snopes</a>.</p>
<blockquote>
<p>Van Halen was the first band to take huge productions into tertiary,
third-level markets. We’d pull up with nine eighteen-wheeler trucks, full of
gear, where the standard was three trucks, max. And there were many, many
technical errors — whether it was the girders couldn’t support the weight, or
the flooring would sink in, or the doors weren’t big enough to move the gear
through. </p>
<p>The contract rider read like a version of the Chinese Yellow Pages because
there was so much equipment, and so many human beings to make it function. So
just as a little test, in the technical aspect of the rider, it would say
“Article 148: There will be fifteen amperage voltage sockets at twenty-foot
spaces, evenly, providing nineteen amperes…” This kind of thing. And
article number 126, in the middle of nowhere, was: “There will be no brown
M&M’s in the backstage area, upon pain of forfeiture of the show, with full
compensation.” </p>
<p>So, when I would walk backstage, if I saw a brown M&M in that bowl… well,
line-check the entire production. Guaranteed you’re going to arrive at a
technical error. They didn’t read the contract. Guaranteed you’d run into a
problem. Sometimes it would threaten to just destroy the whole show.
Something like, literally, life-threatening.</p>
<p>The folks in Pueblo, Colorado, at the university, took the contract rather
kinda casual. They had one of these new rubberized bouncy basketball
floorings in their arena. They hadn’t read the contract, and weren’t sure,
really, about the weight of this production; this thing weighed like the
business end of a 747. </p>
<p>I came backstage. I found some brown M&M’s, I went into full Shakespearean
“What is this before me?” … you know, with the skull in one hand … and
promptly trashed the dressing room. Dumped the buffet, kicked a hole in the
door, twelve thousand dollars’ worth of fun. </p>
<p>The staging sank through their floor. They didn’t bother to look at the
weight requirements or anything, and this sank through their new flooring and
did eighty thousand dollars’ worth of damage to the arena floor. The whole
thing had to be replaced. It came out in the press that I discovered brown
M&M’s and did eighty-five thousand dollars’ worth of damage to the backstage
area. </p>
<p>Well, who am I to get in the way of a good rumor?</p>
</blockquote>
<p><img src="static/brownmnm.gif" alt="The clause"></p>
<p>Well, (the real) David figured that conforming to MLA’s restrictions was your
way of proclaiming a lack of brown M&Ms. If you got MLA wrong, then who knows
what else you’ve messed up?</p>
<p>To be honest, I don’t care much for MLA, because whenever I’m using it, it’s
because I’m doing another one of those English assignments where I feel I’m
being graded on my word count. However, since David’s lecture, I’ve seen brown
M&Ms pop up everywhere in my life. Most notably, in the programming world.</p>
<p>There are ‘best practices’ everywhere. Almost all of them, of course, are
justifiable. Don’t use GOTO because nobody will be able to follow your code.
Don’t use eval because it’s a welcome mat for crackers. Don’t indent with tabs,
they render differently for everyone. Anyone sharing their first Python project
knows how many opinions everyone has. It’s almost discouraging, because you’re
trying to implement something for fun and people are yelling at you because you
didn’t cache intermediate results in a binary search tree, and so the whole
thing’s too slow to be practical, and you should just give up now and spend
your time one something more useful, like learning <em>[insert language here]</em>.</p>
<p>Don’t listen to those people.</p>
<p>Learning programming, or any other human endeavor, is all about implementation.
You need to run into problems before you can appreciate the solutions we have
devised.</p>
<p>For instance, I learned optics by writing a raytracer on my own, in seventh
grade (side story: I didn’t know what vectors were, and later discovered that I
had invented the cross product on my own, but mirror-imaged). In the beginning,
it used to take a few hours to render a 100-by-100 image. As I found various
optimizations, I incorporated them, and it got faster.</p>
<p>Would I have learned as much if the first time I showed it to someone, they
told me to go implement k-D trees before they’ll give real constructive
criticism? What kept me interested was implementing shiny ideas like Phong
illumination (pun intended), and then optimizing them so that I could fit more
tests within my lifetime. Anyone can find plenty of things wrong with my
implementation. I was storing images as a JSON array of pixel values since I
didn’t grok PNG.</p>
<p>Everyone has their own Brown M&Ms. We’re presented so much information on a
daily basis, that we need Brown M&Ms to decide what matters and what doesn’t. I
will probably put off an email whose subject line is misspelled. Or close a
webpage with a pop-up. Or disregard pull requests that mess up whitespace. It’s
<em>ok</em> to have Brown M&Ms—and it’s ok for them to be as obscure as you want—but
it’s not ok to foist them upon others.</p>
<p>The next time you see a newbie modify the <code>Array</code> prototype directly, <em>please</em>
don’t yell at them. Take a deep breath and let it go. Someday, they will run
into a namespace conflict, and that will be far more educational than your
rant. It’s a favor.</p>
</section>
<div id="comment-breaker">◊ ◊ ◊</div>
</article>
<footer id="footer">
<div>
<ul>
<li><a href="https://github.com/kach">
Github</a></li>
<li><a href="feed.xml">
Subscribe (RSS feed)</a></li>
<li><a href="https://twitter.com/hardmath123">
Twitter</a></li>
<li><a href="https://creativecommons.org/licenses/by-nc/3.0/deed.en_US">
CC BY-NC 3.0</a></li>
</ul>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46120535-1', 'hardmath123.github.io');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
</footer>
</body>
</html>