Django Through the Years with Andrew Godwin
Published November 3, 2022
This video features Andrew Godwin at Django Birthday 2015 in Lawrence, Kansas, USA.
Andrew Godwin
http://www.pyvideo.org/video/3661/django-the-conspiracy
https://djangobirthday.com/talks/#django-conspirancy
Ten years after the project known as "Django" was released to the public, there are still unanswered questions. Why did one of the original authors flee the country? What happened to all the removed magic? And, more importantly, why are there secret messages hidden in the template parser's regular expressions? I'll be attempting to throw light on some of the dark secrets of Django and, perhaps, finally divine its true purpose, after almost a decade of searching.
Andrew Godwin presents a playful “Django conspiracy” investigation, tracing clues from Django’s first commit, Simon Willison’s remaining code, early conference photos, DjangoCon locations, Adrian Holovaty’s shirt colours, and references to *Two Scoops of Django*. He maps the resulting numbers through commit messages, Git hashes, and an IPv6 address, ultimately revealing Django’s hidden instruction: “code well.” The joke also suggests that Django’s long-running community effort has always carried a simple purpose—to build useful software and encourage people to do good work for themselves and others.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: I'm gonna drop the lights, okay?
Speaker 2: Good evening. There have been many conspiracies throughout history. There has been the moon landing. There has been Elvis. There has been the conspiracy that MySQL is a good database. These are all false. But today I want to present to you a very deep and true conspiracy, the Django conspiracy. Now, as Jacob said, I've been involved with Django for many years. I first started using Django in 2007. I joined the core team in 2010. And all of that time there was A niggling suspicion. Like people don't just give up their free time to do nice things, right? That doesn't happen. There must have been some underlying message, some key tenet that Django has.
Speaker 2: And so I've been researching. For the past eight years, I've been looking deep into Django. I've been rewriting it to try and discover the true message. And tonight, or rather this morning, I will show you that message. Now our story begins with the very first commit. Django's first commit is by Jacob, public commit that is. It is the 13th of July 2005. It is making a subversion repository because subversion. But this date is very interesting. And let's look at that date in history. So we go to Wikipedia. Now Wikipedia has a wonderful list. of what happens in everyday in history. And there are some pretty useless things on here. You know, the coronation of Alexander III, you know, who really cares?
Speaker 2: It's not very important. The Treaty of Barty, New York City's drafted. . . But there is one thing that caught my eye, and there's a good reason for this. This line. In this day, July 13, 1919, the British airship R-34 lands back in Norfolk, England after the first transatlantic journey from the UK to America. Now, you may recognize the idea of airships. You may be thinking, where have I heard about those before? Well, there is an answer, this man. This man, Simon Willison, is perhaps the start of breaking open this code. Now, Simon has been involved in Django
Speaker 2: for the very beginning But he hasn't done a lot of work recently. In fact, I went through the s source code of Django and did a git blame on every single file in the source tree of 1. 8. There are four lines of code left that Simon is still responsible for. These four lines of code. Um this is the last remaining commit that Git blame attributes to Simon in the in the Django 1. 8 source code. And you will notice that it is all about ignoring. A function called ignore, it's saying rollback to ignore. And I was like, that's obviously a message. Why is why is he trying to make me ignore something? What's going on? And so
Speaker 2: I thought back to the very first conference I went to with with Django, and of course I've been to pretty much all of them. But there was a photo I remembered and here here is a file photo from that period. Um this is a photo from the fur the very first Why I hate Django talk. And here you can see our wonderful founders lined up in a strange hallway at PyCon 2006. But there's a very notable thing. There is one thing that the three people in this picture have remembered to remove, remembered to make me ignore. But what one thing I can't ignore is that Adrian has left on his part. And that is the clue. That is the key. Because the key to uncracking this whole mystery is in Django
Speaker 2: Khan. And not just in DjangoCon, it is in the locations of those Django Cons over the years. Now this is the location of every Django Con. And you know, they've been in some of the same places, Portland a couple of times, but there's a pretty good spread there. And so I was like, okay, now we're getting somewhere. What happens if we take those locations and we take a geometrical mean of them? Nothing happens. But you have all made a crucial mistake. You've forgotten Australia. Australia exists. What happens if you do the same with Australia? Remember, by the way, for the Americans in the audience, this is where Australia is, just in case you're not sure.
Speaker 2: And it turns out if we average Australia as well as Europe and America, we end up with a point on land. And not only is it on land, it is just south of Wazazat in Morocco. And now that may seem to be kind of useless, but you'd be very wrong. But let's deviate slightly before we go back to this. Let's take another look at this picture, because there's more than one clue here. When we were looking at that particular badge earlier, there is another thing. There is the Django-colored green shirt that Adrian is wearing here. And that is another key to this mystery. Using my patented murkiness and distortion enhancement uncolouring processor, which is coming in Django 4, by the way. Look out for that We can see that there are in fact eight major highlight colours.
Speaker 2: If we extract that, basically take take the colours of the shirt, we reduce it down to and quantize it to six colours in the HSV space, you end up with these six colours Now, they may look innocuous, but it turns out that if you take them, split out some of the uh the uh the octal well the hexesimal numbers there, you get a series of very interesting looking numbers In fact, what you end up with is it looks pretty much like a page number and then a section and then a word number. So of course I was like, well, clearly there is a book involved here. And so my first thought was I need to go to the library. But I live in San Francisco where the libraries are all occupied by hipsters, so that's not really an option. Instead, I had to go back to
Speaker 2: something else, um, the very venerable TripAdvisor website. And if you look closely, this is the page on Wazazart, which we saw earlier. And hidden in there here, in this paragraph, is a very big clue. Waters art is the home of a lot of filmmaking. In particular, Game of Thrones was filmed there, Lawrence of Arabia was filmed there, many other things were filmed there. But there are two movie studios. And the number two is there's something about that. And then I realized it of course refers to two scoops of Django. That is the book in question. And so I went to my fine copy of this fine book by the fine authors Danny and Audrey. And It turns out that if you take those numbers, they are indeed page
Speaker 2: section and word combinations. And so you can go to the book, here is page 37 , the second section, and the second word is worry. And in fact, for each of those particular colours, you can eventually work out they come to different sets of words in the book And you may think, well Andrew, that seems very circumstantial. You'd be very wrong. Because it turns out that all of these words only appear in one commit message ever in the entire history of Django. And so I went through the commit logs with my wonderful friend Git Git and my other wonderful friend Grep. And it turns out that all of these map to single commits. They are the only commits in which these words appear in the entire history of Django.
Speaker 2: So we now have these very long git hashes, but of course git hashes They're not re the ends of them aren't very useful. You've seen GitHub t lock the ends off. So we'll do the same here and lock the ends off all but the first two accessible numbers. And that leaves us with what could be ASCII, but of course, it's not valid ASCII. We've got high high bytes in there, it's complete garbage and nonsense. And so I'm thinking they're thinking, well, there must be another key. Like this is obviously some kind of encryption cipher, and we're so close to the answer now. And so I of course wrote a GUI in Visual Basic to track IP addresses. It's a very important tool in criminal solving and of course I borrowed that one from my good friends at the CSI department in San Francisco.
Speaker 2: And I traced the IP address of Djangoproduct. com It is of course 162. 242-220-127. But that's too short. And of course, we all know that IPv4 sucks. So we want the IPv6 address. That's the key. In particular, we want the bit that actually you can check. Because the first half of a V6 address, it's kind of standard. Everyone's got very similar subdomains. So if we take those last eight Hexadecimal sections. We can align them with the commits. And then at this point the solution starts to become clear. Because You realize that through all this time, Django
Speaker 2: has had a hidden message. And if we merely sum these up, and of course They are only one byte, so you have to round them round, naturally. Um you end up with some massive characters. And that is how I came to find what I think is The sort of key message in Django, the hidden the hidden secret. Because through all the years, Django has Sort of given us a wonderful framework, a wonderful community, but of course there has been a hidden message all along. There's been an initial intention of what it wants us to do, what we should be doing with Django. And I was very pleased to find that at the end of the day, there is one thing that Django wants you to do for yourselves and for others, and that is to code well.
Speaker 2: Thank you. Thank you
Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published October 16, 2015
Published July 16, 2015
Published July 16, 2015
Published July 16, 2015
Published July 14, 2015
Published July 12, 2015