DAVID MALAN: Hallo, wereld, dit wordt CS50Live, en jongen, doen we hebben een geweldige episode voor u vandaag. Eerste, een kijkje in hoe Dropbox werkt, dan is een nauwe kijken naar kleine hamsters het eten van kleine burrito's, en ten slotte, een achter-de-schermen kijken bij nieuwe film CS50's, Persistence. Maar eerst, Dropbox.com, waar we onlangs reisde in San Francisco, Californië, voor een ontmoeting met CS50's voormalige hoofd teaching fellow, Thomas Carriero die ons een rondleiding van Dropbox gaf en precies wat het is om werken en, daresay, er wonen. Nu zaten we niet alleen naar beneden met Thomas terwijl er, maar ook met CS50 voormalige hoofd onderwijs collega Alex Allain om te praten over de onderliggende werkingen van Dropbox.com en het is gedistribueerde architectuur. Laten we eens een kijkje nemen. THOMAS Carriero: Ik ben Thomas Carreiro Ik ben een software engineer bij Dropbox. ALEX ALLAIN: Ik ben Alex Allain. Ik ben een ingenieur hier bij Dropbox. THOMAS Carriero: Ja, dus ik was eigenlijk de eerste kop CF voor CS50 toen David Malan nam de klas. Ik had al les CS50 voor twee semesters met Mike Smith, die erbij was voorafgaande professor daar. ALEX ALLAIN: Dus ik eigenlijk niet CS50 nemen, maar ik deed TF het twee keer, een keer als een reguliere TF en dan in mijn laatste jaar, Ik was eigenlijk Hoofd TF van CS50, die veel plezier was. THOMAS Carriero: Dus toen David stak zijn hand uit naar mij over het instellen van Dropbox in CS50 apparaat Ik was echt enthousiast, omdat we eigenlijk een Linux-client. De meeste van onze gebruikers gebruiken ofwel Windows of Macintosh-clients, maar de Linux, Macintosh en Windows-clients zijn allemaal, eigenlijk, zeer vergelijkbaar. Dus wat we gedaan hebben is dat we vooraf geïnstalleerd de Dropbox Linux-client in de CS50 apparaat, en het loopt net als al onze andere Linux-gebruikers. ALEX ALLAIN: Dus de manier Dropbox werkt is het uitgevoerd als de client op vele verschillende besturingssystemen en apparaten. De Drobox desktop client is een van de meest bekende, een van de meest interessante. THOMAS Carriero: Dus Dropbox neemt in principe alle bestanden die je in de map en het brokken die bestanden in vier megabyte brokken. Dus gaan we een 100 nemen megabyte PDF-bestand, en we zullen chunk het in 25 vier megabyte brokken. Die stukken worden vervolgens gecodeerd en kun je sturen we onze blok servers. ALEX ALLAIN: Het blok servers zijn de opslag van de blokken zelf, en dus elk blok wordt opgeslagen in het blok server met de gegevens en een SHA-256 hash van die blokken. Dat is een zeer eenvoudige encryptie primitieve dat vat, in zekere zin, de gegevens in een zeer unieke manier die uniek is voor die gegevens. Je zou kunnen uploaden hele bestand in een keer, maar het blijkt dat als je dat doet die met heel grote bestanden, ze nemen een heel lange tijd uploaden, en als je een mislukking, je je pech en je hebt om het opnieuw op te starten. Wat we dan doen is vertellen we een andere server in ons systeem, wat we de meta-server noemen, de metadata server, hey, dit is een bestand en het is samengesteld uit de volgende lijst met blokken. En we voorbij de hashes die blokken identificeren eerder dan opnieuw uploaden het hele blok. De meta-server controleert vervolgens met het blok servers, zorgt ervoor dat de blokken zijn er - indien het zijn, perfect, alles is goed. THOMAS Carriero: Als we willen om, in principe, downloadt u het bestand van het internet, laten we zeggen, we meta-server eerst vragen, hey, kan je me vertellen over waar dit bestand zich bevindt, en meta-server zal zeggen, oh, nou ja, Dit bestand is eigenlijk 25 vier megabyte brokken, en hier zijn ze. En dan gaan we naar blok server en we zullen eigenlijk downloaden elk van deze brokken, en vervolgens we zullen het bestand reconstrueren van daar, en dan zullen we het downloaden te starten. Ja, dus Dropbox aanbiedingen met schaal, in principe, door zeer, zeer agressief sharding. ALEX ALLAIN: Dus sharding is als je rekening alle gebruikers in opstarten of uw bedrijf, en misschien gebruikten ze om op een database en dat werkt geweldig tot u raakte een bepaald aantal gebruikers, en echt wat je wilt te doen is een manier vinden die verdeeld over twee databases of misschien wel meer dan twee - ideaal, genoeg dat je kunt heeft elke gebruiker in de wereld. Dus als je scherf, wat je doet is je vinden enkele manier om te bepalen welke database te gaan die niet vereist raken van een centrale directory, of misschien is het een zeer snelle, goedkope look-up in die centrale directory. THOMAS Carriero: Wij hebben nooit alles opgeslagen in een databank, want dat is bijna nooit op schaal. Dus in plaats daarvan, wat we doen is dat we allemaal van die informatie, alle bestanden zijn alle metadata en we zullen het shard over honderden of duizenden logische databanken. Dat betekent dat als we een verzoek om informatie van een gebruiker, zullen we eerst zeggen, hey, welke database wordt informatie van deze gebruiker opgeslagen, en dan gaan we in principe gebruik dat beslissing om te gaan vinden die database, en dat is waar we allemaal zullen laden de bestanden of alle metadata over de bestanden. Dus gebruiken we een heleboel sharding, maar sharding is niet altijd genoeg. Je moet eigenlijk naar de cache een veel gemeenschappelijke verzoeken want hoewel databank queries kan duur zijn. Dus we doen ook progressieve caching strategieën om ervoor te zorgen dat de meest voorkomende verzoeken zijn vrij eenvoudig te berekenen, en eigenlijk, dat maakt het een stuk sneller en maakt het werken op schaal. Dus dat is, op een zeer hoog niveau, een soort van hoe Dropbox werkt. ALEX ALLAIN: Mijn naam is Alex Allain. THOMAS Carriero: Ik ben Thomas Carreiro. ALEX ALLAIN: En dit is CS50. DAVID Malan: Nu als je ooit hebt afgevraagd waar dit citaat op de website CS50's vandaan komt, het is eigenlijk Alex wie is de oorspronkelijke auteur. Nu, spreken van Dropbox, Ik heb onlangs ontving deze e-mail van hen in mijn inbox - Hoi, David, mag u merken dat sommige van uw gedeelde koppelingen werken niet, en we wilde om uit te reiken aan u persoonlijk te laten weten waarom. Tja, wat is een gedeelde link? Nou, als je hebt gebruikt Dropbox voorbij gewoon opslaan van uw broncode binnen van het apparaat, u zouden weten, dat je kan gedeeld links te maken door typisch rechts te klikken op een bestand en het kopiëren van de url naar uw klembord. Dat deelden koppeling misschien een beetje te kijken zoiets als dit, maar in plaats daarvan van het woord geheim, er is eigenlijk iets meer cryptische er, als een reeks willekeurige letters en cijfers. Het idee is dat ik nu kunt e-mailen of Gchat dit soort url naar een vriend, en hij of zij toegang had tot CS50.txt en downloaden op zijn of haar computer. En alleen door te weten dat de url, of met super, super lage waarschijnlijkheid, gissen die url, kan iemand anders daadwerkelijk toegang tot het bestand. Helaas een bedrijf bekend als IntraLinks onlangs geplaatst op hun CollaboristaBlog dat er eigenlijk een paar bedreigingen voor dit specifieke workflow. Het blijkt dat als je per ongeluk een fout maken, zoals ik, eerlijk gezegd, hebben gedaan in het verleden, en plakken een url als een Dropbox gedeeld koppeling, in niet-adres van uw browser bar, maar zoals hier afgebeeld, uw zoekbalk, dat url natuurlijk gaat om te dienen zoekmachine zoals Google. Natuurlijk is Google niet van plan om se erkennen dat gedeeld koppeling, en dus je gaat krijg meer generieke zoekopdracht resultaten als een koppeling zich Dropbox.com, en in dit geval, een advertentie, en in feite, advertenties, potentieel, concurrenten van Dropbox. In feite, dat is hoe IntraLinks merkte dit - zij, Ook liepen een AdSense campagne naast zoekwoorden dat Dropbox zelf zou kunnen gebruiken. En dus als we inzoomen op de onderste resultaten hier, je zult zien dat Inralinks heeft Deze link naar hun eigen dienst. Nu een van de kenmerken van Google en andere zoekmachines ' reclamecampagnes is dat wanneer een gebruiker als ik op deze link klikt, nu, Ik ga worden de openbaarmaking van de url dat ik getypt in Google in orde om deze resultaten te vinden. Het idee is dat bedrijven willen weten hoe mensen vinden hun website. Natuurlijk, als ik vond Deze pagina met resultaten door plakken een anderszins geheime url in Google, Ik heb nu, effectief, vertelde IntraLinks en hun web logs precies wat geheim url I op bezoek was, waardoor de openbaarmaking, potentieel, de inhoud CS50.txt. Nu, er is een andere bedreiging allemaal samen - u wellicht weet, ook, van Dropbox gedeelde links die u kunt meestal open ze binnenkant van uw eigen browser en een voorbeeld van hen binnen van een frame als dit. Maar als dat voorbeeld bevat een hyperlink, zoals hier afgebeeld aan Example.com, en u of een gebruiker klik die hyperlink, waardoor het openen van een nieuw tabblad of venster met die pagina's url, wat je ook net verteld het web server, door de aard van hoe HTTP werkt, is de HTTP verwijzen adres uit waar je vandaan komt. Met andere woorden, u op de hoogte de bestemming website die u eerder waren deze zogenaamd geheime url. Nu, wat IntraLinks ontdekt door te kijken via hun eigen logs is dat ze vond wel een beetje van informatie die zeker was betekende geheim zijn - voor Zo iemands hypotheek toepassing, iemands belastingaangifte, en trossen van meer documenten, als goed. Nu, als je meer wilt weten over deze bijzondere dreiging, hoofd naar Drop Box blog op deze url hier, en de realiteit is dat je niet echt verdedigen tegen een bedreiging waarin mensen zoals ik per ongeluk plakken wat moet geheim zijn URL's in zoekmachines. Jij en ik gaan gewoon naar moet een beetje voorzichtiger zijn. Maar ze hebben gewerkt aan ongedaan maken van de andere kwestie, waarbij links die zijn ingebed in een Dropbox voorbeeld werden de openbaarmaking van de verwijzen url. Maar het hoofd naar die url voor meer details. Maar nu, zoals beloofd, een kijkje bij kleine hamsters eten kleine burrito's. [Muziek] DAVID Malan: team Nu CS50's onlangs een kans gehad deelname aan een 48-uurs filmproject, internationale concurrentie waarin teams hadden inderdaad 48 uren staan ​​om een ​​film te maken. De vangst is dat u alleen erachter te komen wat je film moeten maken bij het start van deze 48 uur. Vooral op een recente Vrijdagavond om 19:00, we bij CS50 geleerd dat we zouden het maken van een, een stille film, twee, dat de film moest beschikken over een karakter genaamd Jeremia Jones, een leraar, drie, dat de film benodigde om een ​​dagboek functie, deze hier, en vier, dat we nodig hadden om een ​​of andere manier onder de lijn het is wat het is zelfs hoewel, natuurlijk, we maakten een stille film. Nu, 26 leden van CS50's team namen deel aan deze 48-uur durende film project, onder hen Colton, Dan, Padraig en Shelley Westover, die u zich wellicht herinnert van dergelijke films als deze hier. Nu ook betrokken natuurlijk was CS50 eigen Ramon Galvan. Ramon, welkom op de show. RAMON GALVAN: Bedankt voor de uitnodiging. DAVID Malan: En CS50's bezit Daven Farnham. Nu, Ramon, wat was uw rol in de film? [? RAMON GALVAN:? Vlucht code] directeur met Dan, eigenlijk. DAVID Malan: En Daven, jezelf? Daven FARNHAM: Ik was de ster, dus ik eigenlijk maakte het project. Ik redde de film. DAVID Malan: U redde de film. Daven FARNHAM: ik deed. DAVID MALAN: Nu, u dit zeggen, maar ik geloof wij hebben uw scherm test voor deze film. Als we hier deze clip kan rollen. Daven FARNHAM: Mijn naam is Daven Farnham, en dit is CS50. Ik wilde CSS zeggen. Dit is CSS. DAVID Malan: Nu deze was je eerste film? Daven FARNHAM: Uh, nee, misschien. DAVID MALAN: Nee, nou ja, in ieder geval dit keer was het een stomme film. Daven FARNHAM: Ja. DAVID Malan: Dus om 7:00 uur, vonden we uit de benodigde ingrediënten, en dan meteen we gedoken als een groep om erachter te komen welke film we waren eigenlijk gaan maken. Wilt u ons lopen door wat die nacht was? Daven FARNHAM: Dus eigenlijk kregen we het idee om 7:00, we in principe begonnen brainstorm, dus we alle soorten van verzamelden zich rond een whiteboard en begon te brainstormen over ideeën, en vervolgens door 9:00, we probeerden om het te werpen aan schrijvers, en de schrijvers nam het vanaf daar. DAVID Malan: En ondertussen, Dan en Shelley en ik eigenlijk op weg naar Target, natuurlijk, onze favoriete winkel in de buurt, op te pikken alle rekwisieten voor de film we hadden besloten, dat op dat moment was - Daven FARNHAM: We hadden besloten op een pariteit avonturenfilm. DAVID Malan: whic ging zijn vrij als Indiana Jones. Daven FARNHAM: Ja, dus hebben we een stier nodig zwepen en we moesten een fedora en spullen. DAVID Malan: En een zeer sierlijke sieraad dat hij dan zou vinden aan het einde van de episode. Natuurlijk krijgen we terug op middernacht of zo van Target en realiseren, nope, dat is niet de film die we maken - psych. Daven FARNHAM: Volledig andere film. RAMON GALVAN: We hadden een film noir voor een paar uur, Vervolgens hadden we een romantisch komedie op het einde. DAVID Malan: Dus tegen 04:00, hadden we een romantische komedie, en rond 05:00, u en Dan, de andere directeur, opdagen. RAMON GALVAN: Ja, dus we hebben elkaar en we soort van gepland uit waar we Wold schieten, wat is scènes zouden we eerst schieten, en dan rond 07:00 of 08:00, we eigenlijk ging naar buiten en begon te schieten. DAVID MALAN: Nou, als je kunt blijven hangen, we zouden graag wat achter de schermen doen bekijkt hoe de film werd gemaakt, maar ik denk dat eerste, zullen we geven mensen de wereldpremière van CS50's film, Persistence. [Muziek] DAVID MALAN: Jongens, ik bedoel - dus laten we beginnen vanaf de top. Dus de eerste scène we allemaal neergeschoten als groep die ochtend vond plaats rond 08:00 a.m, en we waren eigenlijk hier, Jefferson Hall, dat is eigenlijk een van de fysica collegezalen op de campus. En wat was het doel met deze scene? RAMON GALVAN: Dus we waren hier om de film, Daven start als een leraar, een leer collega, of een onderwijsassistent, iets als dat, en hij was echt boos dat hij dit ziet paar lopen uit en hij wil dat. Hij wil in een relatie, hij gewoon niet hebben. DAVID Malan: En dan de volgende scène, overgang we eigenlijk werd niet geschoten in orde. Sterker nog, hier, u bent - Daven FARNHAM: Dus hier, eigenlijk, we schoten dit - dit was een van de laatste scènes die we geschoten, maar dit ook daadwerkelijk verschijnt bij het begin van de film. En dus in deze scène, het is een montering, en dus wat ik doe is Ik zet op cologne, Ik ben mijn haar kammen. DAVID Malan: Heeft u cologne gebruiken? Daven FARNHAM: Uh, Ramon's keulen, veel cologne. DAVID Malan: En wiens shirt? Daven FARNHAM: Uh, overhemd Ramon's. DAVID Malan: Dus dat was meer dan een take, en het shirt aan het eind was vrij - Daven FARNHAM: Ja, denk ik we moesten nemen drie of vier neemt, zodat elke take was drie straaltjes, dus er waren ongeveer 12 straaltjes van Keulen. Dus ik rook dat cologne de rest van de dag. DAVID MALAN: Nou, bij althans, zeer snel. We overgestapt buiten, en, in feite, als je goed kijkt, dit is eigenlijk CS50's eigen Lauren Caraballo. Maar wat je was denken met deze scène? Daven FARNHAM: Juist, dus in deze scène, we proberen om haar aandacht te krijgen. Dus ik loop door haar, Ik ben peacocking, natuurlijk. DAVID Malan: Peacocking? Daven FARNHAM: Oh, je weet het niet? RAMON GALVAN: Uh, zou ik? Daven FARNHAM: Ja, natuurlijk natuurlijk. Dus normaal lopen, natuurlijk, is gewoon normaal wandelen. DAVID Malan: Dus dit is normaal lopen? Daven FARNHAM: Dat is normaal lopen. Peacocking, gooi een weinig heupen daar. RAMON GALVAN: Het is echt allemaal hier. Daven FARNHAM: Het is allemaal hier. Het is uit deze qua - Het is allemaal in de heupen. En dan helemaal aan het eind, moet je pop en lock. Het is de sleutel tot de manoeuvre - het is belangrijk. DAVID Malan: Pop en slot. Oke, goed, je eigenlijk wel een veel fysieke komedie in de film. In feite, een van de volgende scènes was hier bij Lamont Bibliotheek, buiten de deur. Daven FARNHAM: Ja, ze zijn hier, dus ik ben eigenlijk proberen - ik denk dat het een Trek de deur en ik ben te duwen, en als die scène vordert, Ik ben te duwen en duwen steeds agressiever. En ik denk aan het eind, iemand eigenlijk klopt me uit de weg. DAVID MALAN: Ja, en in Sterker nog, we merkten het - totdat de editing fase. RAMON GALVAN: Ja, dus, als we inzoomen op dit schot, en Dan, kunnen we een beetje te verbeteren? OK, perfect. Dus je moet me zien hurkte over om pop-up en klop Daven in het gezicht met de deur. DAVID Malan: Dat we leuk vonden footage enkele uren voor we moesten de films voor de deadline verzenden. Oke, nou dank u beiden zoveel voor het verbinden en voor de hoofdrol in een dergelijke - Daven FARNHAM: Oh, nee, dank u. RAMON GALVAN: Dank je wel. DAVID Malan: - een bewegende film. Nou dat is het voor CS50Live. Hartelijk dank aan onze vrienden bij Dropbox, hartelijk dank aan iedereen achter de camera, CS50's eigen Ramon Galvan en Daven Farnham. Dit was CS50 en deze was onze favoriete scène dat heeft het niet te maken in de film. DIRECTEUR 1: Gaan we krijgen de auto in de weg? DIRECTEUR 2: Het komt, dat is OK. [HORN TOETEREND] ACTRICE: Whoa. Oh, god.