DAVID MALAN: Hei, verden, dette er CS50Live, og gutten, gjør vi har en fantastisk episode for deg i dag. Først, et innblikk i hvordan Dropbox fungerer, deretter en tett se på små hamstere spise små burritos, og til slutt, en bak kulissene-titt på CS50 nye film, Persistence. Men først, Dropbox.com, hvor vi nylig reiste i San Francisco, California, å møte med CS50 sin tidligere sjef undervisning kar, Thomas Carriero som ga oss en omvisning i Dropbox og nøyaktig hva det er som å arbeide, og så være, leve der. Nå satte vi ned ikke bare med Thomas mens det, men også med CS50 tidligere hode undervisning stipendiat Alex Allain å snakke om den underliggende arbeidet i Dropbox.com og det er distribuert arkitektur. La oss ta en titt. THOMAS Carriero: Jeg er Thomas Carreiro Jeg er en programvareingeniør hos Dropbox. ALEX ALLAIN: Jeg er Alex Allain. Jeg er en ingeniør her på Dropbox. THOMAS Carriero: Ja, så jeg var faktisk den første lederen CF for CS50 da David Malan overtok klassen. Jeg hadde allerede vært undervisning CS50 for to semestre med Mike Smith, som var der tidligere professor der. ALEX ALLAIN: Så jeg faktisk ikke ta CS50, men jeg gjorde TF den to ganger, en gang som en vanlig TF og deretter i mitt siste år, Jeg var faktisk Leder TF av CS50, som var mye moro. THOMAS Carriero: Så når David nådde ut til meg om å sette opp Dropbox i CS50 apparatet, Jeg var veldig spent, fordi vi har faktisk en Linux-klient. De fleste av våre brukere bruker enten Windows eller Macintosh-klienter, men Linux, Macintosh, og Windows-klienter er alt, faktisk, svært lik. Så det vi gjorde er vi forhåndsinstallert Dropbox Linux-klienten i CS50 apparatet, og det går akkurat som alle våre andre Linux-brukere. ALEX ALLAIN: Så måte Dropbox fungerer er det kjører som klienten på mange forskjellige operativsystemer og enheter. Den Drobox desktop klient er en av de mest kjente, en av de mest interessante. THOMAS Carriero: Så Dropbox utgangspunktet tar alle filene som du putter i den mappe, og den biter disse filene inn i fire megabyte biter. Så vi tar en 100 megabyte PDF-fil, og vi vil blings det inn 25 firemegabyte biter. De biter blir så kryptert, og Da sender vi dem vår blokk servere. ALEX ALLAIN: Blokken servere er lagring for blokkene selv, og slik at hver blokk er lagret i blokken server med dataene og en SHA-256 hash av at blokkene. Det er en helt grunnleggende kryptering primitive som oppsummerer, i en viss forstand, dataene i en meget unik måte som er unik for disse dataene. Du kan laste opp hele filen på en gang, men det viser seg hvis du gjør at med virkelig store filer, de tar veldig lang tid å laste opp, og hvis du har en fiasko, du er ute av lykken og du må starte den. Det vi da gjør er vi fortelle en annen server i systemet vårt, hva vi kaller meta server, metadata server, hei, dette er en fil og det er sammensatt av følgende liste over blokker. Og vi passerer opp hashes å identifisere disse blokkene snarere enn re opplasting hele blokken. Meta server så sjekker med blokk servere, gjør at blokkene er der - hvis den er perfekt, alt er bra. THOMAS Carriero: Når vi ønsker å, i utgangspunktet, laste ned filen fra internett, la oss si, vi vil spørre meta serveren først, hei, kan du fortelle meg om hvor denne filen er plassert, og meta-serveren vil si, oh, vel, denne filen er faktisk 25 firemegabyte biter, og her er de. Og så skal vi gå til blokk server og vi vil faktisk laste ned hver av de biter, og deretter vi vil rekonstruere filen derfra, og så får vi starte nedlastingen. Ja, så Dropbox avtaler med skala, i utgangspunktet, av svært, svært aggressiv sharding. ALEX ALLAIN: Så sharding er når du tar alle brukerne i oppstart eller din bedrift, og kanskje de brukes til å være på en database, og som fungerer bra til du treffer et visst antall brukere, og egentlig hva du vil å gjøre er å finne en måte å splitte de over to databaser eller kanskje mer enn to - ideelt sett, nok til at du kan har hver bruker i verden. Så når du glasskår, hva du gjør er at du finner noen måte å bestemme hvilken database for å gå I tillegg krever treffer en sentral katalog, eller kanskje det er en veldig rask, billig Oppslag i den sentrale katalogen. THOMAS Carriero: Vi har aldri alt som er lagret i en database, fordi det er nesten aldri kommer til å skalere. Så i stedet, hva vi gjør er at vi tar alt av denne informasjonen, alle filene er alle av metadata og vi vil glasskår det på tvers av hundrevis eller tusenvis logiske databaser. Det betyr at når vi har en be om en brukers informasjon, Vi vil først si, hei, hvilken database er denne brukerens informasjon som er lagret i, og så får vi i utgangspunktet bruke det Beslutningen om å gå finne den databasen, og det er der vi vil laste alle filene eller alle metadata om filene. Så vi bruker mye sharding, men sharding er ikke alltid nok. Du faktisk trenger å cache en Mange av de vanligste forespørsler, fordi selv om database spørsmål kan være dyrt. Så vi også gjøre progressive caching strategier å sørge for at den vanligste forespørsler er ganske lett å beregne, og i utgangspunktet, som gjør det mye raskere og gjør det fungerer i stor skala. Så er det, på et meget høyt nivå, slags hvordan Dropbox fungerer. ALEX ALLAIN: Jeg heter Alex Allain. THOMAS Carriero: Jeg er Thomas Carreiro. ALEX ALLAIN: Og dette er CS50. DAVID MALAN: Nå hvis du noen gang har lurt på hvor dette sitatet på CS50 hjemmeside kommer fra, det er faktisk Alex som er den opprinnelige forfatteren. Nå snakker om Dropbox, jeg nylig mottatt denne e-posten fra dem i innboksen min - Hei, David, kan du legge merke til at noen av de delte lenker ikke fungerer, og vi ønsket å nå ut til deg personlig for å fortelle deg hvorfor. Vel hva er en delt link? Vel, hvis du har brukt Dropbox utover bare lagre kildekoden inne av apparatet, vil du kanskje vite at du kan opprette delte lenker ved typisk høyreklikke på en fil og kopiere url til utklippstavlen. Som delte koblingen kan se litt noe sånt som dette, men i stedet av ordet hemmelig, det er faktisk noe mer kryptisk der, som en sekvens av tilfeldige bokstaver og tall. Tanken er at jeg kan nå e eller Gchat denne typen url til en venn, og han eller hun kunne få tilgang CS50.txt og laste den ned på hans eller hennes datamaskin. Og bare ved å vite at url, eller med super, super lav sannsynlighet, gjetter at url, kunne noen andre faktisk tilgang til filen. Dessverre er det et selskap kjent som Intralinks nylig lagt ut på deres CollaboristaBlog at det er faktisk et par trusler mot denne spesielle arbeidsflyten. Det viser seg at hvis du ved et uhell gjør en feil, som jeg, ærlig, har gjort i det siste, og lime en url som en Dropbox delt link, inn ikke nettleserens adresse bar, men som avbildet her, søket bar, som url, selvfølgelig, kommer å bli sendt til en søkemotor som Google. Selvfølgelig, er Google ikke kommer til å nødvendigvis erkjenner at delt link, og så kommer du til å få mer generisk søk resultater som en link å Dropbox.com seg selv, og i dette tilfellet, en reklame, og faktisk, reklame, potensielt, for konkurrenter av Dropbox. Faktisk, det er hvordan Intralinks lagt merke til dette - de, også, kjørte en AdSense kampanje sammen av søkeord som Dropbox selv kan bruke. Og så hvis vi zoome inn på bunn resultatene her, vil du se at Inralinks har linken i sin egen tjeneste. Nå er en av funksjonene i Google og andre søkemotorer ' reklamekampanjer er at når en bruker som meg klikker på denne linken, nå, Jeg kommer til å bli å avsløre url at jeg skrev inn i google for å finne disse søkeresultatene. Tanken er at selskapene ønsker å vite hvordan folk finner deres hjemmeside. Selvfølgelig, hvis jeg fant denne siden med resultater ved å lime en ellers hemmelig url inn i Google, Jeg har nå, effektivt, fortalte Intralinks og deres web logger nøyaktig hva hemmelig url jeg var på besøk, og dermed avsløre, potensielt, innholdet CS50.txt. Nå, det er en annen trussel alle sammen - du kanskje vet, også, fra Dropbox delte koblinger som du kan vanligvis åpne dem inne i din egen nettleser og forhåndsvise dem inne av en ramme som dette. Men hvis det forhåndsvisning inneholder en hyperkobling, som avbildet her til Example.com, og du eller en bruker klikker som hyperkobling, og dermed åpne en ny fane eller et vindu med at sidens url, hva du har også nettopp fortalt nettet server, etter arten av hvordan HTTP fungerer, er HTTP se adressen hvorfra du kom. Med andre ord, du informert destinasjonen hjemmeside som du tidligere var på Dette angivelig hemmelig url. Nå, hva Intralinks oppdaget ved å se gjennom sine egne logger er at de fant ganske mye av informasjon som var sikkert ment å være hemmelig - for eksempel noens boliglån søknad, noens selvangivelse, og bunter av flere dokumenter, så vel. Nå, hvis du har lyst til å lære mer om denne trusselen, hodet til Drop boksens blogg på denne nettadressen her, og realiteten er at du kan egentlig ikke forsvare seg mot en trussel som gjør folk som meg tilfeldigvis lime hva skal være hemmelige webadresser på søkemotorer. Du og jeg er rett og slett kommer til å må være litt mer forsiktig. Men de har jobbet med redressing andre problemet der koblinger som er innebygd i en Dropbox forhåndsvisning ble avsløre henvise url. Men hodet til at url for flere detaljer. Men nå, som lovet, en nærmere titt på små hamstere spise små burritos. [Musikk spilles] DAVID MALAN: Nå CS50 team nylig hadde en mulighet å delta i en 48-timers filmprosjekt, en internasjonal konkurranse der Lagene hadde faktisk 48 timer alene for å gjøre en film. Fangsten er at du bare finne ut hva film du må sørge for at den meget start av disse 48 timer. Spesielt på en nylig Fredag ​​kveld kl 19:00, vi på CS50 lært at vi ville være å lage en, en stumfilm, to, at filmen måtte har en karakter som heter Jeremia Jones, en lærer, tre, at filmen trengs å har en dagbok, denne her, og fire, at vi trengte å liksom omfatte linjen det er hva det er engang skjønt naturligvis vi var å lage en stumfilm. Nå, 26 medlemmer av CS50 team deltok i denne 48-timers film prosjektet, blant dem Colton, Dan, Padraig, og Shelley Westover, som du kanskje husker fra slike filmer som dette her. Nå er også involvert er selvfølgelig var CS50 egen Ramon Galvan. Ramon, velkommen til showet. RAMON GALVAN: Takk for at dere har meg. DAVID Malan: Og CS50 er eier Daven Farnham. Nå, Ramon, hva var din rolle i filmen? [? RAMON GALVAN:? Flight code] direktør med Dan, faktisk. DAVID MALAN: Og Daven, selv? Daven FARNHAM: Jeg var stjernen, så jeg i utgangspunktet gjort prosjektet. Jeg reddet filmen. DAVID MALAN: Du reddet filmen. Daven FARNHAM: Jeg gjorde. DAVID MALAN: Nå, du si dette, men jeg tror vi har din skjerm test for denne filmen. Hvis vi kunne rulle dette klippet her. Daven FARNHAM: Jeg heter Daven Farnham, og dette er CS50. Jeg ønsket å si CSS. Dette er CSS. DAVID MALAN: Nå er dette var din første film? Daven FARNHAM: Eh, nei, kanskje. DAVID MALAN: Nei, vel, i hvert fall dette gangen det var en stumfilm. Daven FARNHAM: Ja. DAVID MALAN: Så på 19:00, fant vi ut de nødvendige ingredienser, og da vi umiddelbart kastet seg som en gruppe å finne ut hvilken film vi var faktisk kommer til å gjøre. Ønsker du å lede oss gjennom hva den kvelden var som? Daven FARNHAM: Så i utgangspunktet vi fikk ideen til 07:00, vi i utgangspunktet begynte å brainstorm, så vi alle slags samlet rundt en tavle og begynte brainstorming ideer, og deretter ved 09:00, prøvde vi å kaste den ut til forfattere, og forfatterne tok det derfra. DAVID MALAN: Og i mellomtiden, Dan og Shelley og jeg faktisk ledet til Target, selvfølgelig, vår favoritt butikk i nærheten, å plukke opp alle de rekvisitter for filmen Vi hadde bestemt seg på, som på det tidspunktet var - Daven FARNHAM: Vi hadde bestemt oss på en paritet eventyrfilm. DAVID MALAN: Whic skulle være helt som Indiana Jones. Daven FARNHAM: Ja, så vi trengte en bull pisker og vi trengte en fedora og sånt. DAVID MALAN: Og en veldig utsmykkede smykke at han da ville finne på slutten av episoden. Selvfølgelig, vi får tilbake på midnatt eller så fra Target og innse, nope, det er ikke filmen vi gjør - psych. Daven FARNHAM: Fullstendig annen film. RAMON GALVAN: Vi hadde en film Noir for et par timer, da vi hadde en romantisk komedie på slutten. DAVID MALAN: Så ved 4:00, hadde vi en romantisk komedie, og rundt 05:00, du og Dan, den andre direktør, dukket opp. RAMON GALVAN: Yeah, så vi fikk sammen og vi slags planlagt ut hvor vi wold shoot, hva er scener vi ville skyte først, og deretter rundt 07:00 eller 08:00, vi faktisk gikk ut og begynte å skyte. DAVID MALAN: Vel, hvis du kan feste rundt, vi vil gjerne gjøre noen behind-the-scenes ser på hvordan filmen ble laget, men jeg tror første, skal vi gi folk den verdenspremiere av CS50 film, Persistence. [Musikk spilles] DAVID MALAN: Gutter, jeg mener - så la oss starte fra toppen. Så den aller første scene vi alle skutt som en gruppe den morgenen fant sted rundt 08:00 a.m, og vi var faktisk her, Jefferson Hall, som faktisk er en av fysikken forelesningssaler på campus. Og hva var målet med denne scenen? RAMON GALVAN: Så var vi her å starte filmen, Daven som lærer, et lærer stipendiat, eller en lærerassistent, noe sånn, og han var veldig opprørt at han ser dette paret vandre ut og han vil ha det. Han ønsker å være i et forhold, han bare ikke ha det. DAVID MALAN: Og så den neste scene, vi overgangen til faktisk ble ikke skutt i orden. Faktisk, her er du - Daven FARNHAM: Så her, faktisk, skjøt vi dette dette - dette var en av de siste scenene vi skutt, men dette faktisk dukker opp på begynnelsen av filmen. Og så i denne scenen, er det en montasje, og så hva jeg gjør er jeg setter på cologne, Jeg grer håret mitt. DAVID MALAN: Bruker du cologne? Daven FARNHAM: Uh, Ramons cologne, masse cologne. DAVID MALAN: Og hvis skjorte? Daven FARNHAM: Uh, Ramon skjorte. DAVID MALAN: Så det var mer enn ett take, og skjorte fra slutten var pen - Daven FARNHAM: Ja, tror jeg vi måtte ta tre eller fire tar, slik at hver tar var tre spruter, så det var ca 12 squirts av cologne. Så jeg luktet sånn cologne for resten av dagen. DAVID MALAN: Vel, på minst, veldig raskt. Vi overført utenfor, og, faktisk, hvis du ser nøye, dette er faktisk CS50 sin egen Lauren Caraballo. Men hva var du tenker med denne scenen? Daven FARNHAM: Høyre, så i denne scenen, vi prøver å få hennes oppmerksomhet. Så jeg går forbi henne, Jeg er peacocking, selvfølgelig. DAVID MALAN: Peacocking? Daven FARNHAM: Å, du vet ikke? RAMON GALVAN: Uh, bør jeg? Daven FARNHAM: Yeah, selvfølgelig, selvfølgelig. Så normal gange naturligvis er bare vanlig gange. DAVID MALAN: Så dette er normal gange? Daven FARNHAM: Det er normal gange. Peacocking, kaste en små hofter i det. RAMON GALVAN: Det er egentlig alt riktig her. Daven FARNHAM: Det er greit her. Det er fra denne qua - Det er alt i hoftene. Og så helt til slutt, du må pop og låse. Det er nøkkelen til manøver - det er nøkkelen. DAVID MALAN: Pop og lås. Ok, vel, du faktisk gjorde en mye fysisk komedie i filmen. Faktisk er en av de neste scener var her på Lamont Library, utenfor døren. Daven FARNHAM: Ja, de er akkurat her, så jeg er faktisk prøver å - Jeg tror det er en trekke døren og jeg presser, og som den scenen utvikler seg, Jeg presser og presser stadig mer aggressivt. Og jeg tror på slutten, noen faktisk slår meg ut av veien. DAVID MALAN: Ja, og i Faktisk fikk vi ikke se den - inntil redigeringsfasen. RAMON GALVAN: Ja, så, hvis vi zoome inn dette bildet, og Dan, kan vi forbedre litt? OK, perfekt. Så du fikk se meg på huk om å dukke opp og banke Daven i ansiktet med døren. DAVID MALAN: At vi fun funnet opptakene bare timer før vi måtte sende filmene til fristen. Greit, vel takke dere begge så mye for å bli med og for hovedrollen i en slik - Daven FARNHAM: Å, nei takk. RAMON GALVAN: Takk. DAVID MALAN: - en film i bevegelse. Vel det er det for CS50Live. Takk så mye til våre venner på Dropbox, takk så mye for alle bak kamera, CS50 egen Ramon Galvan og Daven Farnham. Dette var CS50 og dette var vår favoritt scene det gjorde det ikke gjør det i filmen. DIREKTØR 1: Skal vi få bilen i veien? DIREKTØR 2: Det kommer, det er OK. [HORN tuting] Skuespillerinne: Jøss. Åh, gud.