Our April Fools prank taught us there is more than a kernel of truth to the old joke about borrowing software smarts from Stack Overflow. Kyle Pollard explains how we built the software behind the joke, and Cassidy Williams explains how we built the actual keyboard.
You can check out our deep dive into the copy paste data here. We saw over 40 million copies in the two weeks worth of activity we analyzed.
Kyle Pollard graduated from the University of Northern British Columbia and worked as a computer technician and programmer for the City of Prince George in Canada. You can find him on Github, Twitter, and his website.
There’s lots of info about Cassidy’s various projects at cassidoo.co. You can catch her coding live at @cassidoo, Thursdays at 12:30 PT/2:30 Central/3:30 Eastern.
Our lifeboat badge winner of the week is TJ Crowder, who answered the question: How can I see the source of built-in JavaScript functions?
Kyle Pollard As you grow a lot of it's just understanding from Stack Overflow and then kind of re implementing those concepts on your own in your own code. So not necessarily mindlessly copying, and then, you know, YOLO, let's see what happens, but kind of understanding the post and getting it in there. So, you know, in a sense, like, emotionally, you're still copying from Stack Overflow, but maybe not literally hitting Ctrl C.
[INTRO MUSIC]
Ben Popper Hello, everybody. Welcome to the Stack Overflow Podcast, a place to talk about all things software, programming, technology and life. Hi, I'm Ben Popper, Director of Content here at Stack Overflow. And today I'm joined by two excellent individuals, Cassidy Williams and Kyle Pollard, who helped me and a big team of people to put together our annual Stack Overflow April Fool's gag. Welcome to the show y'all.
BP Yeah, thanks Ben!
Cassidy Williams Thanks for having me.
BP So, I have not personally participated in a full April Fool's joke at Stack Overflow. It's a long running venerable and honorable tradition. Last year, we were getting ready to do ultra dark mode. [Cassidy laughs] And then we went into a pandemic, which is its own form of ultra dark mode. So we said no jokes this year. But people were excited about dark mode. Anyway, luckily, we had a new feature. But this year, we set out to recreate a much beloved Stack Overflow meme, the only keyboard you'll ever need, Stack Overflow copy and paste. And, Kyle, it was your job to build the little modal that popped up when people went to copy. Can you tell us a little bit about sort of like the genesis of this project and how you built it?
KP Yes, I am the one to blame for your blood pressure going up, the heart attacks, the fear that you're losing your job, and you'd have to go into another career path. Yeah. How did the genesis of this, we can go all the way to the start. We did an April Fool's workshop where we hashed out a bunch of different ideas of what we could do for an April Fool's prank. And we came up with the the copy paste paywall as the the winner for the year. So the kind of goal with this is that it would just be a one developer kind of job, something that I can do, I just started a few months ago. So this is kind of my first public project. Yeah, it was a relatively small scope in terms of the technical implementation, just got to track when a copy happened on the website, showing up that notice at the bottom right, that tracks how much your copy budget is left. And showing up that big, that big modal in the center of your screen advertising the best keyboard in the world, the key by Stack Overflow. [Ben laughs]
BPSo yeah, is there anything like that you think is interesting about the sort of the technical implementation here? Like, for people who don't know, what does it take to trigger, you know, the ability to sort of like, know what people when people are accessing that command on our site?
KP Thankfully, just like when you click on a button, it fires an onclick event, there's actually a copy event that fires in your browser every time you copy. So I just got to add an event listener on a copy event. And I got to read all the nitty gritty details of you know, where you've copied on the page. And if it was in a code block or not, and, and get to do some cool analytics with that.
BP And actually fires like 1000s of like, when you're holding CTRL C that you've actually copied, like 100 times or somethimg.
KP Oh, yeah, that was a bug that we had to squash pretty early on. If you, if you were, say copying something, and you you held Ctrl C, and you were thinking on it for a while, it turns out in the background, it would fire hundreds and hundreds of events and ruin our data. So I had to be a little more generous with how often you could copy and paste. If you if you copy the same element twice, we don't reduce your budget, you can you can get extra copies for free. [Kyle laughs]
BP Right, Cassidy as a seasoned developer, how many times a day would you guess people copy something from Stack Overflow?
CW Like in general, or individuals?
BP How many times do you think an individual does it? And then let's try to guess, because now we know, the total number of copies that happened per day?
CW Oh, man, I would guess an individual developer per day, depending on the bugs of the day, I'd say at least two or three times a day.
BP Tell me how many times a day people are copying on Stack Overflow. And roughly how many times that is like compared to the number of times people actually just visit a question.
KP Well, I'm not a data analyst. So I've leaned on smarter people on my team to try to figure this out for me. But you know, when I took a first glance at it, it looked like there was, you know, 10 million views of questions in a day, one in eight of those copied, and then someone looked a little deeper and it turns out that one in four people copy within five minutes of visiting a Stack Overflow question, which is ridiculous. It's mind blowing. Everybody's copying! Nobody's talking about it! [Ben laughs]
BP Yeah, I that it was pretty staggering. Yeah. To realize like how deep the truth runs on that particular joke, but yeah, so there's something you know, there's like 10, 12 million visitors a day and like one to 2 million copies a day, which is really wild. Yeah, I guess even one out of four. Which which brings us I guess to the bigger question of like, to what degree is this useful and saving people time? And just a net good? And to what degree is this lazy and perhaps a little bit risky if you don't do it safely?
CW I think like the whole core of Stack Overflow is that it's, it's helpful. Because you can try to do something yourself. But if you do something yourself, you're kind of reinventing the wheel. If the answer is already out there, if you're already looking it up, and you can get your answer and just move forward. It's a productivity add for sure.
BP I guess. Yeah, especially if you're if you're doing this all the time. I mean, for someone like me who's like, occasionally tried to dabble. Sometimes it feels like I can't just go in and like, get what I need and copy and paste it. And I'm not like really internalizing it or like learning it for the next time. But I think yeah, if especially if this is like your day in, day out job, why reinvent the wheel when like somebody has built the tool already for you? I don't know, Kyle, before you came to Stack Overflow, when you were working as the greatest webmaster in the Great White North, did you, how often would you say you copied from Stack Overflow?
KP You know, I think early in my career, I think copying was a necessity. But I think as as you grow a lot of it's just understanding from Stack Overflow, and then kind of re-implementing those concepts on your own in your own code. So not necessarily mindlessly copying. And then, you know, YOLO, let's see what happens, but kind of understanding the post and, and really get in there. So you know, in a sense, like emotionally, you're still copying from Stack Overflow, but maybe not literally hitting Ctrl C.
BP And then of course, after we posted the prank, and it started happening, there was there was some great threads on Twitter and on Reddit where people were trying to hack their way around the paywall
KP I didn't get that because our prank must have incited a lot of fear. Because I don't actually stop anyone from copying from Stack Overflow. Like you can still copy, we're on the honor system past, you know, your three free copies. But people were like, you know, I've made an ad blocker to remove it. And like there's a don't show button if you really don't want to see it. Like they were making scripts to change the budget. They were, someone suggested taking screenshots of the page and then running it through like an OCR system. So you could like bypass the copy and copy of it. [Kyle laughs] So people people need the copy. They're looking for ways around it.
BP Yeah, I'd like to give an award to the person who created the most complex and time consuming workaround.
KP It's like a Rube Goldberg machine at this point. And so then there there was sort of like a great second half to this. The software was the first part, but hardware was the second part. Cassidy when we first had you on the podcast, we discussed this, but you have a great love of mechanical keyboards and custom keyboards and have quite a collection yourself. So we reached out to you to see if we could actually get this thing made and take some photos. And you connected us with a cool company called Drop. Can you tell us a little about what Drop is? And how you got to know them? I think you worked with them in the past, right?
CW Yeah. So drop is a place where you can basically do they they're called 'group buys'. And so let's just say you want to have a keyboard made or you want some some keyboard part made, a lot of times you need multiple people to buy in on it for it to even be manufactured otherwise, like the manufacturers like this isn't worth it, because it's kind of a smaller community. And so that that's kind of the origin of the website. And I've launched a couple keycap sets on drop and so one is the Scrabble keyboard. And so I got a Hasbro to license me my designs for a Scrabble keyboard that was sold on Drop a few years ago. And currently there's another keycap set on there called Astralla keys where myself and my co-designer she goes by Sailor Mercury, we made Astralla keys and that sold on on Drop as well. So I had like this existing relationship with them. And so when you approached me it was is really a matter of reaching out to them and saying, 'hey, do you want to do this for a prank?' And then from there it was it was a very, very mad rush to get this done by April 1. I'm very happy we made it on time.
BP Yeah, it was cool. He reminded me I worked briefly at DJI which is a drone manufacturer based in Shenzhen, China and we were talking to the folks at Drop, who is a great partner to us he was like 'Okay, I'll you know it's going to be morning in Shenzhen in about three hours. So I'll call the people at the factory see if they can make some space on the line and then we'll you know, pump out a prototype and then they'll ship it here and then I'll ship—' It was just like the speed at which the electronic supply chain can operate is truly staggering.
CW Yeah, it was it was amazing. And so it was truly like I made the the design for the actual sets. I got Pantone colors from the Stack Overflow team and got those over to Kanal and then he 3d modeled the case so that way he could get that CNC and anodized aluminum and yeah, it was it was a mad rush. He was able to get it all manufactured and shipped out and then I got a couple samples and we decided between those to get the official colors than it was pictures and videos and more after that.
BP Yes, that's right. You're our true influencer helping us do our unboxing video for our online influencer marketing. I was just remembering. So I used to go to this annual robotics competition that DJ would hold where they'd have these little sort of like Robo cars battle in a big arena. And the competition was like a, like a round robin tournament. So you played like multiple rounds. And the local teams always had a big advantage. Because if some a part broke, or if they like, realized something was wrong with the design, they could literally get a prototype, print up and like, go get something made overnight at the factory and like, have it the next day, you know, and like, fix up their machine or do whatever they needed to do. Whereas like, all the other teams were just sort of like trying to hot glue things together after each round. But yeah, I saw a few people commenting on Twitter, that we should actually, or they'd actually pay for this. Like, what would it take to go from making a mock up, Cassidy, which is what we have now to like, an actual functioning keyboard?
CW Yeah, and so now now that we have the mock up, at least that part is done, the the hardest part is going to be the electronics underneath. And so that involves getting some firmware, probably QMK, it's an open source firmware that allows you to reprogram it. So let's just say people wanted more than just Ctrl Copy or Control C, Control V, they could turn it to 123, they could turn it to any other numbers pretty easily. But anyway, adding firmware to a PCB, and then just doing kind of electronics testing. And so that might, that might take probably a short as maybe three weeks, and that process is definitely longer, but then maybe as long as a month and a half. And then yeah, it's getting it in there, making sure everything works and shipping it and so typically, there's what's called a, an MOQ, a minimum order quantity. And so when when you want to get something made, the more you buy, the cheaper it is, so there's probably going to be a minimum order quantity where if we sell 200 then it's going to cost $50. But if we sell 500, then it'll be $30. If we sell 1000, then it could be 25 and that kind of stuff. And so the more that's bought, the cheaper it gets. And that's typically how it works.
BP You heard them listeners, it's time to unite to bring the power of Stack Overflow's enormous audience to bear. Well, we'll make the keyboard we'll sell it mo will donate the proceeds to charity. I'm sure this is, I'm sure we can make it happen. Email me.
CW Yes!
BP Email me podcast@stackoverflow.com. You can get in early. You can pre-order directly through the podcast, I will only take us very small commission. [Cassidy & Kyle laugh] Yeah, some people were suggesting that if it's a three key Stack Overflow keyboard, then we could we could add a few other things on there. Mark as duplicate, downvote. No, I'm just kidding. Don't be sour! [Kyle laughs] Alright, great. Well, thank you so much to both of you. Yeah, for making this all come together. It was a wonderful April Fool's joke. And I think there's a lot more to come. Yeah, I think well, maybe we'll try to follow up with a post about the data and give people a sense of how often this is actually happening. So we're not none of us are alone. We're all copying in spirit. [Kyle & Cassidy laugh]
[OUTRO MUSIC]
BP Alright, let's see here. It is that time of the episode, I will shout out a lifeboat badge winner, 'how to see the source of built in JavaScript functions' awarded to TJ Crowder. Thanks, TJ for helping out, answering a question that had a negative score getting it up to a score of 20 or more. Win yourself a lifeboat.
KP I feel like that's a scary day when you're trying to read internals of JavaScript functions, like what you what are you doing? [Kyle laughs]
BP 'Would I need to understand the language that an engine such as B is written in and read through that, or is there a simpler solution?' Hmm, you need to find the source code of the relevant projects. Yeah, you got to go deep on this one. Alright. I'm Ben Popper, Director of Content here at Stack Overflow. You can always find me on Twitter @BenPopper. You can always email us podcast@stackoverflow.com. Cassidy, Kyle, you want to just say who you are and where people can find you if you want to be found?
BP Sure. I'm, I'm Kyle Pollard. I'm a developer on the public platform team. You can find me @kylejrp on Twitter, or you can go to my website KyleJrp.com. I'd love to hear your feedback on the prank and how I scared you. Feel free to follow me and chat with me on Twitter.
CW I'm Cassidy Williams. I'm a principal developer experience engineer at Netlify and you can find me @cassidoo on Twitter, on GitHub, on all the things. Cassidoo is C A S S I D O O.