[Muziek] NU: Hallo, wereld. Dit is CS50LIVE. We hebben zo'n goede aflevering voor je. De CEO van YouTube, een bug in Internet Explorer, de slechtste video game ooit, en een excursie naar Valve Software. Maar eerst een reis naar Tokio, Japan waar president Obama recent afgespeelde voetbal met een goede vriend van mij. [VIDEO AFSPELEN] -Wow. Hij beweegt. -Ik kan ook schoppen een voetbal. Ik ga hier. -He, goede baan. [END VIDEO AFSPELEN] DAVID: Hallo, wereld. Ik ben hier met CS50 eigen Colton Ogden. COLTON OGDEN: Hallo, iedereen. DAVID: En wie anders doen we bij ons hier vandaag? COLTON OGDEN: Dit is nu onze kleine robot maatje uit Frankrijk. DAVID: Dus ik echt ontmoet NO naast [? Rob Boden?] toen hij en ik waren in Atlanta, Georgië een paar weken terug zoals u zich wellicht herinnert aan SIGCSE, de Special Interest Groep voor Computer Science Education, waar letterlijk rond te lopen de conferentie verdieping kamer was deze kerel. Nou zo blijkt, wanneer we kwamen terug naar de campus ontdekten we dat professor [Onverstaanbaar] van Harvard robotica lab had eigenlijk een nu hier op de campus. En ze waren zo vriendelijk om ons om hem te programmeren voor u vandaag. COLTON OGDEN: Ja, en eigenlijk, David, Ik denk en wil om hallo te zeggen aan u als je wilt lopen hier in de buurt van de tafel. DAVID: Right here? Oke. Oke. NU: Hallo, David. Leuk u te ontmoeten. DAVID: Hallo, Nu. Zijn hand schudden? COLTON OGDEN: Shake zijn hand op en neer. DAVID: OK. COLTON OGDEN: En dan hij zal gaan zitten. En als je geïnteresseerd bent, Ik kan je eigenlijk zien hoe ik was in staat om hem te krijgen om al deze dingen te doen. DAVID: Ja, absoluut. COLTON OGDEN: Hij is een beetje uit balans vanmorgen. Hij heeft nog niet zijn koffie had. DAVID: Dus wat is dit we naar kijken? COLTON OGDEN: Dus we kijken naar Hier is een kern grafiek, die nu een grafische programmeeromgeving, die is zeer vergelijkbaar met Scratch dat CS50 gebruikt. Hier zien we het ingesteld op als een stroomschema. En we hebben een aantal van deze weinig bouwstenen hier. Als we nu een kijkje nemen op deze bijvoorbeeld, het heet stand up. En dit blok zegt op te komen voor het nu, of hij gaat zitten of wat dan ook. Dan zien we het gaat in tactiele hoofd, die in feite wacht op een tik op de top van zijn hoofd als je eerder zag. Ga naar middelen bewegen in een x, y en z richting naar een specifieke bestemming. Handdruk is een module schreef ik, die in feite zegt: hallo, David. Leuk u te ontmoeten. Wacht op een handdruk. Zitten is het tegenovergestelde van opstaan. Hij zal gaan zitten. En dan beweging van het hoofd is een lus waarbij hij zal zijn hoofd bewegen in willekeurige richtingen. DAVID: Interessant. Dus ook al zijn deze niet kijken zoals de puzzelstukjes uit Scratch, het is echt hetzelfde idee. En je bedrading een programma met deze bouwstenen. COLTON OGDEN: Ja, precies. DAVID: Dus je zei dat je gemaakt een van hen, handdruk. Kunnen we inzoomen op die ene? COLTON OGDEN: Zeker. We nemen een kijkje hier op handdruk nemen. En we zullen zien dat het opzetten van zeer vergelijkbaar met de andere stroomdiagram. We beginnen met de hello blok, die [onverstaanbaar] zegt: hallo, David. Leuk u te ontmoeten. Dit hier is een lus. Het zegt, op te sporen armbeweging. Het zal dus in een oneindige lus wachten tot haar arm is op en neer verhoogd. En dan eens wat er gebeurd is, het zal gaan en deze dingen doe. Stel stijfheid OK en ga naar het einde, die in feite betekent terugsturen hem zijn standaardpositie. DAVID: Interessant. Bent u beperkt tot slechts Met deze grafische omgeving om hem te programmeren op deze manier? COLTON OGDEN: Eigenlijk niet. Als we verder gaan en dubbelklik een van deze bouwstenen, kunnen we zien dat er eigenlijk python code onder de motorkap, voeden van elk van deze bouwstenen. DAVID: Ah, inderdaad. Dus voor wie niet vertrouwd, python is een geïnterpreteerde taal, zeer vergelijkbaar in geest PHP, die we gebruiken in CS50. En net zoals je kunt gebruiken PHP voor web programmeren, u kunt het ook gebruiken op de commandoregel. En als Colton wordt hier in deze grafische omgeving, het schrijven van programma's en vervolgens overgebracht via Wi-Fi - COLTON OGDEN: Correct. DAVID: - tot nu. Zou je een aantal tijd om te blijven hangen? COLTON OGDEN: Absoluut. DAVID: Oke. Nou, voordat Colton komt terug met ons voor een beetje een verrassing, we nu - krijgen -? hebt 60 seconden van oud-CS50 studenten auditie Teaching Fellows te worden. [VIDEO AFSPELEN] Bedankt. Dank u, iedereen, voor uw aanwezigheid hier. -Hey, Mr Bunny. -Welkom op deze korte tutorial op - [Onverstaanbaar] plezier met Twinkies. -Wacht. Stoppen. -Dus nu hebben we een probleem. -Het is niet. En ik ga je vertellen waarom. -Een lus is herhaling, zoals - Sorteren van een zwarte doos. -OK. Ik denk dat ik snap het. -Oke. Dus nu ben ik in een iets harde deel. -Dat klopt. 8 bits vormen een byte. -Je neemt een byte en je scheiden in stukjes van vier. -Piep, piep, piep, piep, piep. Piep, piep, piep, piep, piep. -Het lijkt overdreven ingewikkeld. Dus laten we dit nog een keer doen. -Als ik verwarren u, alstublieft voel je vrij om me te stoppen. -Maar wacht eens even. -Nou, laten we eens kijken terug op de glijbaan en breken dingen naar beneden stap voor stap. -Als u het zich herinnert, het geheugen is opgesplitst in byte-grootte stukken. -Dus hier hebben we het best case scenario. -Dit is een aanzienlijke verbetering ten opzichte van - -Een web browser, zoals Chrome. -Het is altijd nodig om een ​​vrij - -Mensen - -U mag tegenkomt. En de code kan krijgen enigszins omslachtig. -En dat is alles wat je nodig hebt. -Boom! DAVID: Nu CS50 eigen Dan Coffey en ik onlangs had een kans om te reizen naar Mountain View, Californië, dat is waar de hoofdkwartier van Google is. En we een kans om te chatten met gehad Susan Wojcicki, de CEO van YouTube. Het was eigenlijk in Susan's garage jaar geleden in de jaren '90 dat Google zelf was gestart door Larry en Sergey. Nou, het blijkt dat Susan zich eigenlijk nam CS50 slechts een paar jaar voordat ik deed. En ik denk dat het opvallend zoals u zult al snel te horen hoe veel een kennismaking met de computer wetenschap dus beïnvloed haar leven. Ze wil gedag zeggen. SUSAN Wojcicki: Hallo, wereld. Ik ben Susan Wojcicki. Ik ben de CEO van YouTube. En ik nam CS50 toen ik een senior op Harvard in 1990. Ik was eigenlijk een geschiedenis en literatuur belangrijke. En mijn junior zomer I besefte dat ik misschien wilde iets leren over computers. En zo kwam ik terug. Ik nam CS50. Het was moeilijk, maar het was de meest verbazingwekkende klasse I nam. Het veranderde hoe ik denk over alles. En toen ik afstudeerde aan Harvard in 1990, ging ik naar Silicon Valley en ik heb een baan. En ik heb gewerkt in tech sindsdien. Dus CS50 mijn leven veranderd. Ik blijven leren en te bouwen. Het gaf me een geweldige basis. En ik ben blijven elke leren dag als de technologie verandert. En ik vind het geweldig dat je al het nemen van het want dat is hoe de wereld is gaat veranderen voor de toekomst. Er zal alleen maar meer en zijn meer mogelijkheden en innovatie. Digitaal gaat invloed hebben op onze leeft nog meer dan het al heeft. En het is prachtig dat je bent helemaal nemen CS50. Dus dit is CS50. DAVID: Dus als je bent geweest op zoek naar een nieuwe reden een bepaalde browser niet te gebruiken, hier is een goeie voor je. Onlangs ontving ik - samen met iedereen aan de Harvard University - deze e-mail hier. "Beste leden van de Harvard Gemeenschap. Het Amerikaanse Department of Homeland Security beveelt aan dat alle gebruikers tijdelijk het gebruik van stoppen Microsoft Internet Explorer, IE, te wijten aan een kritisch lek. " Dit is eigenlijk gedocumenteerd Microsoft-beveiligingsadvies 2963983. Door een beveiligingslek in Internet Explorer kan leiden tot uitvoering van externe code. Nu, wat betekent dit en wat is de dreiging? Nou, overweeg dit diagram hier, waar we gebruiken bij CS50 om te praten over HTTP of webverkeer. Als we hier een web server en anderzijds een browser - Internet Explorer in dit geval - natuurlijk een browser wanneer het eerst vraagt ​​een webpagina misschien een HDP-bericht als dit te sturen. GET index.HTML gebruik maakt van versie 1.1 van het protocol, bekend als HTTP. Nu in dit geval, als een bad guy heeft een of andere manier toegang tot deze webserver had en geïnstalleerd op een benutten om zo te zeggen, hij of zij zou kunnen overtuigen de webserver om deze terug te keren. Niet alleen index.HTML zichzelf als gevraagd, maar binnen ingebed van dat bestand index.html kon, Uiteraard zijn andere activa. Met name wat zoals exploit.SWF, een flash-bestand dat uiteindelijk maakt gebruik van deze beveiliging techniek, hoop feng shui, dat is een mooie manier om te zeggen dat de code binnenkant van die flash-bestand sprays de zogenaamde heap binnenkant van de computer browser met verschillende stukjes geheugen die uiteindelijk zijn ontworpen om grote delen van het geheugen te overschrijven hier. Als u dit herinneren uit onze discussie in CS50 van de hoop en de stapel en geheugenbeheer meer in het algemeen. Nu het geheugen dat is eigenlijk op de hoop gegooid zijn echt wel flash vector objecten. En dit is iets met die u vertrouwd zou kunnen zijn als je jezelf had voordat geprogrammeerd Flash. Maar een van deze objecten name staat bekend als een flash media-sound object. En hierin ligt een kans, omdat wat deze exploit dan verder te doen corrupt is dit stuk van geheugen, dit object in het geheugen, zodanig dat het probeert om dit te maken hexadecimaal adres uitvoerbaar, waardoor proberen om het programma uiteindelijk truc tot het uitvoeren van een aantal shell-code zo te spreken, of code bad guy's, dat is uiteindelijk opgeslagen op dit adres hier, die werd geïnjecteerd door middel van het downloaden onbewust dat bepaalde flash-bestand. Nu is het eindresultaat zijn, ongeacht de tegenstander wil doen om uw computer. Hij of zij kan uw bestanden te verwijderen, verplaatsen van uw bestanden, e-mail uw bestanden, of echt iets dat je zelf kunt doen zou kunnen doen als de eigenaar van die computer. En dat is waarom de dreiging is zo eng. Het laat echt iedereen op de internet wiens website u zou bezoeken om uit te voeren willekeurige programma's op uw computer. Nu gelukkig, Microsoft zeer onlangs een oplossing voor dit omdat het probleem daadwerkelijk getroffen Internet Explorer 6 helemaal tot en met 11. Dus het is bij ons al geruime tijd en werd pas onlangs ontdekt. Dus als je automatische updates ingeschakeld, moet je snel zijn OK. Maar gewoon veilig te zijn, kon je zeker overschakelen naar een andere browser tenminste in de tussentijd. Nu blijkt ook dat Microsoft zeer royaal bracht ook een fix voor Windows XP, een oudere versie van Windows waarvoor steun was eigenlijk officieel gestaakt slechts een paar weken geleden, maar deze dreiging was zo slecht dat ze ook uitgerold een oplossing voor dat OS ook. Nu in ander nieuws deze week was dit. De Atari 2600, een oudere spel console die een neef van mij eigenlijk had opgroeien waarop we gebruikt om videospellen te spelen wanneer we zouden hun huis te bezoeken. Nu in ieder geval, waarom dit in de was nieuws was om de volgende reden. Terug in de jaren '80, het bedrijf achter dit apparaat, Atari, besloten om te begraven in een stortplaats in New Mexico een hele hoop oude games en handleidingen en als dat zou anders hebben onverkochte gegaan. Nu na verloop van tijd, de begrafenis van deze spelletjes uitgegroeid tot een beetje een stedelijke mythe. Mensen niet echt zeker weten of dit daadwerkelijk gebeurd zelfs hoewel, als mythe ging, het bedrijf had zelfs goot een laag beton op de top van alles in de storten om kinderen te voorkomen van daadwerkelijk geritsel doorheen, proberen om gratis video games. Nou, het blijkt dat een documentaire is nu aan de gang nu in 2014. En een team van graafmachines heeft geprobeerd te graven van de waarheid achter dit verhaal als het er inderdaad. En wat denk je ze gevonden? Nou, niet precies deze kerel, maar duizenden exemplaren van zijn spel, die werd uitgebracht samenvalt met de release van de film, E.T. De Buitenaardse. Dus inderdaad, maar in de afgelopen dagen tientallen en honderden, zo niet duizenden uiteindelijk van deze cartridges beginnen te worden opgegraven. Nu waarom hebben ze begraven dergelijke een duidelijk dwingende spel? Nou, het blijkt dat E.T. is eigenlijk bekend door velen gezien als de slechtste video game ooit. Voor een deel, want ze hadden zo weinig tijd om te ontwikkelen het spel voor dat bijzonder kersttijd, maar ook omdat het bijzonder moeilijk om te spelen. Dit, natuurlijk, smeekt de vraag, kunnen we het zien? Ja, dat kunnen we. Laten we eens een kijkje nemen. [Video game spelen] Nu was eigenlijk de afbeeldingen die mensen namen bezwaar om omdat inderdaad was de jaren '80 en dit was de stand van de techniek. Inderdaad, dit was mijn jeugd hier. Maar wat moeilijk was over dit spel was, een, u een film ET had rond het scherm, kijken voor die kleine pixels, die vertegenwoordigd Reese's Pieces. Maar de vangst is ook dat als je viel in die donkere ruiten, zou je in een val kuil die was eigenlijk heel hard en vervelend om uit. Dus zo werd begraven ET. Nu ook in de woestijn van laat was dit hier in Wyoming. Een kern, niet te verwarren met [? Kern,?] control center. En in feite, als je kijkt naar beneden er onder het beton de buurt van dit witte paal, er is eigenlijk een Minuteman III raket, een nucleaire raket, dat is eigenlijk beschermd door een technologie die lang niet zo modern als je zou hopen. Een Amerikaanse tv-show, 60 Minuten, onlangs onthuld dit. [VIDEO AFSPELEN] -Maar de apparatuur is oud. Dit, bijvoorbeeld, is een van de computers zou een lancering ontvangen bestellen bij de president. Het maakt gebruik van diskettes. De echt oude, grote. Voordat je hier beneden, je waarschijnlijk had nog nooit een gezien? -Ik zou nooit een gezien tot Ik heb in dit gat. [END VIDEO AFSPELEN] Nu als je denkt u hebt deze schijven gezien, die 5 en 1/4-inch schijven uit de jaren 1980, uh-uh. Dit is een 8-inch floppy schijf uit de jaren 1970. Nu CS50 eigen Dan Coffey en ik had ook een kans te reizen naar Seattle, Washington onlangs waar bezochten we onze vrienden bij Valve. In feite kan je 60 seconden van mij herinneren het dragen van die virtual reality bril. Nu hadden we ook een gelegenheid om chatten met drie ingenieurs Valve's die naar ons sprak over wat het is om te werken bij Valve, maar beter nog, hoe het is graag video games te ontwikkelen. Laten we eens een kijkje nemen. [VIDEO AFSPELEN] [Video game spelen] -Mijn naam is Brian Jacobson. Ik maakte mijn weg naar Valve soort in een enigszins omweg. Ik was niet echt een computer programmeur op de universiteit. En ik werd gebruikt om een ​​back- op de middelbare school wezen in staat om de programmering te doen en spullen van idee tot implementatie in slechts een paar minuten of uren. Ik heb genoten van dat snelle tempo van ontwikkeling en het zien van mijn ideeën tot leven komen. -Mijn naam is Yahn Bernier. Ik ben hier al bij Valve meer dan 16 jaar. Dus ik belandde net voor het schrijven van plezier een level editor voor Quake riep BSP, op basis van binaire ruimte partitioneren bomen. Dat was een soort van het voorgerecht. En uiteindelijk Gabe Newell, die de was oprichter van Valve, en Mike Harrington stuurde me een email te zeggen software development engineer kans. -Mijn naam is John Cook. Ik ben een software engineer werken bij klep. Ik focus op onze online systemen, scaling, en architectuur. Een vriend en ik eigenlijk in universiteit waren werkt aan een spel genaamd Team Fortress. En we gewoon het spel gemaakt, zet het op internet. Het was een aanvulling op de spel, Quake, tegelijkertijd. Dus het was een soort van moderne uitbreiding van dat spel. Daarna belandden we in contact komen met Valve en komen hier voorbij. -Nou, voor mij de graphics klas was waarschijnlijk de meest toepasselijke cursus die ik op de universiteit zeker. Trigonometrie, lineaire algebra. Ik nam een ​​robotica cursus die een had bos van lineaire algebra soort gebakken erin, en dat is een van de sluitsteen wiskundige concepten voor een 3D-graphics. Het draait allemaal om oriëntatie en het doen van de wiskunde van zoals, ik ben op zoek dan naar jou, maar ik wil daar richten. En hoe kan ik draaien en hoe kan ik erachter te komen waar ik ga verhuizen of op zoek bent. Dat is alles wat lineaire algebra. -De essentie van een first-person shooter is dat ik kijk door het pistool plaatsen met mijn ogen en gericht op iets en haal de trekker en ik wil dat raken. Dus je moet het ontwerp van uw technologie te behandelen latentie. En dus John Carmack ging terug en zei, oh, wat ik moet doen is te voorspellen op de client de resulteren ingangen van mijn speler, en dat te doen en maken van waar we denk dat hij het gaat worden en dan laten de server terug te komen en te repareren voor mij. -Dus als je denkt over het gebruik van een game-engine om een ​​spel te maken, Er is nu veel meer opties. -Een game-engine is een soort van de infrastructuur waarin je het spel te maken. Het is het ding verantwoordelijk voor tekenen de wereld, de wereld simuleren voor het afspelen van alle geluiden, voor het helpen van je spel code erachter te komen wat de vijand AIs gaat om te gaan doen. -Meestal is de manier waarop mensen zouden beginnen is zouden ze een bepaalde hoeveelheid van die logica te nemen en te wijzigen. Zoals, OK, laten we nu gewoon veranderen de raketwerper 200 schade doen in plaats van het doen van 100 schade. Het is een heel eenvoudig, zoals, neem sommige bestaande stukje gameplay logica en tweak het hoe je wilt. -De andere hogere laag wordt meestal aangeduid met spel-code. En het spel code is meestal de wat dat is alles over de spelregels. Net als het feit dat ik dit bijzondere wapen en het werkt op een bepaalde manier. Of het feit dat er een headcrab monster dat heeft deze specifieke gedragingen. Dat soort dingen zijn meestal te vinden als spel code. -En van daar, echt, met die soort stukken en het proces van iteratie, je kan gaan van iets als Quake om iets als Half-Life. Half-Life is een sci-fi, first-person shooter game. Het speelt zich af in een dystopische wereld. De eerste Half-Life werd in deze ondergrondse onderzoeksfaciliteit genaamd Black Mesa. En je een personage gespeeld genaamd Gordon Freeman. En het was eigenlijk over een buitenaardse invasie die werd uitgelokt wanneer een experiment ging het mis. En de tweede game, Half-Life 2, werd ongeveer 10 jaar later ingesteld, en eigenlijk, de aliens had overgenomen van de planeet. En nu heb je als Gordon Freeman moest principe redden je vriend, Alex, wie je tegenkomt. En proberen terug te winnen van de vreemdelingen en het vrijmaken van de planeet. -Zeker, projecten zoals Portal 2, het was gewoon een klein team, vijf mensen werkt aan een spel idee. Ze vond een aantal dingen die ze gedachte waren interessant, interessant zou kunnen zijn voor een spel. Ze uitgebreid tot 20 personen. Ze uitgewerkt die ideeën. Je nog wat meer mensen. Ze zijn als, OK, en nu zijn we wilt verzenden op drie consoles. We hebben veel meer mensen. Net als iedereen, kom kijken naar dit spel. Het is geweldig. Het moet gewoon een stelletje van het werk gedaan te krijgen. Dus opeens heb je de helft van het bedrijf werken, je hebt 120 mensen die werken op dit spel om het gedaan te krijgen. Uiteraard is het aantal projecten elders contracten, maar iedereen is super gelukkig omdat ze weten ze werken aan deze ding dat is echt geweldig. -Een van de echt grote dingen over deze baan en deze industrie in het algemeen is dat de dingen veranderen de hele tijd. Het ding dat je bent doet dit jaar gaat zeer moeilijk van de te wat je het volgend jaar doen. En zo blijft alles echt vers, eigenlijk, en behoorlijk spannend. Je bent voortdurend leren van nieuwe dingen en doen nieuwe soorten dingen. [END VIDEO AFSPELEN] DAVID: Dat is het voor CS50LIVE. Heel erg bedankt voor deze medewerkers week. Hartelijk dank aan de eigen Colton CS50's Ogden en het team achter de camera. Dit was CS50. [MUZIEK - LOS DEL RIO, "MACARENA"]