Beeminder Forum

Found a little easter egg


When you look at the source for the 404-site, you’ll find a comment about the copyright year.



It’s a nerdy family this one.

1 Like


But… how did you find it? Let me guess: You had a typo in a curl command and it spilled out that comment? :smiley:

Half the source code is tracking code :confused: And there’s a seemingly complete list of all my goals in there together with their due date despite these goals not actually showing on the website. I… I don’t even want to know. No.

1 Like


:slight_smile: Ha! The version in the actual Ruby source makes slightly more sense since the html source macro-expands the macros being talked about! Fun philosophical case study for the use-mention distinction perhaps.

Excerpt from the Ruby sourcecode

<div class=“copyright”>
&copy; Beeminder 2011&ndash;2019
Danny and Bee and Andy argue about automatically setting the copyright year to <’%Y’)%>:

D: boo to automatically filling in copyright! that’s how we prove we’re still at the wheel :slight_smile:
A: it only proves that if it’s publicly visible how the copyright is being created
A: like if beeminder were open source. otherwise no one can tell the difference
D: actually i think when the copyright changes at a random time in january, that’s a good signal that you’re at the wheel…
D: if it changes at the stroke of midnight then obviously you cheated and could all be dead or on a beach somewhere
B: but everyone cheats
B: so it can only be an indicator in our absence
D: boo to cheaters
bystander: it’s the best way to score GitHub points too: open 2017 -> 2018 pull requests
A: but who is going around checking exactly when copyrights change??
A: bots, that’s who
A: okay nevermind I’m on board with this as a precaution to confuse future overlords
B: anyhow, it also makes us look stupid. like we don’t know how to use string format, and causes people to write us emails like “Umm. so your copyright is out of date. I don’t know what language you guys use, but in php it’s really easy you…”
A: maybe that’s a positive, identify users who can write code
A: “oh, thanks! here’s another nerd sniping problem. can you rewrite beebrain?”
D: clearly the optimal solution is to set it to year(now-random(5,10)*86400) :slight_smile:
D: (simulates a fairly attentive human at the wheel updating the copyright 5-10 days after new years)
D: i can’t tell what fraction serious i am about doing it manually. i guess if, counterfactually, we ever weren’t at the wheel it would be lies and that feels icky
D: like there’s something inherently dishonest about literally being like “copyright… uh, whatever year it is when you’re reading this!”
B: ok, so part of the checklist for shuttering beeminder is “update footer copyright date”
B: you clearly didn’t understand my argument for why we’re doing this, because you seem to remain unconvinced. go read my email again and then i’m putting you in timeout so you can think about what you’ve done.
D: [pastes this in the html source so we can show it to people in <%=(*365.25).strftime(’%Y’)%> who see “<’%Y’)%>” and think we don’t know how to insert a dynamic date]
PS: Bee’s argument in the email with the user who called us out:
I think Danny had some convoluted reasoning for why we shouldn’t just make that programmatic, like “it’s a signal that the site is still active”, but I think that’s kind of incorrect – anyone writing a website can make the copyright date be programmatically generated, so it doesn’t actually serve as any indicator of currency, it can only serve as a anti-activity signal by going out of date.

I’m not sure if @bee or @apb (or the bystander, who was probably @adamwolf) ended up convinced but I’m pretty sure I’m right here. @bee’s right that there’s no useful signal in the actual world but the counterfactual world matters. Counterfactual lying can count as lying, even when the counterfactual remains (f)actually unfactual! I guess this is another fun philosophical conundrum. We better get @mary in here!

Wait, I think I can translate this into normal-human: By signing the website with a year of “{automatic insertion of whatever the current year is}” we have a non-zero chance of lying. Because if we all got hit by a bus tomorrow then in 2020 the website would purport to be signed/copyrighted in 2020, implying we worked on it, made changes, added content in 2020, and that would be false. False/misleading statements aren’t allowed, not even a tiny risk of them!



Basically. I just sent a curl to the baseurl of the api to see what would happen… as it turns out the baseurl ( returns a 404… should this be considered a bug, beefolk? Or… something… else? :thinking:

To the point made, especially the meta point about truth™: I would turn the argument inside out and say that lying is actually impossible. It might happen that in an environment where the local reality articulated by an actor is not yet distributed enough, if somebody can’t see the truth in that articulation. You therefore make reality, not simply express it (or not).



You really like to write those “little” musings, don’t you? :stuck_out_tongue: A lot of that reads like internal dialogue that however stayed in my head and never made it onto any webpage.
Though in all fairness, your musing is in fact little. At least compared to the facebook monstrosity you referenced in there. That thing takes the biscuit (hi @shanaqui!) . Speaking of web pages:

And by the way, you can avoid the convoluted disjunctive question by making it multiple choice. To use the old-fashioned example of asking someone if they’re gay:
[ ] I’m either not gay or I am and don’t want to come out of the closet
[ ] Guilty as charged

Isn’t it odd that people so often call this multiple choice whilst it is in fact single choice? :wink:

<Michael from Vsauce voice> or is it? </Michael from Vsauce voice>
What if someone asked:

Are you gay or not?

As mathematicians and computer scientists have to agree: You can perfectly and truthfully answer with “Yes” no matter whether you are actually gay or not. Because: Yes. You are gay or not gay.

OK Enough Captain Obvious for now. It is surprising to me how often this confuses people, though. Like a lot. “But you can’t just answer yes to that! That wasn’t a yes or no question!” “Yes I can.” “But that doesn’t make any sense! It’s illogical” “It’s actually perfectly logical”. Well you get the idea :wink:



I don’t understand this yet.

That’s funny, our son noticed that for the question “are you a boy or a girl?” In his case the answer was “yes” but we know people who could answer “no”.

Anyway, your examples are more about technical truth, which, sure, is the best kind, but if there’s no way for anyone to actually be misled in any way then I’m not actually hung up about that. My examples involve (at least tiny bits of) actual deception and I’m fairly serious in my hangups about those!

PS: I’d say “multiple choice” is technically kosher as an abbreviation for “a choice among multiple, enumerated options”. Or perhaps technically enlettered. If we want to be all technical. :slight_smile:

1 Like


Getting them started early, awesome! :slight_smile:

I hear ya! Your writeup about the “No comment” reply put me back to a very dramatic evening just a few months back where I talked to person E who told me things about herself and how miserable she was but also to not tell her supposedly close friend A about it. Then after we hang up, A called me and amongst other things asked me how E was (E hasn’t talked to A in a while). And there was absolutely no good way for me out of there. And that A person is exactly one who will not under any circumstance accept a “No comment”. Drama much.

1 Like

It just means establishing a reality means work.

In order for anybody to make a statement, lots of things need to be in place. And even more things need to be in place in order for someone else to be understood. To proof something has a somewhat weighty reality, to materialize something and bind it to other things, that’ll take a lot of work. Many words, sentences, “translations” maybe even material articulations (printouts, posters, articles, videos, etc. etc.) all in order to make a statement truthful, “factual” or at the very least not contrafactual. There is a certain relativity here, too: To judge the truth of something takes a certain immersion in a world in which the articulation carries already some weight. So the observing subject will have to do the work of making a statement accessible to oneself. But this already will change the context of the articulation, which means that the closer we get to a place in which we can find something plausible, we also risk losing enough distance to judge it impartially. When we fast forward along this line of reasoning we’ll end up with an understanding that it is perspective that makes “lies” possible, or not. Or rather it’s the movement towards the local reality of the things (to examine and understand it within its context) on the one hand (or side) and the compositional work of weaving entities together to make up that local reality on the other.

If the local reality is very thin or contextually improper, then it will be very hard to make it accessible. If the observer won’t move, then it will take a carefully crafted and very conveniently placed reality to make it plausible even from afar. In none of these cases it’s impossible to at least gain some kind of appreciation for the “grain of truth” expressed in an articulation of either situation.

I said grain of truth here, because I think it’s a helpful technique of understanding lies/deception and all that stuff as truthful utterances (possibly against their intent). This is why I say it’s actually impossible to lie. An articulation will always only be a possible articulation relating to a situation. We could not articulate them otherwise. Therefore even a lie is a possible and therefore truthful statement - in a certain context, observed from a certain perspective. The rest of the statement is not false though - it’s noise.

Societal structures norm our world (not only our view of the world) and outside of sophisticated arguments, wanting to access the grain of truth in everything is very inefficient (actually impossible). Because we have normed and standardized the discourse in such a way, we are able to filter out most of what we deem noise by labeling it: “This is a contrafactual statement, because…” “This is a lie…” “The intent was to deceive…”. It has been a big cultural achievement to filter out noise in this way, because it allows for order of complex structures. Things that are not true, can be discarded. People who utter falsehoods or act wrong, are to be punished, corrected. This way of acting is backed up by a moral ethos of bettering the society and a quest for a purification of the rational world view, a nice self-feeding process of progress. An old idea. It’s the crystallization process of modern civilization.

But modern civilization is not marching towards becoming an immovable object with no momentum, without amazing amounts of work that go into this process every moment to make it so. The distribution of its reality itself takes billions of people every day.



So what we do at work (We did have a similar discussion about the copyright year generated into our documentation):

We have a unit test that actually takes a look at the documentation and checks that the copyright year matches the current year. All unit tests run when the CI is triggered. Which means: Once per year on some early January day one unknowing developer gets an angry BUILD FAILED email from our CI system after having pushed their commit then wonders what the hell they messed up. Then checking the CI… going “oooooooooooooooh thaaaaat thing” and then fixes the copyright year manually. It gets everyone eventually. This time it was me again. :roll_eyes:

And judging from your awesome eternalized trialogue (kudos for putting that in there) this could be the compromise between cheating and having it put in there automatically and not doing it and then getting stupid comments and mails about it. Like this one. You’re welcome :wink:



Dang, nice work, this seems like the Objectively Correct solution!

1 Like