DAVID MALAN: Hej, värld, detta är CS50Live, och pojke, gör vi har en fantastisk episod för dig idag. Först, en inblick i hur Dropbox fungerar, då en nära titta på små hamstrar äta små burritos, och slutligen, en bakom-kulisserna på CS50 nya film, Uthållighet. Men först, Dropbox.com, där vi nyligen reste i San Francisco, Kalifornien, att träffa CS50: s tidigare chef undervisning karl, Thomas Carriero som gav oss en rundtur i Dropbox och exakt hur det är att arbeta och, förmodar, bor där. Nu satte vi oss inte bara med Thomas där, men också med CS50 tidigare huvud undervisning karl Alex Allain att prata om den underliggande arbetena av Dropbox.com och det är distribuerad arkitektur. Låt oss ta en titt. THOMAS Carriero: Jag är Thomas Carreiro Jag är en programvara ingenjör på Dropbox. ALEX ALLAIN: Jag är Alex Allain. Jag är ingenjör här på Dropbox. THOMAS Carriero: Ja, så jag var faktiskt den första huvud CF för CS50 när David Malan tog över klassen. Jag hade redan undervisat CS50 för två terminer med Mike Smith, som var där teknikens professor där. ALEX ALLAIN: Så jag faktiskt tog inte CS50, men jag gjorde TF den två gånger, en gång som en regelbunden TF och sedan i mitt sista år, Jag var faktiskt chef TF av CS50, vilket var mycket roligt. THOMAS Carriero: Så när David nått ut till mig om att ställa in Dropbox i CS50 apparaten, Jag var verkligen spännande, eftersom vi faktiskt har en Linux-klient. De flesta av våra användare använder antingen Windows eller Macintosh-klienter, men Linux, Macintosh, och Windows-klienter är allt, faktiskt, mycket lika. Så vad vi gjorde är att vi förinstallerat Dropbox Linux-klienten i CS50 apparat, och det går precis som alla våra andra Linux-användare. ALEX ALLAIN: Så hur Dropbox fungerar är det körs som kunden på många olika operativsystem och enheter. Den Drobox skrivbordsklienten är en av de mest välkända, en av de mest intressanta. THOMAS Carriero: Så Dropbox princip tar alla filer att du sätter i mapp, och det bitar dessa filer till fyra megabyte bitar. Så vi tar en 100 megabyte PDF-fil, och vi kommer bit IT till 25 på fyra MB bitar. Dessa bitar är då krypterade, och sedan skickar vi dem våra blockera servrar. ALEX ALLAIN: Block servrar lagring för blocken själva, och så att varje block lagras i blocket servern med data och en SHA-256 hash av att blocken. Det är en mycket grundläggande kryptering primitiv som sammanfattar, i någon mening, data i en mycket unik sätt som är unikt för dessa uppgifter. Du kan ladda upp hela filen på en gång, men det visar sig om du gör som med riktigt stora filer, de tar väldigt lång tid att ladda upp, och om du har ett fel, du är ute på tur och du måste starta om den. Vad vi då gör är att vi berättar en annan server i vårt system, vad vi kallar metaservern, metadataserver, hey, det är en fil och det består av Följande förteckning över block. Och vi missa de hashar att identifiera de block snarare än re uppladdning hela blocket. Meta server sedan kontroller med de block servrar ser till att blocken är där - om det är perfekt, allt är bra. THOMAS Carriero: När vi vill att, i princip, ladda ner filen från internet, låt oss säga, kommer vi att be meta servern först, hej, kan du berätta om där filen finns, och meta-server kommer att säga, oh, ja, denna fil är faktiskt 25 fyra megabyte bitar, och här är de. Och sedan går vi till blocket server och vi kommer faktiskt ladda ner var och en av dessa bitar, och sedan vi rekonstruera filen därifrån, och då kommer vi att påbörja nedladdningen. Ja, så Dropbox erbjudanden med skala, i princip, med mycket, mycket aggressiv sharding. ALEX ALLAIN: Så sharding är när du tar alla användare i start eller ditt företag, och kanske de använde att vara på en databas, och som fungerar bra tills du slår ett visst antal användare, och verkligen vad du vill göra är att hitta något sätt att dela upp dem över två databaser eller kanske mer än två - helst, nog att du kan har varje användare i världen. Så när du shard, vad du gör är att du hittar något sätt att avgöra vilken databas för att gå att det inte kräver slå en central katalog, eller kanske är det en mycket snabb, billig slå upp i den centrala katalogen. THOMAS Carriero: Vi har aldrig allt lagras i en databas, eftersom det är nästan aldrig att skala. Så istället, vad vi gör är att vi tar alla av denna information, alla filer är alla av metadata och vi kommer shard det över hundratals eller tusentals logiska databaser. Det innebär att när vi har en begära en användares information, vi ska först säga, hej, vilken databas är denna användares information lagrad i, och då kommer vi i princip använda det Beslutet att gå hitta databasen, och det är där vi kommer att ladda alla filerna eller alla metadata om filerna. Så vi använder en hel del sharding, men sharding är inte alltid tillräckligt. Du behöver faktiskt att cacha en Många av de vanligaste förfrågningar, för även om databasen frågor kan bli dyrt. Så vi gör även progressiva caching strategier att se till att den vanligaste önskemål är ganska lätt att beräkna, och i grund och botten, som gör det mycket snabbare och gör det arbetet på skalan. Så det är på en mycket hög nivå, typ hur Dropbox fungerar. ALEX ALLAIN: Jag heter Alex Allain. THOMAS Carriero: Jag är Thomas Carreiro. ALEX ALLAIN: Och detta är CS50. DAVID MALAN: Nu om du någonsin undrat där detta citat på CS50 hemsida kommer ifrån, det är faktiskt Alex som är den ursprungliga författaren. Nu, på tal om Dropbox, jag nyligen fått detta mail från dem i min inkorg - Hej, David, kan du märker att vissa av dina delade länkar fungerar inte, och vi ville nå ut till dig personligen så att du vet varför. Tja vad är en gemensam länk? Tja, om du har använt Dropbox bortom helt enkelt spara din källkod inne av apparaten, du kanske vet att du kan skapa delade länkar med typiskt att högerklicka på en fil och kopiera webbadressen till Urklipp. Det delade länk kan se lite ungefär så här, utan istället av ordet hemlig, det finns faktiskt något mer kryptisk där, som en sekvens av slumpmässiga bokstäver och siffror. Tanken är att jag nu kan maila eller Gchat denna typ av URL till en vän, och han eller hon kan komma åt CS50.txt och ladda ner det till hans eller hennes dator. Och bara genom att veta att url, eller med super, super låg sannolikhet, gissa den url: en, kan någon annan faktiskt komma åt filen. Tyvärr ett företag känd som IntraLinks nyligen skrivit på deras CollaboristaBlog att det finns faktiskt ett par hot mot detta arbetsflöde. Det visar sig att om du av misstag gör ett misstag, som jag, ärligt talat, har gjort i det förflutna, och klistra en URL som en Dropbox gemensam länk, in inte webbläsarens adress bar, men som på bilden här, sökningen bar, att url, naturligtvis, kommer ska lämnas till en sökmotor som Google. Naturligtvis är Google inte att nödvändigtvis inser att delad länk, och så du kommer att få mer allmän sökning resultat som en länk att Dropbox.com själv, och i detta fall, en annons, och faktiskt, reklam, eventuellt, för konkurrenter till Dropbox. I själva verket är det hur IntraLinks märkt detta - de, också, körde en AdSense kampanj vid sidan av sökord att Dropbox själva kan använda. Och så om vi zoomar in på botten resultat här, ser du att Inralinks har här länken till sin egen tjänst. Nu en av funktionerna i Google och andra sökmotorer " annonskampanjer är att när en användare som jag klickar på den här länken, nu, Jag kommer att avslöja webbadressen som jag skrev in i Google för att hitta dessa sökresultat. Tanken är att företag skulle vilja veta hur människor är att hitta deras hemsida. Självklart, om jag hittade denna sida av resultat genom att klistra en annars hemlig url till Google, Jag har nu, på ett effektivt sätt, berättade IntraLinks och deras web loggar exakt vad hemlig url I besökte och därigenom röja, potentiellt, CS50.txt innehållet. Nu finns det en annan hot alla tillsammans - du kanske vet också, från Dropbox delade länkar som du kan normalt öppna dem inne i ditt eget webbläsare och förhandsgranska dem i av en ram som denna. Men om det förhandsgranskning innehåller en hyperlänk, som på bilden här till Example.com, och du eller en användare klickar som hyperlänk, vilket öppnar en ny flik eller ett fönster med denna sidas url, vad du har också precis berättat webben server, som på grund av hur HTTP fungerar, är HTTP hänvisa adress varifrån du kom. Med andra ord, du informerad destinations hemsida att du var tidigare på detta förment hemliga url. Nu, vad IntraLinks upptäckt genom att titta igenom sina egna loggar är att de hittat en hel information som var säkert tänkt att vara hemligt - för Exempelvis någons inteckning ansökan, någons självdeklaration, och klasar av flera dokument, liksom. Nu, om du vill veta mer om just detta hot, bege dig till Drop lådans blog på denna URL här, och verkligheten är att du kan inte riktigt försvara sig mot ett hot där människor som jag av misstag klistra vad ska vara hemliga webbadresser i till sökmotorer. Du och jag är helt enkelt att gå till måste vara lite mer försiktig. Men de har arbetat med avhjälpa den andra frågan vari länkar som är inbäddade i en Dropbox förhandsvisning var avslöja hänvisa url. Men bege dig till den webbadressen för mer information. Men nu, som utlovat, en närmare titt på små hamstrar som äter små burritos. [MUSIK SPELA] DAVID MALAN: Nu CS50 team nyligen haft tillfälle att delta i ett 48-timmars filmprojekt, en internationell konkurrens under vilken lagen hade, faktiskt, 48 ensamma timmar för att göra en film. Fångsten är att du bara ta reda på vilken film du behöver för att göra åtmin start av dessa 48 timmar. Särskilt på en nyligen Fredag ​​kväll kl 19:00, Vi på CS50 lärt oss att vi skulle vara gör en, en stumfilm, två, att filmen som krävs för att har en karaktär som heter Jeremiah Jones, en lärare, tre, att filmen behövs att presentera en dagbok, detta en här, och fyra, som vi behövde för att på något sätt inkludera linjen det är vad det är till och med Men naturligtvis, vi gjorde en stumfilm. Nu, 26 medlemmar av CS50 team deltog i denna 48-timmars film projekt, bland dem Colton, Dan, Padraig, och Shelley Westover, som ni kanske minns från filmer som denna här. Nu, också inblandad, naturligtvis, var CS50 egen Ramon Galvan. Ramon, välkommen till showen. RAMON GALVAN: Tack för att jag fick komma. DAVID MALAN: Och CS50: s äger Daven Farnham. Nu, Ramon, vad var din roll i filmen? [? RAMON GALVAN:? Flight code] direktör med Dan, faktiskt. DAVID MALAN: Och Daven, själv? Daven FARNHAM: Jag var stjärnan, så jag i princip gjort projektet. Jag räddade filmen. DAVID MALAN: Du räddade filmen. Daven FARNHAM: Jag gjorde. DAVID MALAN: Nu, du säga detta, men jag tror Vi har din skärm test för den här filmen. Om vi ​​kunde rulla detta klipp här. Daven FARNHAM: Jag heter Daven Farnham, och detta är CS50. Jag ville säga CSS. Detta är CSS. DAVID MALAN: Nu var din första film? Daven FARNHAM: Öh, nej, kanske. DAVID MALAN: Nej, ja, åtminstone här gång det var en stumfilm. Daven FARNHAM: Ja. DAVID MALAN: Så vid 19:00, fann vi ut de nödvändiga ingredienserna, och då kommer vi omedelbart dök som en grupp att lista ut vilken film vi faktiskt kommer att göra. Vill du att gå oss igenom vad den kvällen var? Daven FARNHAM: Så i princip Vi fick idén vid 7:00, vi i princip började brain, så vi alla typer av samlades runt en whiteboard och började brainstorma idéer, och sedan av 09:00, försökte vi att kasta bort det till författare, och författarna tog det därifrån. DAVID MALAN: Och under tiden, Dan och Shelley och jag faktiskt leds till Target, naturligtvis, vår favorit närliggande butik, att plocka upp alla rekvisita för filmen Vi hade beslutat om, som vid den tidpunkten var - Daven FARNHAM: Vi hade beslutat på en paritet äventyrsfilm. DAVID MALAN: whic skulle vara riktigt som Indiana Jones. Daven FARNHAM: Ja, så vi behövde en tjur piskor och vi behövde en fedora och sånt. DAVID MALAN: Och en mycket utsmyckade smycke att han då skulle finna vid slutet av episoden. Visst, vi får tillbaka på midnatt eller så från Target och inse, nope, det är inte filmen vi gör - psych. Daven FARNHAM: Helt annorlunda film. RAMON GALVAN: Vi hade en film Noir i ett par timmar, då hade vi en romantisk komedi i slutet. DAVID MALAN: Så genom 4:00, hade vi en romantisk komedi, och omkring 5:00, dig och Dan, den andra direktör, visade upp. RAMON GALVAN: Ja, så vi fick tillsammans och vi typ av planerade ut där vi wold skjuta, vad är scener vi skulle skjuta först, och sedan runt 07:00 eller 08:00, vi faktiskt gick ut och började skjuta. DAVID MALAN: Tja, om du kan stanna kvar, Vi skulle älska att göra en del bakom kulisserna ser på hur filmen gjordes, men jag tror först, ska vi ge folk världspremiären av CS50 film, Uthållighet. [MUSIK SPELA] DAVID MALAN: Killar, jag menar - så låt oss börja från toppen. Så den allra första scenen vi alla skott som en grupp den morgonen inträffade runt 08:00 a.m, och vi var faktiskt här, Jefferson Hall, som egentligen är en av fysik föreläsningssalar på campus. Och vad som var målet med den här scenen? RAMON GALVAN: Så vi var här att starta filmen, Daven som lärare, en undervisning karl, eller assistent, något så där, och han var riktigt upprörd att han ser detta paret gå ut och han vill ha det. Han vill vara i ett förhållande, han bara inte ha det. DAVID MALAN: Och sedan nästa scen, vi övergången till faktiskt blev inte skjuten i ordning. I själva verket, här är du - Daven FARNHAM: Så här, faktiskt, vi sköt det här - det var en av de sista scenerna vi sköt, men detta faktiskt dyker upp på i början av filmen. Och så i den här scenen, det är en montage, och så vad jag gör är att jag sätter på Köln, Jag kamma mitt hår. DAVID MALAN: Använder du parfym? Daven FARNHAM: Öh, Ramon cologne, massor av Köln. DAVID MALAN: Och vems tröja? Daven FARNHAM: Öh, Ramon skjorta. DAVID MALAN: Så det var mer än en tagning, och skjortan i slutet var ganska - Daven FARNHAM: Ja, tror jag vi var tvungna att ta tre eller fyra tar, så varje take var tre sprutar, så det var cirka 12 sprutar i Köln. Så jag luktade så där cologne under resten av dagen. DAVID MALAN: Tja, på stone mycket snabbt. Vi övergick utanför, och, i själva verket, om du tittar noga, detta är faktiskt CS50 s egen Lauren Caraballo. Men vad var du tänkande med denna scen? Daven FARNHAM: Rätt, så i den här scenen, vi försöker få hennes uppmärksamhet. Så jag går med henne, Jag är peacocking, förstås. DAVID MALAN: Peacocking? Daven FARNHAM: Åh, du vet inte? RAMON GALVAN: Öh, skulle jag det? Daven FARNHAM: Ja, naturligtvis, förstås. Så normal gång, naturligtvis, är bara normal gång. DAVID MALAN: Så detta är normal gång? Daven FARNHAM: Det är normal gång. Peacocking, kasta en små höfter i det. RAMON GALVAN: Det är riktigt bra här. Daven FARNHAM: Det är okej här. Det är från denna qua - Det är alla i höfterna. Och sedan i slutet, du måste pop och lås. Det är nyckeln till manövern - det är nyckeln. DAVID MALAN: Pop och lås. Okej, du faktiskt gjorde en mycket fysisk komedi i filmen. Faktum är att en av de följande scenerna var här vid Lamont Library, utanför dörren. Daven FARNHAM: Ja, de är just här, så jag är faktiskt försöker - Jag tycker det är en pull dörren och jag driver, och såsom den scenen fortskrider, Jag driver och driver allt mer aggressivt. Och jag tror att i slutet, någon faktiskt slår mig ur vägen. DAVID MALAN: Ja, och i Faktum är att vi inte märker det - tills redigeringsfasen. RAMON GALVAN: Ja, så, om vi zooma in detta skott, och Dan, kan vi förbättra lite? OK, perfekt. Så du fick se mig hukade ner om att dyka upp och knacka Daven i ansiktet med dörren. DAVID MALAN: Att vi kul hittade tagningar bara timmar innan vi tvungen att sända filmer för tidsfristen. Okej, bra tack båda så mycket för sammanfogning och för huvudrollen i en sådan - Daven FARNHAM: Åh, nej tack. RAMON GALVAN: Tack. DAVID MALAN: - en rörlig film. Jo det är det för CS50Live. Tack så mycket till våra vänner på Dropbox, tack så mycket för alla bakom kameran, CS50 egen Ramon Galvan och Daven Farnham. Detta var CS50 och detta var vår favoritscen det gjorde det inte göra det i filmen. DIREKTÖR 1: Ska vi få bilen på vägen? DIREKTÖR 2: Det kommer, det är OK. [HORN TUTA] Skådespelerska: Whoa. Åh, gud.