1 00:00:00,000 --> 00:00:08,630 2 00:00:08,630 --> 00:00:11,450 DAVID MALAN: Hello, world, this is CS50Live, and boy, do we 3 00:00:11,450 --> 00:00:13,680 have an amazing episode for you today. 4 00:00:13,680 --> 00:00:17,400 First, an inside look at how Dropbox works, then a close 5 00:00:17,400 --> 00:00:20,230 look at tiny hamsters eating tiny burritos, 6 00:00:20,230 --> 00:00:24,870 and lastly, a behind-the-scenes look at CS50's new film, Persistence. 7 00:00:24,870 --> 00:00:27,410 >> But first, Dropbox.com, where we recently 8 00:00:27,410 --> 00:00:30,770 traveled in San Francisco, California, to meet with CS50's former head 9 00:00:30,770 --> 00:00:34,390 teaching fellow, Thomas Carriero who gave us a tour of Dropbox 10 00:00:34,390 --> 00:00:37,919 and exactly what it's like to work and, daresay, live there. 11 00:00:37,919 --> 00:00:39,960 Now we sat down not only with Thomas while there, 12 00:00:39,960 --> 00:00:43,400 but also with CS50's former head teaching fellow Alex Allain 13 00:00:43,400 --> 00:00:46,330 to talk about the underlying workings of Dropbox.com 14 00:00:46,330 --> 00:00:48,190 and it's distributed architecture. 15 00:00:48,190 --> 00:00:49,571 Let's take a look. 16 00:00:49,571 --> 00:00:52,570 THOMAS CARRIERO: I'm Thomas Carreiro I'm a software engineer at Dropbox. 17 00:00:52,570 --> 00:00:54,150 ALEX ALLAIN: I'm Alex Allain. 18 00:00:54,150 --> 00:00:57,110 I am an engineer here at Dropbox. 19 00:00:57,110 --> 00:01:00,250 >> THOMAS CARRIERO: Yeah, so I was actually the first head CF for CS50 20 00:01:00,250 --> 00:01:02,600 when David Malan took over the class. 21 00:01:02,600 --> 00:01:05,930 I had already been teaching CS50 for two semesters 22 00:01:05,930 --> 00:01:09,610 with Mike Smith, who was there the prior professor there. 23 00:01:09,610 --> 00:01:12,410 >> ALEX ALLAIN: So I actually didn't take CS50, 24 00:01:12,410 --> 00:01:17,960 but I did TF it twice, once as a regular TF and then in my senior year, 25 00:01:17,960 --> 00:01:21,431 I was actually Head TF of CS50, which was a lot of fun. 26 00:01:21,431 --> 00:01:23,430 THOMAS CARRIERO: So when David reached out to me 27 00:01:23,430 --> 00:01:27,740 about setting up Dropbox in the CS50 appliance, 28 00:01:27,740 --> 00:01:30,890 I was really excited, because we actually have a Linux client. 29 00:01:30,890 --> 00:01:35,180 Most of our users use either Windows or the Macintosh clients, 30 00:01:35,180 --> 00:01:38,830 but the Linux, Macintosh, and Windows clients are all, actually, 31 00:01:38,830 --> 00:01:39,880 very similar. 32 00:01:39,880 --> 00:01:44,510 So what we did is we pre-installed the Dropbox Linux client in the CS50 33 00:01:44,510 --> 00:01:48,920 appliance, and it runs just like all of our other Linux users. 34 00:01:48,920 --> 00:01:51,130 >> ALEX ALLAIN: So the way Dropbox works is it 35 00:01:51,130 --> 00:01:57,510 runs as the client on many different operating systems and devices. 36 00:01:57,510 --> 00:02:00,464 The Drobox desktop client is one of the most well known, 37 00:02:00,464 --> 00:02:01,630 one of the most interesting. 38 00:02:01,630 --> 00:02:04,430 >> THOMAS CARRIERO: So Dropbox basically takes all of the files 39 00:02:04,430 --> 00:02:06,350 that you put in the folder, and it chunks 40 00:02:06,350 --> 00:02:08,380 those files into four megabyte chunks. 41 00:02:08,380 --> 00:02:12,170 So we'll take a 100 megabyte PDF file, and we'll 42 00:02:12,170 --> 00:02:14,990 chunk it into 25 four megabyte chunks. 43 00:02:14,990 --> 00:02:19,760 Those chunks are then encrypted, and then we send them our block servers. 44 00:02:19,760 --> 00:02:24,870 >> ALEX ALLAIN: The block servers are the storage for the blocks themselves, 45 00:02:24,870 --> 00:02:28,490 and so each block is stored in the block server with the data 46 00:02:28,490 --> 00:02:32,490 and a SHA-256 hash of that blocks. 47 00:02:32,490 --> 00:02:37,190 That's a very basic encryption primitive that summarizes, in some sense, 48 00:02:37,190 --> 00:02:42,050 the data in a very a unique way that's unique to that data. 49 00:02:42,050 --> 00:02:44,430 You could upload the whole file all at once, 50 00:02:44,430 --> 00:02:48,820 but it turns out if you do that with really large files, 51 00:02:48,820 --> 00:02:51,734 they take a really long time to upload, and if you have a failure, 52 00:02:51,734 --> 00:02:53,650 you're out of luck and you have to restart it. 53 00:02:53,650 --> 00:02:56,700 What we then do is we tell another server in our system, what 54 00:02:56,700 --> 00:03:00,555 we call the meta server, the metadata server, hey, this is a file 55 00:03:00,555 --> 00:03:03,110 and it's composed of the following list of blocks. 56 00:03:03,110 --> 00:03:05,972 And we pass up the hashes to identify those blocks 57 00:03:05,972 --> 00:03:07,680 rather than re uploading the whole block. 58 00:03:07,680 --> 00:03:09,805 The meta server then checks with the block servers, 59 00:03:09,805 --> 00:03:12,950 makes sure the blocks are there-- if the are, perfect, everything is good. 60 00:03:12,950 --> 00:03:15,720 >> THOMAS CARRIERO: When we want to, basically, download the file 61 00:03:15,720 --> 00:03:19,370 from the internet, let's say, we'll ask meta server first, 62 00:03:19,370 --> 00:03:22,010 hey, can you tell me about where this file is located, 63 00:03:22,010 --> 00:03:25,430 and meta server will say, oh, well, this file is actually 25 four megabyte 64 00:03:25,430 --> 00:03:26,804 chunks, and here they are. 65 00:03:26,804 --> 00:03:28,970 And then we'll go to block server and we'll actually 66 00:03:28,970 --> 00:03:32,534 download each of those chunks, and then we'll reconstruct the file from there, 67 00:03:32,534 --> 00:03:33,950 and then we'll start the download. 68 00:03:33,950 --> 00:03:36,490 Yeah, so Dropbox deals with scale, basically, 69 00:03:36,490 --> 00:03:38,592 by very, very aggressive sharding. 70 00:03:38,592 --> 00:03:40,300 ALEX ALLAIN: So sharding is when you take 71 00:03:40,300 --> 00:03:46,420 all of the users in your startup or your company, 72 00:03:46,420 --> 00:03:48,989 and maybe they used to be on one database, 73 00:03:48,989 --> 00:03:51,530 and that works great until you hit a certain number of users, 74 00:03:51,530 --> 00:03:53,488 and really what you want to do is find some way 75 00:03:53,488 --> 00:03:56,300 to split those across two databases or maybe more than two-- 76 00:03:56,300 --> 00:04:00,110 ideally, enough that you can have every user in the world. 77 00:04:00,110 --> 00:04:02,240 So when you shard, what you do is you find 78 00:04:02,240 --> 00:04:05,740 some way of deciding which database to go 79 00:04:05,740 --> 00:04:09,150 to that doesn't require hitting a central directory, 80 00:04:09,150 --> 00:04:12,590 or maybe it's a very quick, cheap look-up in that central directory. 81 00:04:12,590 --> 00:04:16,129 >> THOMAS CARRIERO: We never have everything stored in one database, 82 00:04:16,129 --> 00:04:17,920 because that's almost never going to scale. 83 00:04:17,920 --> 00:04:22,770 So instead, what we do is we'll take all of that information, all of the files 84 00:04:22,770 --> 00:04:24,590 are all of the metadata and we'll shard it 85 00:04:24,590 --> 00:04:27,740 across hundreds or thousands of logical databases. 86 00:04:27,740 --> 00:04:31,780 That means that when we have a request for a user's information, 87 00:04:31,780 --> 00:04:35,560 we'll first say, hey, which database is this user's information stored in, 88 00:04:35,560 --> 00:04:39,820 and then we'll basically use that decision to go find that database, 89 00:04:39,820 --> 00:04:42,830 and that's where we'll load all the files or all the metadata 90 00:04:42,830 --> 00:04:44,010 about the files. 91 00:04:44,010 --> 00:04:46,750 So we use a lot of sharding, but sharding's not always enough. 92 00:04:46,750 --> 00:04:49,280 You actually need to cache a lot of the common requests, 93 00:04:49,280 --> 00:04:52,940 because even though database queries can be expensive. 94 00:04:52,940 --> 00:04:55,620 So we also do progressive caching strategies 95 00:04:55,620 --> 00:04:59,210 to make sure that the most common requests are quite easy to compute, 96 00:04:59,210 --> 00:05:03,560 and basically, that makes it a lot faster and makes it work at scale. 97 00:05:03,560 --> 00:05:06,400 So that's, at a very high level, kind of how Dropbox works. 98 00:05:06,400 --> 00:05:08,190 >> ALEX ALLAIN: My name's Alex Allain. 99 00:05:08,190 --> 00:05:09,731 >> THOMAS CARRIERO: I'm Thomas Carreiro. 100 00:05:09,731 --> 00:05:11,330 ALEX ALLAIN: And this is CS50. 101 00:05:11,330 --> 00:05:14,455 >> DAVID MALAN: Now if you've ever wondered where this quote on CS50's website 102 00:05:14,455 --> 00:05:17,150 comes from, it's actually Alex who is the original author. 103 00:05:17,150 --> 00:05:20,160 Now, speaking of Dropbox, I recently received this email from them 104 00:05:20,160 --> 00:05:23,199 in my inbox-- Hi, David, you may notice that some of your shared links 105 00:05:23,199 --> 00:05:25,240 aren't working, and we wanted to reach out to you 106 00:05:25,240 --> 00:05:27,237 personally to let you know why. 107 00:05:27,237 --> 00:05:28,320 Well what's a shared link? 108 00:05:28,320 --> 00:05:31,580 Well, if you've used Dropbox beyond simply saving your source code inside 109 00:05:31,580 --> 00:05:33,288 of the appliance, you might know that you 110 00:05:33,288 --> 00:05:36,100 can create shared links by typically right clicking on a file 111 00:05:36,100 --> 00:05:37,875 and copying the url to your clipboard. 112 00:05:37,875 --> 00:05:40,750 That shared link might look a little something like this, but instead 113 00:05:40,750 --> 00:05:43,208 of the word secret, there's actually something more cryptic 114 00:05:43,208 --> 00:05:45,990 there, like a sequence of random letters and numbers. 115 00:05:45,990 --> 00:05:49,910 The idea being that I can now email or Gchat this kind of url to a friend, 116 00:05:49,910 --> 00:05:55,180 and he or she could access CS50.txt and download it onto his or her computer. 117 00:05:55,180 --> 00:05:59,220 And only by knowing that url, or with super, super low probability, guessing 118 00:05:59,220 --> 00:06:02,720 that url, could someone else actually access the file. 119 00:06:02,720 --> 00:06:05,180 >> Unfortunately a company known as Intralinks 120 00:06:05,180 --> 00:06:07,370 recently posted on their CollaboristaBlog 121 00:06:07,370 --> 00:06:10,770 that there's actually a couple of threats to this particular workflow. 122 00:06:10,770 --> 00:06:13,680 It turns out that if you accidentally make a mistake, as I, frankly, 123 00:06:13,680 --> 00:06:17,140 have done in the past, and paste a url like a Dropbox shared link, 124 00:06:17,140 --> 00:06:20,330 into not your browser's address bar, but as pictured here, 125 00:06:20,330 --> 00:06:22,980 your search bar, that url, of course, is going 126 00:06:22,980 --> 00:06:25,380 to be submitted to a search engine like Google. 127 00:06:25,380 --> 00:06:28,450 Of course, Google is not going to necessarily recognize that shared link, 128 00:06:28,450 --> 00:06:30,366 and so you're going to get more generic search 129 00:06:30,366 --> 00:06:32,680 results like a link to Dropbox.com itself, 130 00:06:32,680 --> 00:06:36,320 and in this case, an advertisement, and in fact, advertisements, potentially, 131 00:06:36,320 --> 00:06:38,055 for competitors of Dropbox. 132 00:06:38,055 --> 00:06:40,180 In fact, that's how Intralinks noticed this-- they, 133 00:06:40,180 --> 00:06:44,540 too, were running an AdSense campaign alongside of keywords 134 00:06:44,540 --> 00:06:46,320 that Dropbox themselves might use. 135 00:06:46,320 --> 00:06:48,790 And so if we zoom in on the bottom results here, 136 00:06:48,790 --> 00:06:52,070 you'll see that Inralinks has this link to their own service. 137 00:06:52,070 --> 00:06:55,130 Now one of the features of Google and other search engines' 138 00:06:55,130 --> 00:06:59,860 advertising campaigns is that when a user like me clicks on this link, now, 139 00:06:59,860 --> 00:07:04,160 I am going to be disclosing the url that I typed into Google in order 140 00:07:04,160 --> 00:07:05,760 to find these search results. 141 00:07:05,760 --> 00:07:07,760 The idea being that companies would like to know 142 00:07:07,760 --> 00:07:09,590 how people are finding their website. 143 00:07:09,590 --> 00:07:12,030 Of course, if I found this page of results 144 00:07:12,030 --> 00:07:15,180 by pasting an otherwise secret url into Google, 145 00:07:15,180 --> 00:07:18,010 I've now, effectively, told Intralinks and their web 146 00:07:18,010 --> 00:07:22,500 logs exactly what secret url I was visiting, thereby disclosing, 147 00:07:22,500 --> 00:07:25,360 potentially, the contents CS50.txt. 148 00:07:25,360 --> 00:07:27,110 Now, there's another threat all together-- 149 00:07:27,110 --> 00:07:29,901 you may know, too, from Dropbox shared links that you can typically 150 00:07:29,901 --> 00:07:33,300 open them inside of your own browser and preview them inside 151 00:07:33,300 --> 00:07:34,500 of a frame like this. 152 00:07:34,500 --> 00:07:36,900 But if that preview contains a hyperlink, 153 00:07:36,900 --> 00:07:40,960 as pictured here to Example.com, and you or a user click 154 00:07:40,960 --> 00:07:44,550 that hyperlink, thereby opening a new tab or window with that page's 155 00:07:44,550 --> 00:07:49,350 url, what you've also just told the web server, by nature of how HTTP works, 156 00:07:49,350 --> 00:07:53,180 is the HTTP refer address from whence you came. 157 00:07:53,180 --> 00:07:55,900 In other words, you informed the destination website 158 00:07:55,900 --> 00:07:59,817 that you were previously at this supposedly secret url. 159 00:07:59,817 --> 00:08:02,525 Now, what Intralinks discovered by looking through their own logs 160 00:08:02,525 --> 00:08:05,510 is that they found quite a bit of information that was surely 161 00:08:05,510 --> 00:08:07,840 meant to be secret-- for instance, someone's mortgage 162 00:08:07,840 --> 00:08:12,312 application, someone's tax return, and bunches of more documents, as well. 163 00:08:12,312 --> 00:08:14,895 Now, if you'd like to learn more about this particular threat, 164 00:08:14,895 --> 00:08:17,810 head to Drop box's blog at this url here, 165 00:08:17,810 --> 00:08:21,400 and the reality is that you can't really defend against a threat in which people 166 00:08:21,400 --> 00:08:25,600 like me accidentally paste what should be secret urls in to search engines. 167 00:08:25,600 --> 00:08:28,210 You and I are simply going to have to be a bit more careful. 168 00:08:28,210 --> 00:08:31,110 But they have been working on redressing the other issue whereby 169 00:08:31,110 --> 00:08:35,530 links that are embedded in a Dropbox preview were disclosing the refer url. 170 00:08:35,530 --> 00:08:37,980 But head to that url for more details. 171 00:08:37,980 --> 00:08:43,220 >> But now, as promised, a closer look at tiny hamsters eating tiny burritos. 172 00:08:43,220 --> 00:08:46,085 >> [MUSIC PLAYING] 173 00:08:46,085 --> 00:09:43,627 174 00:09:43,627 --> 00:09:45,960 DAVID MALAN: Now CS50's team recently had an opportunity 175 00:09:45,960 --> 00:09:48,540 to participate in a 48-hour film project, 176 00:09:48,540 --> 00:09:50,260 an international competition during which 177 00:09:50,260 --> 00:09:53,720 teams had, indeed, 48 hours alone to make a film. 178 00:09:53,720 --> 00:09:55,980 The catch is that you only find out what film you 179 00:09:55,980 --> 00:09:58,710 need to make at the very start of those 48 hours. 180 00:09:58,710 --> 00:10:01,540 In particular, on a recent Friday evening at 7:00 pm, 181 00:10:01,540 --> 00:10:05,439 we at CS50 learned that we'd be making one, a silent film, two, 182 00:10:05,439 --> 00:10:07,480 that the film needed to feature a character named 183 00:10:07,480 --> 00:10:10,660 Jeremiah Jones, a teacher, three, that the film needed 184 00:10:10,660 --> 00:10:13,240 to feature a diary, this one here, and four, 185 00:10:13,240 --> 00:10:16,570 that we needed to somehow include the line it is what it is even 186 00:10:16,570 --> 00:10:18,790 though, of course, we were making a silent film. 187 00:10:18,790 --> 00:10:22,880 >> Now, 26 members of CS50's team participated in this 48-hour film 188 00:10:22,880 --> 00:10:28,150 project, among them Colton, Dan, Padraig, and Shelley 189 00:10:28,150 --> 00:10:31,780 Westover, whom you may recall from such films as this one here. 190 00:10:31,780 --> 00:10:35,080 Now, also involved, of course, was CS50's own Ramon Galvan. 191 00:10:35,080 --> 00:10:36,205 Ramon, welcome to the show. 192 00:10:36,205 --> 00:10:37,788 RAMON GALVAN: Thank you for having me. 193 00:10:37,788 --> 00:10:39,610 DAVID MALAN: And CS50's own Daven Farnham. 194 00:10:39,610 --> 00:10:41,850 Now, Ramon, what was your role in the film? 195 00:10:41,850 --> 00:10:41,878 >> [? 196 00:10:41,878 --> 00:10:43,670 RAMON GALVAN: Flight code ?] director with Dan, actually. 197 00:10:43,670 --> 00:10:45,044 >> DAVID MALAN: And Daven, yourself? 198 00:10:45,044 --> 00:10:48,260 DAVEN FARNHAM: I was the star, so I basically made the project. 199 00:10:48,260 --> 00:10:48,970 I saved the film. 200 00:10:48,970 --> 00:10:49,750 >> DAVID MALAN: You saved the film. 201 00:10:49,750 --> 00:10:50,530 >> DAVEN FARNHAM: I did. 202 00:10:50,530 --> 00:10:52,405 >> DAVID MALAN: Now, you say this, but I believe 203 00:10:52,405 --> 00:10:54,460 we have your screen test for this film. 204 00:10:54,460 --> 00:10:56,980 If we could roll this clip here. 205 00:10:56,980 --> 00:10:59,550 >> DAVEN FARNHAM: My name's Daven Farnham, and this is CS50. 206 00:10:59,550 --> 00:11:02,930 207 00:11:02,930 --> 00:11:03,895 I wanted to say CSS. 208 00:11:03,895 --> 00:11:06,870 209 00:11:06,870 --> 00:11:07,996 This is CSS. 210 00:11:07,996 --> 00:11:10,540 211 00:11:10,540 --> 00:11:12,906 >> DAVID MALAN: Now this was your first film? 212 00:11:12,906 --> 00:11:14,350 >> DAVEN FARNHAM: Uh, no, maybe. 213 00:11:14,350 --> 00:11:17,669 >> DAVID MALAN: No, well, at least this time around it was a silent film. 214 00:11:17,669 --> 00:11:18,460 DAVEN FARNHAM: Yes. 215 00:11:18,460 --> 00:11:21,020 DAVID MALAN: So at 7:00 pm, we found out those required ingredients, 216 00:11:21,020 --> 00:11:22,811 and then we immediately dived in as a group 217 00:11:22,811 --> 00:11:25,200 to figure out what movie we were actually going to make. 218 00:11:25,200 --> 00:11:26,910 Do you want to walk us through what that night was like? 219 00:11:26,910 --> 00:11:29,312 >> DAVEN FARNHAM: So basically we got the idea at 7:00, 220 00:11:29,312 --> 00:11:31,520 we basically started to brainstorm, so we all kind of 221 00:11:31,520 --> 00:11:34,061 gathered around a whiteboard and started brainstorming ideas, 222 00:11:34,061 --> 00:11:36,720 and then by 9:00, we tried to throw it off to writers, 223 00:11:36,720 --> 00:11:38,340 and the writers took it from there. 224 00:11:38,340 --> 00:11:40,756 >> DAVID MALAN: And meanwhile, Dan and Shelley and I actually 225 00:11:40,756 --> 00:11:43,122 headed to Target, of course, our favorite nearby store, 226 00:11:43,122 --> 00:11:46,330 to pick up all the props for the movie we had decided on, which at that point 227 00:11:46,330 --> 00:11:46,830 was-- 228 00:11:46,830 --> 00:11:49,232 DAVEN FARNHAM: We had decided on a parity adventure film. 229 00:11:49,232 --> 00:11:51,690 DAVID MALAN: Whic was going to be quite like Indiana Jones. 230 00:11:51,690 --> 00:11:55,340 DAVEN FARNHAM: Yes, so we needed a bull whips and we needed a fedora and stuff. 231 00:11:55,340 --> 00:11:57,360 DAVID MALAN: And a very ornate piece of jewelry 232 00:11:57,360 --> 00:11:59,570 that he would then find at the end of the episode. 233 00:11:59,570 --> 00:12:03,040 Of course, we get back at midnight or so from Target 234 00:12:03,040 --> 00:12:05,662 and realize, nope, that's not the movie we're making-- psych. 235 00:12:05,662 --> 00:12:07,370 DAVEN FARNHAM: Completely different film. 236 00:12:07,370 --> 00:12:10,082 RAMON GALVAN: We had a film noir for a couple of hours, 237 00:12:10,082 --> 00:12:11,790 then we had a romantic comedy at the end. 238 00:12:11,790 --> 00:12:14,920 >> DAVID MALAN: So by 4:00 a.m., we had a romantic comedy, and around 5:00 a.m., 239 00:12:14,920 --> 00:12:16,760 you and Dan , the other director, showed up. 240 00:12:16,760 --> 00:12:19,240 >> RAMON GALVAN: Yeah, so we got together and we kind of planned out 241 00:12:19,240 --> 00:12:21,700 where we wold shoot, what's scenes we would shoot first, 242 00:12:21,700 --> 00:12:24,750 and then around 7:00 or 8:00 a.m., we actually went out and started shooting. 243 00:12:24,750 --> 00:12:25,780 >> DAVID MALAN: Well, if you can stick around, 244 00:12:25,780 --> 00:12:28,840 we'd love to do some behind-the-scenes looks at how the film was made, 245 00:12:28,840 --> 00:12:32,160 but I think first, shall we give folks the world premiere 246 00:12:32,160 --> 00:12:35,578 of CS50's film, Persistence. 247 00:12:35,578 --> 00:12:38,572 >> [MUSIC PLAYING] 248 00:12:38,572 --> 00:17:24,369 249 00:17:24,369 --> 00:17:29,310 >> DAVID MALAN: Guys, I mean-- so let's start from the top. 250 00:17:29,310 --> 00:17:31,450 So the very first scene we all shot as a group 251 00:17:31,450 --> 00:17:34,250 that morning took place around 8:00 a.m, and we were actually here, 252 00:17:34,250 --> 00:17:38,220 Jefferson Hall, which is actually one of the physics lecture halls on campus. 253 00:17:38,220 --> 00:17:42,319 And what was the goal with this scene? 254 00:17:42,319 --> 00:17:44,610 RAMON GALVAN: So we were here to start the movie, Daven 255 00:17:44,610 --> 00:17:47,870 as a teacher, a teaching fellow, or a teaching assistant, something 256 00:17:47,870 --> 00:17:51,810 like that, and he was really upset that he sees this couple walking out 257 00:17:51,810 --> 00:17:52,650 and he wants that. 258 00:17:52,650 --> 00:17:55,067 He wants to be in a relationship, he just doesn't have it. 259 00:17:55,067 --> 00:17:57,691 DAVID MALAN: And then the next scene, we transition to actually 260 00:17:57,691 --> 00:17:58,570 wasn't shot in order. 261 00:17:58,570 --> 00:17:59,820 In fact, here, you are-- 262 00:17:59,820 --> 00:18:00,890 >> DAVEN FARNHAM: So here, actually, we shot 263 00:18:00,890 --> 00:18:03,069 this this-- this was one of the last scenes we shot, 264 00:18:03,069 --> 00:18:05,610 but this actually shows up at the very beginning of the film. 265 00:18:05,610 --> 00:18:07,920 And so in this scene, it's a montage, and so what I'm doing 266 00:18:07,920 --> 00:18:09,760 is I'm putting on cologne, I'm combing my hair. 267 00:18:09,760 --> 00:18:11,093 >> DAVID MALAN: Do you use cologne? 268 00:18:11,093 --> 00:18:13,330 DAVEN FARNHAM: Uh, Ramon's cologne, lots of cologne. 269 00:18:13,330 --> 00:18:14,310 >> DAVID MALAN: And whose shirt? 270 00:18:14,310 --> 00:18:15,450 >> DAVEN FARNHAM: Uh, Ramon's shirt. 271 00:18:15,450 --> 00:18:18,120 >> DAVID MALAN: So that was more than one take, and the shirt by the end 272 00:18:18,120 --> 00:18:18,760 was pretty-- 273 00:18:18,760 --> 00:18:21,093 >> DAVEN FARNHAM: Yes, I think we had to take three or four 274 00:18:21,093 --> 00:18:23,630 takes, so each take was three squirts, so there 275 00:18:23,630 --> 00:18:25,470 were about 12 squirts of cologne. 276 00:18:25,470 --> 00:18:27,820 So I smelled like that cologne for the rest of the day. 277 00:18:27,820 --> 00:18:28,800 >> DAVID MALAN: Well, at least, very quickly. 278 00:18:28,800 --> 00:18:31,450 We transitioned outside, and, in fact, if you look closely, 279 00:18:31,450 --> 00:18:33,920 this is actually CS50's own Lauren Caraballo. 280 00:18:33,920 --> 00:18:36,000 But what were you thinking with this scene? 281 00:18:36,000 --> 00:18:39,083 >> DAVEN FARNHAM: Right, so in this scene, we're trying to get her attention. 282 00:18:39,083 --> 00:18:41,240 So I'm walking by her, I'm peacocking, of course. 283 00:18:41,240 --> 00:18:41,860 >> DAVID MALAN: Peacocking? 284 00:18:41,860 --> 00:18:43,340 >> DAVEN FARNHAM: Oh, you don't know? 285 00:18:43,340 --> 00:18:44,160 >> RAMON GALVAN: Uh, should I? 286 00:18:44,160 --> 00:18:45,909 >> DAVEN FARNHAM: Yeah, of course, of course. 287 00:18:45,909 --> 00:18:49,555 So normal walking, of course, is just normal walking. 288 00:18:49,555 --> 00:18:51,180 DAVID MALAN: So this is normal walking? 289 00:18:51,180 --> 00:18:52,721 DAVEN FARNHAM: That's normal walking. 290 00:18:52,721 --> 00:18:54,992 Peacocking, throw a little hips in there. 291 00:18:54,992 --> 00:18:56,700 RAMON GALVAN: It's really all right here. 292 00:18:56,700 --> 00:18:58,158 DAVEN FARNHAM: It's all right here. 293 00:18:58,158 --> 00:19:00,270 It's from this qua-- It's all in the hips. 294 00:19:00,270 --> 00:19:06,160 And then at the very end, you have to pop and lock. 295 00:19:06,160 --> 00:19:08,017 It's key to the maneuver-- it's key. 296 00:19:08,017 --> 00:19:09,100 DAVID MALAN: Pop and lock. 297 00:19:09,100 --> 00:19:12,202 All right, well, you actually did a lot of physical comedy in the film. 298 00:19:12,202 --> 00:19:15,410 In fact, one of the next scenes was here at Lamont Library, outside the door. 299 00:19:15,410 --> 00:19:16,800 >> DAVEN FARNHAM: Yes, they're right here, so I'm actually 300 00:19:16,800 --> 00:19:19,150 trying to-- I think it's a pull door and I'm pushing, 301 00:19:19,150 --> 00:19:21,358 and as that scene progresses, I'm pushing and pushing 302 00:19:21,358 --> 00:19:22,350 ever more aggressively. 303 00:19:22,350 --> 00:19:25,500 And I think at the end, someone actually knocks me out of the way. 304 00:19:25,500 --> 00:19:27,840 >> DAVID MALAN: Yeah, and in fact, we didn't notice the-- 305 00:19:27,840 --> 00:19:28,850 until the editing phase. 306 00:19:28,850 --> 00:19:31,324 >> RAMON GALVAN: Yeah, so, if we zoom into this shot, and Dan, 307 00:19:31,324 --> 00:19:32,490 can we enhance a little bit? 308 00:19:32,490 --> 00:19:33,960 OK, perfect. 309 00:19:33,960 --> 00:19:38,747 So you got to see me crouched down about to pop up and knock Daven in the face 310 00:19:38,747 --> 00:19:39,330 with the door. 311 00:19:39,330 --> 00:19:41,940 DAVID MALAN: That we fun found footage just hours before we 312 00:19:41,940 --> 00:19:43,730 had to ship the films for the deadline. 313 00:19:43,730 --> 00:19:47,017 All right, well thank you both so much for joining and for starring in such-- 314 00:19:47,017 --> 00:19:48,350 DAVEN FARNHAM: Oh, no thank you. 315 00:19:48,350 --> 00:19:48,700 RAMON GALVAN: Thank you. 316 00:19:48,700 --> 00:19:49,908 DAVID MALAN: --a moving film. 317 00:19:49,908 --> 00:19:51,490 Well that is it for CS50Live. 318 00:19:51,490 --> 00:19:54,360 Thanks so much to our friends at Dropbox, thanks so much to everyone 319 00:19:54,360 --> 00:19:57,870 behind the camera, CS50's own Ramon Galvan and Daven Farnham. 320 00:19:57,870 --> 00:20:01,660 This was CS50 and this was our favorite scene 321 00:20:01,660 --> 00:20:03,279 that didn't it make it into the film. 322 00:20:03,279 --> 00:20:05,320 DIRECTOR 1: Are we gonna get the car in the road? 323 00:20:05,320 --> 00:20:06,778 DIRECTOR 2: It's coming, that's OK. 324 00:20:06,778 --> 00:20:10,437 325 00:20:10,437 --> 00:20:11,020 [HORN HONKING] 326 00:20:11,020 --> 00:20:13,866 ACTRESS: Whoa. 327 00:20:13,866 --> 00:20:16,094 Oh, god. 328 00:20:16,094 --> 00:20:44,416