DAVID J. Malan: Tak jo, tak tohle je Myo rameno kapela, pár, který jsme mít pro CS50 závěrečných prací. A to byla demonstrace jsme ve frontě si s předstihem kde v podstatě to docela těsné ramenem sem poslouchá vaše svalové pohyby které jsou pak mapovány v softwaru na Colton je notebooku přes tu, která měl iTunes a song už ve frontě. Spíše než já demoing to, Colton to už v laboratoři jasně celý týden dostat demonstrace připraven pro jednoho odvážného dobrovolníka. Pokud by někdo chtěl, aby se na up-- viděl svou ruku jako první. Pojď nahoru. [00:01:09] Dobrá. A jaké je vaše jméno? [00:01:13] Publikum: Uh, Maria. [00:01:14] DAVID J. Malan: Maria, rád vás vidím. Pojď sem. Dovolte mi, abych vám představil Colton. Colton, to je Maria. [00:01:21] COLTON: Ahoj, rád vás poznávám. [00:01:23] DAVID J. Malan: All Dobře, tak první krok, že jsme bude muset umístit to na předloktí tak, že je to docela přiléhat u vašeho lokte. A mezitím, pojďme se kladen na naší Google Glass a budeme míchat technologie dnes. [00:01:33] COLTON: Nejprve budeme muset háček to do věcí. [00:01:36] DAVID J. Malan: OK. Ve skutečnosti, pojďme dát ruku as v blízkosti tohoto kabelu, jak je to možné takže můžeme nejprve synchronizovat jej. [00:01:41] COLTON: Jdeme na to. [00:01:42] DAVID J. Malan: A mezitím, tak že každý může získat bližší pohled, budeme přehazovat Ondřeje fotoaparát na obrazovce tam. Takže máme USB kabel, který je je zapojen do Mariina pásku. A dovolte mi hodí obrazovku Colton se nahoru na projektoru další. [00:02:00] Takže Colton je registrace zařízení nyní jako Myo připojený k tomuto kabelu. A teď to, co Maria je dělat chvíli je vlastně projít kalibračních kroků a učit software jak se jí svaly reagovat když se ujistil, předem definované gesta, která software chápe. Pokud byste chtěli jít Přední část obrazovky. OK, dál snažit. [00:02:30] COLTON: Jděte takhle. A stejně jako to. A úplně na pravé straně. Vraťte se zpět. [00:02:35] DAVID J. Malan: OK. Jiný pohled. Je to ne. Je to na nás. [00:02:40] MARIA: OK. DAVID J. Malan: Ne Pojďme to posunout výš, takže je to blíže k lokti, a ještě pevněji. Dobrá. [00:02:52] Jdeme na to. To by byl dobrý čas na CS52X. Tak jdeme. [00:02:57] Velmi pěkné. OK. Palec na malíček. [00:03:02] Velmi pěkné. Roztáhněte prsty. Dobře. Wave pravdu. Je to kupodivu ukazuje jste s levým hand-- [00:03:17] COLTON: Jo, to je divný. DAVID J. Malan: Wave na vpravo a vpřed. Rychlý posun vpřed přeskočit nebo vedle. To je v pořádku Wave pravdu. [00:03:25] MARIA: Já ne-- čekat. [00:03:26] DAVID J. Malan: Potřebujete pomoc? [00:03:28] COLTON: Takže jdeš takhle. MARIA: Je to otáčení Další věc, když. COLTON: Je to tak. DAVID J. Malan: Jo, já nevím, proč se to ukáže vám leftie. COLTON: Proč si try-- Jen se snažím jít takhle. [00:03:38] DAVID J. Malan: Ne? Možná dosáhnout ruku se trochu narovnal a dělat to mnohem dříve, jako je tento. Jo, OK, no tak. [00:03:48] MARIA: Je mi to líto. DAVID J. Malan: Není to tvoje vina. COLTON: To je v pořádku. DAVID J. Malan: All Right. Well-- [00:03:56] MARIA: Měli bychom přeskočit, a pak? DAVID J. Malan: Ano, pojďme Nechte si vyvěšen. Takže pokud by někdo chtěl dělat závěrečný projekt pomocí tohoto ostří hardware, uvědomit, že jediné co trvat trochu zvykat. A tohle-- realita je to Je to vlastně velmi drsně. [00:04:10] To je to, co se nazývá developer kit, který má být v podstatě předem uvolnění takže lidé mohou dělat přesně to, tohle-- bojovat s ním, postava jak těla lidí pracovat s technologií. Takže pokud chcete poté, po přednášce, můžeme vám přijít a vzít další stab na to. Ale jinak, potlesk, je-li Mohli bychom Maria přišla na up. [00:04:26] MARIA: Děkuji. [00:04:28] DAVID J. Malan: Děkuji. Budeme viset na to, ale budeme dávat you-- jak o stresu míč tady? Oh, a- if-- jo, díky. Dobrá. Takže zvědavý, pokud jste byli obeznámeni s rozumnou volbu že tam z dříve, úžasný TV ukazují, že byste měli absolutně být nárazově sledování na Netflix je to jeden tady. [00:04:51] SPEAKER 1: Dámy a pánové, kouzelník s názvem Josh. [00:05:04] DAVID J. Malan: A zdá se, že je to věc mi textu během přednášky teď. Mi bylo řečeno, že Maria měl včera narozeniny. Tak všechno nejlepší k narozeninám od CS50 Marii stejně. [00:05:18] Takže jste možná četli v poslední měsíc že to pánové zde, Steve Ballmer, který byl ve skutečnosti třída z roku 1977 na vysoké škole, Nedávno odešel pro Microsoft. Byl student zde, pak pár let později se ocitl v Stanford Business School když dostal telefon volání z jeho přítel kdo žil chodbou od něj tady na Harvardu. Jména přítele byl Bill Gates, a v té době, se snažil naverbovat Steva být první obchodní osoba, opravdu, na malé firmy název Microsoft. [00:05:45] Dlouhý příběh krátký, Steve byl nakonec získal, připojil Microsoft, když se měl jen 30 zaměstnanců. A v době, kdy odešel docela nedávno, měla společnost 100.000 zaměstnanců v posledních několika letech. A tak web známý jako The Verge připravila tento hold na videu že jsme si mysleli, že sdílené, které vám dává pocit, jak moc energie Steve přináší všechny prezentace dává. [VIDEO PŘEHRÁVÁNÍ] -Microsoft To jako čtvrté dítě. Děti dělat opustit dům. V tomto případě, myslím, že Odcházím z domu. Hej Bille, whazzap? [00:06:23] -Wazzap? [00:06:24] Hej, wazzap? Jsme dostali obrovská příležitost. A Bill nám dal tuto příležitost. Chtěl bych poděkovat Billa za to. Chci, abys taky. Tempo inovací se nebude zpomalovat. [00:06:42] Je to dostane rychleji a rychleji. Tam by mohlo být několik konkurentů které jsou bohužel odstraněny! [00:06:54] Miluji tuto společnost. Ano! Jsem PC, a mám rád tuto společnost! [00:07:08] Vývojáři, vývojáři, vývojáři, vývojáři, vývojáři, vývojáři, vývojáři, vývojáři. Ano! Weboví vývojáři! [00:07:19] Weboví vývojáři! Weboví vývojáři! Poslechněte si, co ještě dostat bez příplatku! [00:07:28] MS-DOS výkonných, jmenování kalendář, karta hromada, poznámkový blok, hodiny, ovládací panel. A můžete věřit? Reversie! [00:07:35] Vypálit na CD! Po nich na MSN! Můžete nám je zašlete přátelům! [00:07:40] Vše s jedním kliknutím! Jeden Microsoft, jedna strategie, jeden team-- soustředěný, disciplinovaný, profesní, a odborník na všechno, co děláme. Dovolte mi, abych linku ze starého filmu. [00:07:52] Vztahy jsou jako žraloci. Oni se pohybují vpřed nebo zemřou. Vlastně si myslím, tech společnosti jsou stejné. [00:08:01] [END VIDEOPŘEHRÁVÁNÍ] DAVID J. Malan: Tak my jsme tak rádi, že oznamujeme, že Steve bude nám připojí zde CS50 příští středu na obvyklé místo a čas zde. Prostor bude pravděpodobně omezený. A tak se k nám připojili osobně, prosím hlava dnes nebo krátce poté na cs50.harvard.edu/register. [00:08:22] A budeme sledovat od Úterý potvrzení skvrny. Můžete se těšit na to další Středa při přednášce v CS50. Nyní, v jiných zprávách, jsem se náhodou narazit na toto v Crimson jen druhý den. [00:08:34] Ukazuje se, že jeden z pracovníků CS50 je a alespoň jeden z jeho žáků CS50 je v současné době běží na UC prezident a viceprezident, který mě přivedl zpátky na mých dnů zpět když jsem prohrál volby UC nešťastně. Ale útěchou v tom, že je vždycky říct, příběh je to, že jeden ze jsem si jistý, mnoho důvodů, proč jsem ztratil volby byl naprostý nedostatek o talentu pro mluvení na veřejnosti. A tak zcela upřímně to, jel mi, že zkušenosti Myslím, že můj mladší rok, skutečně podepsat up pro Harvard Computer Society, která je skupina na akademické půdě, které pořádá různé technické jednání a další věci. A já jsem převzal svou výuku semináře, a proto měl příležitost, skvělá příležitost, začít pracovat na právě toto. Ale také jsem měl možnost Během této zkušenosti učit sám o to více HTML. A tak jsem odkládal včera večer hledá prostřednictvím internetových stránek HTML na bázi Udělal jsem dovnitř jako 1997 '98 pro můj kampaň, která vypadá jako tohle. Já vím. [00:09:29] Protože-- a samozřejmě, oznámení tento úžasný návrh rozhodnutí v roce 1998 nebo kdoví co ještě. První věc, kterou chcete, aby uživatelé udělat při návštěvě svých webových stránek je muset klikněte na další odkaz jen zadejte své stránky s mnichem za jako zahalené oponou, kde zřejmě moje kampaň platforma byla. A to je vše, co dostanete dnes je jen screenshot. Ale já jsem pročítal, jako, Moje kampaň plakáty poslední noc a můj platformu. [00:09:50] A já jsem byl tak naštvaný, v té době. Můj platforma was-- to bylo zajímavé. Tak jsem se uklidnil od té doby. Ale jednou, budu znovu spustit a snad lépe tuto dobu. [00:10:03] Tak HTML, který jazyk, ve kterém jsem že in-- budete brzy dělat mnohem more-- je něco, co jsme byli mluví o pozdní a do značné míry braní za samozřejmost nyní že jsme se přesunuli do jiných jazyků. Ale pojďme pozastavit na chvíli a dát některé z těchto věcí v souvislostech. Takže ve větě, co je HTML? [00:10:18] Nebo, co se používá? Každý, kdo? Ano. [00:10:20] Diváků: Markup pro webové stránky. DAVID J. Malan: Markup pro webové stránky. Takže je to značkovací jazyk, který umožňuje strukturovat webovou stránku. Header jde sem, titul jde tady, tělo se dostane zde. To tučný, to je italics-- tento druh detailu. [00:10:33] OK, dobře. Takže CSS umožňuje you-- a já se některé svobody zde s tučným-obklad a kurzívou následujících důvodů To už je lepší realizovat s tím. CSS je-- co? Řekněme, že ve větě. Každý, kdo vůbec. Jo. [00:10:46] Diváků: zdobení a věci, jako jak to navrhnout. DAVID J. Malan: OK, dobře. Zdobení, které vám umožňují navrhnout, nebo stylizovat ji s věcmi, jako je tučné písmo a kurzíva a barvy, a také jemnější jemnozrnný umístění prvků. Tak nějak vám umožní vzít věci do Poslední míle tak, aby v případě, například, v Pset7, možná jste si všimli, na vašem portfolio strana, pokud jste na tomto místě již, že výchozí tabulku, která vám aby ukázat držení zásob uživatele a cash asi vypadá docela odporná Ve výchozím nastavení se žádné bílé místo. Všechno je trochu přeplněné společně v řádcích a sloupcích. [00:11:18] No, s trochou CSS, jak jste si možná uvědomíte, můžete skutečně vyladit to a dělat to něco mnohem známější a mnohem hezčí na pohled. Takže CSS je o stylizace webových stránek. Ale pak jsme ještě další představen jazyk, PHP, který nám umožňuje dělat co? [00:11:36] Pojďme jen to, co? Kdokoliv. Musím Zajít Prvních pár řádků. Jo. [00:11:40] Diváků: Generovat dynamický obsah. DAVID J. Malan: Perfect. Generovat dynamický obsah. A můžete to provést v libovolný počet jazyků. Náhodou používat PHP, protože je to v části, takže podobně jako syntaxe C. [00:11:50] Ale PHP dělá přesně to. To vám umožní dynamicky generovat výstup. A některé z těchto výstupů může být HTML, jak jsme běžně dělali. A je to také proto, že je programovací jazyk, je mechanismus, prostřednictvím kterého můžeme mluvit s databází. [00:12:03] A můžeme dotazy na ostatní servery jako Yahoos a programově dělat cokoliv Opravdu, které byste jinak chcete přimět počítač dělat. PHP tak nám umožňuje začít dynamicky výstup obsahu. Takže této logiky, jsem neměl dynamický web v roce 1998. [00:12:16] Byl to jen statické webové stránky. Můj obsah musel být změněn ručně gedit nebo nějaký ekvivalent. Ale PHP je to, co jsme použili, nebo mohli použít spíše něco jako Webové stránky Frosh IM, který měl vzít registrace a spravovat seznam users-- věcí, které jsou skutečně přepnutí čas, i když se stalo, používat Perl, jiný jazyk v té době. [00:12:35] A pak konečně, jsme zavedli SQL-- Structured Query Language. Přesto tak jiný jazyk která je použita pro co? Používá se pro co? Můžeme pustit slight-- OK, nebudeme dostat mnohem dál než orchestru zde. Diváků: Je to protokol použije pro komunikaci s databází. DAVID J. Malan: protokol použije pro komunikaci s databází. Dovolte mi, abych vyladit. Je to přirozený jazyk použitý mluvit databases-- vybere a vložky a odstraní a aktualizace a ve skutečnosti dokonce i více funkcí, které Ještě jsme ani potápěl do, ale budete chtít mít explore-- prozkoumat, řekněme, závěrečný projekt. Takže tam jsou tyto různé kousky. [00:13:09] A doufejme, že Pset7, i když jeho specifikace je poměrně dlouhá, je to záměrně dlouho, aby vás díky, jak se tyto věci mohou všichni být zadány společně. Teď v pondělí jsme představil svou poslední jazyk že budeme formálně zavést do course-- to je, JavaScript. To, stejně jako PHP, je interpretovaný jazyk. [00:13:25] Ale klíčový rozdíl Navrhl jsem v pondělí je to, že zatímco PHP je provádění nebo vykládá na serveru, který v tomto případě je CS50 spotřebiče, nebo by mohl být nějaký komerční web serveru na internetu, JavaScript obecně je jazyk, který běží na straně klienta ne serveru side-- tak v prohlížeči. Což znamená, že stejně jako když jsem otevřel up Facebooku zdrojového kódu a zjistil vše těchto JS souborů, vyplývalo, že při návštěvě Facebook nebo nejvíce webové stránky v těchto dnech, získáte nejen HTML, CSS nejen, ale celá parta JavaScriptu Kód často ve formě JS souborů. A pak je to browser-- vlastní Mac nebo PC--, který provádí tento kód. [00:14:03] Váš prohlížeč spustí jej. Můžete si myslet v jakési karantény. Tak, že kód JavaScript by neměla být moci odstranit soubory na vašem počítači. Nemělo by být schopni posílat e-maily vaším jménem. Váš prohlížeč druh omezuje Co můžete dělat s ním. [00:14:17] Takže v tomto smyslu, je to trochu méně silný, možná, než C. Ale JavaScript může, as stranou, používat na serveru, když budeme nemají tendenci mluvit o to v tomto kontextu. Takže teď pojďme svázat tyto spolu. Týden navíc dávno, jsme představili některé HTML na left-- Super nudné webové stránky. [00:14:34] Jen říká, hello world. A pak jsem navrhl na právo můžeme trochu krást nápady z naší diskuse datové struktury v C a přemýšlet o tom, jak tento hierarchický značkovací jazyk na levé straně by mohly být zpracovány, nebo realizovány v paměti jako skutečné stromové struktury s uzly a ukazatele a ty druhy detailů. Na pravé straně, říkáme že se DOM-- dokumentu Objekt Model-- což je jen ozdobný způsob, jak říkat strom. [00:14:56] Nyní, proč je to užitečné myslet na to tímto způsobem? Protože teď se JavaScript, protože máme kód, který se dostane do hry v tomto prostředí, aktuální HTML, který je byla odeslána do prohlížeče a už má již byl načten do paměti prohlížeč do stromu ve vašem počítači RAM takhle, můžeme použít JavaScript skutečně přejít nebo jít pěšky nebo hledání nebo změnit DOM strom však chceme. Takže ve skutečnosti, pokud si myslíte, o facebook.com, Použijete-li funkci chatu, pokud máte Použití Gmail a funkce gchat, něco, kde máte zprávy znovu a znovu přichází a znovu, tyto zprávy jsou pravděpodobně, jako, LI tag, List Item tagy, možná. [00:15:35] Nebo možná, že to jen divs, které udržují objevovat pokaždé, když se dostanete rychlou zprávu. A tak to jen znamená, že to, co Facebook nebo Google dělá se kdykoliv dostanete zprávy ze serveru, jsou pravděpodobně používáte JavaScript jen přidat další uzel to tree-- další uzel na to strom, který vizuálně jen vypadá jako nový řádek textu na obrazovce. Ale oni vložení do této datové struktury. [00:15:57] Takže ve třídách, jako CS124 a další, budete vlastně napsat více kódu proti datové struktury jako je tento. Ale teď v JavaScriptu, budeme jen předpokládat, dostaneme všechny tyto funkce zdarma z jazyka samotného. Takže pojďme se podívat na příklad. [00:16:09] Dovolte mi, abych otevřít soubor s názvem form.html. Je to super jednoduché. Prostě to vypadá takto. [00:16:15] Ne CSS, žádná myšlenka na estetiku. Je to čistě funkční a zřejmě jsem žádá o e-mail, heslo, znovu heslo a pak kontrola souhlasit s některými podmínkami. Co zdrojový kód pro tento vypadá to je asi něco asi tušíte s trochu přemýšlení teď. Mám tag formuláře zde. [00:16:32] Akce se zřejmě chystá přejít do souboru s názvem register.php. Metoda budu používat, je dostat. A pak jsem dostal text pole, jehož jméno je e-mail. [00:16:40] Mám pole hesla jehož jméno je heslo. Mám další Heslo pole, jehož jméno je poněkud libovolně potvrzení. Je to jen další parametr HTTP. [00:16:49] A pak jsme jsme nepoužívají tyto, s výjimkou protože Frosh IM demo v class-- zaškrtávací políčko, které je jen typ rovná kontrolu. A já zavolám tuto dohodu. Takže jsem trochu libovolně, ale vhodně pojmenovaný těchto polí. Tak, že teď, když tato forma dostane předloženy, podívejme se, co se stane. Pokud mám malan@harvard.edu, Udělám heslo karmínové. Udělám heslo nic. Pojďme nespolupracuje. [00:17:10] A nebudu zaškrtněte políčko. Dovolte mi, abych na tlačítko Registrovat. A říká, hm, jste zaregistrován. Ne tak docela. [00:17:16] Ale URL změnilo. Takže tato forma byla jasně povolen předložit register.php. Ale pravděpodobně bych měl být zachycení některé z těchto chyb. Nyní, v Pset7 a některé z našich příkladů přednášky, bychom obecně vytisknout velké červené chybové hlášení zde říká, chybí jméno, nebo chybějící heslo. Udělali jsme, že před a máme done detekce chyb na straně serveru. [00:17:37] Ale mnoho webových stránek, v těchto dnech dělat detekci chyb na straně klienta kde URL nemění. Celá stránka neobnoví. Získáte okamžitou zpětnou vazbu z prohlížeče. Možná, že se něco červeně. [00:17:48] Možná dostanete pop-up. Ale nemusíte ztrácet čas odesílání datový server, který je neúplný. Takže pojďme se podívat, jak bychom mohli dosáhnout tuto funkci stejně. [00:17:56] Nech mě jít do form1.html, která vypadá stejně. Ale když tentokrát jsem dělat malan@harvard.edu a píšu crimson a nemám dále spolupracovat ale klikněte na tlačítko Registrovat, všimnete hned. Není to sexy řešení. Já jsem alespoň zachytil tuto chybu. A já jsem použil záznam Funkce v JavaScript-- které jsme použili pouze ve třídě. Obecně platí, že byste neměli používat tento protože to může velmi rychle dostat ven kontroly. Ale hesla se neshodují, je chyba. [00:18:19] Nech mě jít napřed a klepněte na tlačítko OK. Ale to, co klíč stánek s jídlem zde je, že adresa URL nezměnila. Takže jsem se neobtěžoval plýtvání čas serveru a dotázal se ho otázka, kterou bych mohl mít přišel na to odpověď pro sebe. [00:18:30] A uživatel, i když Mluvil o tom delší než uživatele bude přemýšlet o tom, bude mít okamžitou zpětnou vazbu. Není latence se připojení k síti. Takže pojďme se podívat na tohoto zdrojového kódu. [00:18:40] Form1.html vzhled strukturálně podobné tady. Forma je v podstatě stejný. Ale pojďme se podívat, co jsem udělal tady. A je tu různé způsoby, jak toho dosáhnout. A já jsem udělal nejvíce rovně následovník, ale nejelegantnější způsob, jak ještě. Mám tag script. Pak jsem volat document.getElementById ("registrace"). A já uložit tuto hodnotu ve formě, proměnná. [00:19:04] Takže to, co jsem to udělal? Můžete si myslet document.getElementById jako speciální funkce, která JavaScript vám dává které doslova podá vám Ukazatel na jednom z uzlů nebo obdélníky v této větvi. Takže teď, že je to, co naše forma proměnná v JavaScriptu je ve skutečnosti ukazuje na. [00:19:21] Takže teď syntaxe je odlišná od C. Ale děláme pár věcí zde. Jeden z nich, tohle je trochu divné hledáte, jistě proti C. Ale podívejte se na řádku 35. Tak na levém form.onsubmit. Připomeňme si, že je onsubmit jako pole v struct. Pokud si myslíte, že proměnné formuláře je zrovna C struct, to by mohlo mít nějaké pole. [00:19:42] Zpět v den, jsme měli studenti jména, ID, domy, tyhle polí. Jen pomyslete na onsubmit jako další pole. Ale je to zvláštní, protože pole prohlížeč je předem naprogramován očekávat .onsubmit nebýt hodnotu jako číslo nebo řetězec, ale ve skutečnosti je funkce nebo adresa funkce v paměti počítače. [00:20:02] A vskutku, to je to, co toto klíčové slovo tady dělá. To říká, dejte mi novou funkci. Ale to, co je jeho jméno bude zřejmě? [00:20:09] Vzpomínal na pondělí. Jaký je název tohoto na základě této syntaxe funkce? Ne, myslím, že to jasně no name associated-- jistě ne v tom, co jsem tu zvýrazněny. [00:20:21] Ale to je vlastně v pořádku. To je anonymní funkce, nebo funkce lambda jak by si někteří mohli nazvat. A to právě znamená, je to stále funkční. Je to jen, nemůžete říkat jménem. Ale to je v pořádku. Vzhledem k tomu, opět, prohlížeč je předprogramována společnostmi jako Google nebo Microsoft nebo Mozilla nebo třetí osoby ke jen vím, že pokud .onsubmit pole uvnitř formulářový prvek má hodnota, zacházet s ní jako s function-- ukazatel na funkci, chcete-li. A volat, když je formulář. [00:20:46] Takže to, co kód by měl být vykonán pokud je formulář zaslán? Zdá se, že vše, co uvnitř složená závorka. A to je jen stylistické. [00:20:53] Dalo by se to líbí máme tendenci dělat v CS50. Ale v JavaScriptu, většina lidí mají tendenci, aby ji udrželi na stejném řádku jen proto, že jasněji je spojené s touto funkcí klíčových slov. Takže co teď dělám? [00:21:03] Pokud form.email.value rovná rovná prázdný řetězec, nebo nic, tady je upozornění, kde jsem chtěl říct, je nutné zadat e-mailovou adresu, a pak se vrátit false. A to, že return false že zabraňuje formulář z jejich předložení. Mezitím, v případě, že hodnota je heslo prázdný, budu křičet na uživatele a říkají, musíte zadat heslo. [00:21:21] Mezitím, co jsou stále trochu milovník zde. Pokud není form.password.value rovná form.confirmation.value, jiné pole, křičet na Uživatel, který hesla neodpovídají jako oni ne před chvílí. A pak tohle je trochu víc sexy, protože jsem vím, že jsem věděl, že koncepčně kontrolovat je název zaškrtávací políčko je. [00:21:40] Tak jsem se použít jen výkřik bod říci, zda kontrola není checked-- je to Boolean hodnota true nebo false-- Budu křičet na uživatele z tohoto důvodu. V opačném případě, pokud se dostaneme přes všechny tyto podmínky, řekněme, vrátí hodnotu true. Nechte forma být předloženy. A to se pak stane. [00:21:56] Pojďme zadejte rudě. Nechte zaškrtněte políčko, klepněte na Registrovat. A teď jsem se projít na místo určení. Teď tam není žádná databáze. Tu nic zajímavého v register.php. Jen jsem potřeboval něco skutečně mluvit. Takže mi dovolte pozastavit, zde. Jakékoliv dotazy týkající se toho, co jsme právě udělali nebo to, co někteří z této nové syntaxe je? OK, jo? [00:22:17] Diváků: Jakékoliv políčko je automaticky Boolean. Nemusíte deklarovat to takhle. [00:22:21] DAVID J. Malan: Správně. Každý checkbox, který je poslán, aby vás od HTML forma kódu JavaScriptu bude zacházeno, ano, as Boolean value-- true nebo false. To je dobrá otázka. Vzhledem k tomu, jiné hodnoty, o Samozřejmě, že byli text, AKA řetězce. [00:22:36] Dobře, tak ať mi přetočit kousek dál. Jaký byl celý smysl tohoto? Jen aby bylo jasno. Stejně jako už víme, a to i od Pset7 a dokonce i minulý týden přednášky Příklady, které lze samozřejmě zkontrolovat $ _GET $ _POST, Zda uživatel dá nám prázdná hodnota. Vzpomeňte si na prázdnou funkci v PHP. [00:22:54] Takže jen aby bylo jasné, co je jeden důvod, proč by také chtějí dělat tuto kontrolu chyb uvnitř prohlížeče? Co je to motivace tady? Jo. [00:23:06] Publikum: Rychlejší a vy ne Poslat zbytečné data na server. DAVID J. Malan: Dobrý. Je to rychlejší. Nemusíte posílat k ničemu dat na server. [00:23:12] Tak se dostanete zpět více okamžitá odezva. A celkově uživatel zkušenost je lepší. Přemýšlejte o alternativu. [00:23:17] Je-li pro Gmail-- a byl případ před mnoha lety. Předpokládejme, že máte nový e-mail Gmail účtu, ale jediný způsob, jak prostřednictvím vidět, že je, stejně jako, znovu načíst celou stránku. Nebo Předpokládám, že kliknete na odkaz přečíst e-mail. [00:23:29] Vše musí znovu tak které můžete vidět na e-mail. Nebo Facebook-- dostanete zprávu chatu. Nevidíte jej, dokud znovu stránky nebo klikněte na nějaký odkaz. [00:23:36] Jako by to bylo strašně nepříjemné uživatelské zkušenosti. A to je to, co to bylo, jasně, když jsem se ucházel o UC a web byl mnohem méně dynamický a JavaScript nebyla tak propagován jak to je nyní. A věci jsou stále hodně dynamičtější a mnohem více na straně klienta v tomto smyslu. [00:23:49] Ale je tu jeden háček tady, a To je druh nepříjemný Gotcha. Jen proto, že jste přidat na straně klienta Detekce jako to neznamená, můžete nebo měl opustit detekce na straně serveru. Jste v podstatě chce, aby vaše Kontrola chyb na obou místech. Vzhledem k tomu, co bylo jednou o poučení z článku jsem četl některé výňatky z této hloupé CMS system-- Content Management System--, která byla provádění své autentizační systém, jeho přihlášení přes jaký mechanismus? JavaScript. [00:24:20] Diváků: JavaScript. DAVID J. Malan: JavaScript, přesně, je to tak? To bylo pomocí JavaScriptu. A doslova, vy máte hrál trochu pravděpodobně s Chrome Inspector. A když ji najdete, zkontrolujte, zda prvek. [00:24:30] Nech mě jít nad to udělat vše o možnostech Chrome. A to je to, jak snadné je vypnout JavaScript v prohlížeči. Podívejte se, nic víc JavaScript. [00:24:38] Takže spravedlnost, hodně pásu v těchto dnech se právě chystá zlomit, protože Gmail a další sites-- Facebook-- předpokládat, že JavaScript je povoleno. Ale pokud děláte něco hloupého jako pouze ověřování uživatelů vstup a kontrola je pro Chyby na straně klienta, protivník může snadno udělat. A pak ještě chytřejší protivník, jako že vy Nyní by se použít Telnet nebo zvlnění nebo příkazy pouze z příkazové řádky a skutečně posílat zprávy na server že podobně nejsou Chyba kontrolovány. [00:25:05] Tak to je více Rozhodnutí uživatelské rozhraní než je skutečný technický improvement-- provádění na straně klienta něco takového. Takže teď rychlý pohled, ale pak Budu odložit na on-line procházku až na tento jeden. V podobě dvou, jsme vlastně prošli a vyčistit kód trochu. Ale dovolte mi, abych odložit do jednoho videí my budeme pravděpodobně vložit do Pset8, že právě vám ukáže, podobné syntaxe pomocí knihovny s názvem jQuery, což je super, super populární knihovna v jazyce JavaScript že upřímně řečeno většina lidí stačí použít v těchto dnech a dokonce zmást jako bytost JavaScript sám. [00:25:37] A má tendenci se zapojit Některé dolaru a klíčová slova jako dokumentu zde v závorkách. Ale opět, dovolte mi, abych odložit na některé pomalejší cvičení on-line spíše než dostat svázaný jen v syntaxi. Pojďme se přesunout na něco málo chladnější z hlediska aplikací to. [00:25:50] Tak především, nech mě jít dopředu a otevřít tohle. Pojďte dál. Tak jdeme. [00:25:59] Dovolte mi, abych otevřít tento obrázek zde. Zbytečně komplikovaný hledat, ale popisuje techniku ​​zvanou AJAX-- Asynchronní JavaScript a XML, kde X XML je ve skutečnosti již skutečně používá. To inklinuje používat něco co nazýváme JSON. [00:26:13] Ale tady je to, jak něco jako Google Maps nebo Google Earth funguje. Zkusme to za běhu, ve skutečnosti. Nech mě jít napřed a otevřít up Chrome na mém prohlížeči. [00:26:21] A nech mě jít do, říkají, maps.google.com. A skutečně, pokud jste starý Stačí si pamatovat, co, jako, MapQuest byl jako zpět v den, a možná, že i nadále pracovat takhle. Pokud se používá k hledání something-- 33 Oxford Street, Cambridge, Mass, pojďme dělat tohle-- vás by ve skutečnosti, pokud máte chtěl posouvat nahoru a dolů, doleva a doprava, byste vypadat velká šipka na vrcholu, a to by vám jiný ukázat rám mapy se zde. Nebo byste klikněte na levé straně a by jít sem, nebo dalším kliknutím a vy byste jít sem. Ale místo toho tyto dny, jsme samozřejmě jen brát za samozřejmost, že můžeme jít kolem Cambridge docela rychle pouhým klepnutím a tažením myší. Povšimněme si ale, že je to nějaké závady. [00:26:59] Kdybych to dělat dost rychle, co se zdá být pravda jak jsem přetáhnout příliš rychle na počítači držet krok? Co vidíte? Jo. [00:27:07] Diváků: Pixely se neobnovují. DAVID J. Malan: body se neobnovují. Je tu actually-- a vás mohl vidět, ve skutečnosti, pokud sledujete on-line a pauza tento nebo dokonce zpomaluje věci dolů pro once-- uvidíte, že tam jsou dlaždice, čtverce, obdélníky, nebo že chybí z mapy do zlomek vteřiny později, další data, více obrázků ve skutečnosti se objeví na obrazovce. A ve skutečnosti, když jsme to tím, že hledá up Chrome's-- řekněme, Chrome-- pojďme se podívat. Nemůžeme to udělat. [00:27:31] Oh, pokřiky. Pojďme otevřít maps.google.com. Dovolte mi, abych se okno větší znovu. [00:27:36] Vraťte se do 33 Oxford Street. Co bylo na internetových stránkách jsem byl na v poslední době? Měl jsem, jako, soukromý chvástat se jsem, že bych pak rychlé zprávy Každý přítel, který byl on-line kdo chtěl slyšet. Je tu nějaká stránka. Myslím, že je to tak Comcast-- velmi velký americký ISP. Můžete při registraci nové vedení servisní modem nebo kabelová televize služby, mají tvar velmi rozumné kde se vás zeptá na Vaši adresu. A má to úžasné rys volal auto kompletní, jako je Google, který začíná vyplnit v odpovědi na vaši otázku. [00:28:04] Problém je, že oni dělají auto kompletní na prvních věcí, které zadáte. Takže pokud začnete psát v 33, vám ukáže, doslova každý dům v Americe, která začíná s číslem 33 před pokračováním očekávají, že budete psát více. Takže pokud zadáte 33 Oxford, pak ti to ukazuje všechny ulice v Americe, který má 33 Oxford v jeho jméno, a to bez ohledu na město že jste v. [00:28:25] A pak budete pokračovat v psaní. A konečně, že si uvědomuje, že tomu tak není nabídka služeb do svého domova v Cambridge nebo něco takového. Ale jde o to, to je nejvíce hloupý implementace auto dokončit vůbec. [00:28:34] A já jsem prostě jít pryč Na této tečně znovu. Ale tam jsou dobré způsoby, jak používat JavaScript a špatné způsoby. A to nemusí být nutně nejlepší. [00:28:40] Ale jde tady, než to tirade, bylo otevření nástroje sem a otevřít vývojové nástroje, jak jsme povzbuzováni dříve, a sledovat síť Karta, když jsem klepněte na tlačítko opravdu rychle. A všimněte si spoustu z GET stalo. To vše se stalo, protože jsem táhl. [00:28:57] A s největší pravděpodobností skutečně Mnoho z těchto řad Nyní je obraz lomítko JPEG MIME typ nebo typy obsahu. To proto, že to, co dělá chrom pokaždé, když jsem klepněte na tlačítko a táhněte, klepněte na tlačítko a táhnout, je to uvědomil, oh, jsem je třeba jít požádat Google o dlaždice na mapu, která je tady, Rychle si jej stáhnout přes HTTP, a pak jej přidejte do tzv DOM na webových prohlížečů v paměti stromu zastoupení tak, aby uživatel, mě, vidí, že aktualizovaný dlaždice. A je to proto, technika volala AJAX. Zpět v den, je to opravdu tomu bylo v případě, že pokud chtěl změnit to, co je na obrazovce, budete muset klepněte na tlačítko nahoru, dolů, vlevo, pravdu. A pak se nová stránka se otevře. Ale v těchto dnech, všechno je dynamičtější. Stává se to v tom, jak my lidé by doufám, že to ve skutečnosti by interaktivně. A dosahuje tím, že způsob technikou zvanou AJAX, což je možná nejlépe vysvětlen na příkladu. Nejprve mi dovolte, abych do toho a otevřít soubor volal quote.php v Současná distribuční kód. [00:29:53] A pak mě nech dělat symbol-- Jejda. Nech mě to udělat symbol = GOOG jen pro určité populace. Nebo vlastně, pojďme dělat jeden z pset ZDARMA. Enter. [00:30:05] A teď si všimnout, co se vrátím. Tak tohle je opravdu krátký PHP soubor, který jsem napsal, že prostě půjčuje kód z funkce vyhledávání Pset7 se a vyplivne pomocí tohoto složenou závorkou a citace a tlustého střeva zápis, zdá se, aktuální fotografie je cena za společnost, která vám předat pomocí GET. Tak tohle je něco jiného od nejvíce z toho, co máme provádí v tomto oznámení Jsem doslova vyplivl co vypadá jako kód JavaScriptu. [00:30:27] Ve skutečnosti se jedná o objekt JavaScript. Ve skutečnosti, jen aby bylo jasnější, JavaScript Object Notation-- JSON-- je jen ozdobný způsob, jak říkat, že vás mohou představovat data v JavaScriptu moc stejně jako je to možné v PHP s využitím klíčových párů hodnot. Takže pokud bych chtěl prohlásit, proměnné v JavaScriptu se představuje Zamyla, pro instance-- struct pro Zamyla-- a budeme nazývat student, tato proměnná. Její číslo je jeden, dům je Winthrop, a jméno je Zamyla. [00:30:53] Ale mohu mít také řadu objektů. Takže když jsem vlastně chtěl mít pole v JavaScriptu obsahující více takových objektů, tato Doba zastupujícími zaměstnance, Mohl bych mít tyto tři kusy kódu zpět se zády k sobě pro tyto Tři bývalí zaměstnanci. Takže syntax, pěkný podobné both-- PHP. Ale to je zvláště JavaScript. Je to objekt notace. Takže to, co je to dobré? [00:31:17] Mám-li napsat kód, který vyplivne JSON-- JavaScript Object Notation-- věci, které vypadá to, nebo věci, které vypadá struktura Zamyla je, Já si skutečně použít v programech píšu. Nech mě jít do ajax0.html. A to too-- moc myslel, že vzhledem k estetice. Ale pozor, co se stane. [00:31:34] Nech mě jít napřed a zadejte zdarma zde. Klepněte na položku Získat cenovou nabídku. A všimněte si URL se nemění. Ale já jsem si pop-up se zřejmě dnešní penny cena akcií ve výši $ 0,15. Takže není všechno tak špatné. Ale rozdíl je, že nějak tyto údaje se vrátil ke mně přímo. Ale pojďme krok směrem k něco známější. Ve verzi jednoho z tohoto, dovolte mi, abych zadejte opět volný, klepněte na tlačítko Načíst cenovou nabídku, a now-- oh, to bylo ve skutečnosti verze jQuery. Tak ať me-- já ne rychle vpřed dost daleko. Nech mě jít na verzi dva, což je místo, kde jsem chtěl. Všimněte si, co jsem tady udělal. Mám web page-- super jednoduchá verze libovolné webové stránky si dnes může používat s textovým polem zdarma zde a pak zřejmě jen textu. [00:32:14] To není forma tady, zřejmě. Ale když jsem klepněte na tlačítko Načíst citace, všimněte si mé webové stránky se brzy změní, jako bych právě dostal novou zprávu chatu nebo jako bych se přestěhoval mapa a potřeboval se dostat více dat přidány dynamicky na webovou stránku bez URL střídání a uživatelem zkušenosti jak se přerušil. Opravdu, jsem pořád na samý place-- ajax2.html. [00:32:35] Takže pojďme se podívat pouze na tento příklad a uvidíte, jak se to děje. Nech mě jít do ajax2.html. A všimněte si nejprve formulář. [00:32:44] Tady dole, já jsem otočil off auto kompletní. Někdy dostane nepříjemné v případě, že prohlížeč se snaží ukázat Celá vaše historie. Takže si můžete udělat v HTML pomocí jen říkám, že auto dokončit off. [00:32:53] Dal jsem tento text poli symbol-- spíše ID symbolu. A teď je to zajímavé funkce. Nemluvili jsme o rozsahu, ale můžete přemýšlet o tom jako odstavce značku nebo tag div. Je to, co se nazývá In-line prvkem, který znamená, že nebudete mít odstavec zlomit nad a pod ním. Je to jen tak zůstat in-line, aniž by bít ekvivalent vstoupit. Tak jsem dal tento kus HTML třeba určit jedinečný identifikátor že jsem svévolně volal cenu. A já mám tlačítko Odeslat. [00:33:21] Protože teď se here--, a to je ve skutečnosti výborný úžasné, jak málo kód můžete psát udělat relativně čistý things-- Všimněte si, co jsem udělal tady, kdybych přejděte až k hlavě této stránky. Uvedl jsem první moje hlava tag script že ve skutečnosti odkazuje JavaScript soubor jinde. To je z organizace že píše jQuery, a to se jen tak vám nejnovější verze jejich knihovny jQuery. [00:33:42] Takže to je něco jako ostré jsou v C nebo vyžadují v PHP. Můžete použít tag script s atributem zdroje. Ale teď můj vlastní kód bude přímo zde. [00:33:52] Všimněte si, mám funkci nazvanou Quotes. A to vypadá trochu mystický na první pohled. Ale pojďme dráždit to od sebe. Dej mi proměnnou s názvem URL. Přiřadit doslova tento řetězec. Takže, apostrofy, uvozovky v JavaScript mi ​​dává jen řetězec. Co je a dělat? Zřetězení. [00:34:08] Tak tohle už je syntaxe jQuery který trvá trochu zvykat. Ale to jen znamená, jdi mi DOM uzel, jehož jedinečný identifikátor je symbol. Hashtag zde znamená jedinečný identifikátor symbol. [00:34:21] Znak dolaru na Závorky jen říct, že zabalit v jQuery druh tajný recept, aby získáte další funkce. A pak .val je zřejmě funkce, nebo jak se říká dnes, Způsob uvnitř tohoto uzlu že právě vám dává hodnotu. Takže ve zkratce, ošklivý a matoucí jak to vypadá na první pohled, to znamená jen dostat s uživatelem zadaný v, dát na konci řetězce zřetězením to. To je všechno. [00:34:43] Takže teď, poslední tři řádky. Můžete si vymačkat hodně Funkčnost ze tří řádků. Tento znak dolaru, as stranou, je jen přezdívka pro speciální globální proměnné volal doslova jQuery. [00:34:55] Znak dolaru jen vypadá v pohodě. Takže jQuery komunita jen tak použitých jako jejich speciální symbol. To neznamená, že to, co to znamená v PHP. V JavaScriptu, znak dolaru je stejně jako písmeno abecedy nebo číslo pro proměnné. [00:35:07] Stačí si jen mít to jako název. Jen vypadá v pohodě. Tak komunity přijal to jako přezdívka pro jejich vlastní knihovny s názvem jQuery. [00:35:13] A je super populární. Tak se JSON je přesně to. Je to funkce, která Lidé z jQuery napsal že dostane JSON z server-- JavaScript Object Notation. Z toho, co URL se to děje získat tyto informace? Zřejmě z tohoto URL zde. [00:35:27] A co by měl dělat, co prohlížeč jakmile se vrátí tuto odpověď? A to je kouzlo AJAX, tak speak-- Asynchronous JavaScript v XML. Je těžké vidět, s takovým Jednoduchý příklad, jak jsme tady měli. [00:35:41] Ale to bylo v asynchronní pocit, že můj kód, pokud provedený poslal zprávu server jdi mi nějaký JSON. A stalo se to velmi rychlé že jsem dostal odpověď. Ale co je zajímavé, je, že tato řádek kódu ani viset můj počítač. [00:35:55] Neviděl jsem ikonu odstředění. Neztratil jsem schopnost pohnout myší. Můj prohlížeč byl vlastně naprosto v pořádku. [00:36:01] Vzhledem k tomu, jak JavaScript zpracovává odpověď ze serveru je následující. Můžete registrovat, co byste nazvali funkce zpětného volání, které prostě znamená, hej, JavaScript. Jakmile server reaguje s JSON, volejte tento anonymní funkce. [00:36:18] A prosím, prošel do této funkce bez ohledu na řetězec server vyplivnout jako argument, nazvaný data. Takže jinými slovy, v případě Jsem montáž dynamicky URL quote.php absolvování v tomto symbol jako free nebo GOOG nebo kdoví co ještě, Já pak říkám JavaScript jdi tuto adresu URL. Nezapomeňte, že prohlížeče se chystá vrátit něco že vypadá jako jsme viděli earlier-- to. [00:36:42] A co druhý argument Zde se dostat JSON říká je volání této funkce když server vrátí ať už je to 10 milisekund od teď, nebo 10 sekund od teď. A jakmile to uděláte, přidat cenu na stránku. Tato syntaxe tu jen znamená jdi na uzel ze stromu, jehož jedinečný identifikátor je price-- tomto úseku jsme viděli dříve. [00:37:01] Tato metoda nazývá HTML Jen říká, jít nahradit HTML to tam s data.price. Co je data.price? No, prohlížeč, vzpomínám, ukázal mi to vrací. Tak tohle je dat. [00:37:14] A tak je to trochu záhadný vidět čárky zde. Ale ve skutečnosti, dovolte mi to. Dovolte mi vložit opravdu rychle do gedit a ukázat to, jako jsme ukázali, Struktura Zamyla je dříve. [00:37:27] Co je server posílá zpět je malý objekt, který vypadá takto. A tak data.price je jen mi dává 0,1515. Takže mnoho pohybujících díly zde najednou. [00:37:39] Ale klíčové takeaways je že mají tuto schopnost aby další HTTP žádosti pomocí JavaScript aniž by bylo nutné znovu načtete stránku. A pak můžeme skutečně změnit webové stránky v reálném čase. A ukázalo se, že JavaScript a jiné jazyky lze použít nyní nejen mutovat webových stránek, ale vlastně psát software ve skutečném počítači, neomezuje jen na Chrome nebo podobně. [00:38:00] Ve skutečnosti, if-- Colton by tě se k nám připojit zpět sem s laboratorní kód a Chang stejně? Pojďme dál, když mluvil o anonymní funkce a volání a opravdu pokoušet osud zde s živou ukázku s krvácením hrana technologie, jeden z tato zařízení Elite pohybu. Nyní toto zařízení, odvolání, je malý USB zařízení stejně that-- to beautiful-- který se zapojuje do USB portů. [00:38:25] A pak poskytuje vstupní ve formě lidských gest detekcí pomocí infračervených paprsků, v podstatě, pohyby z vašeho ramene. Takže vzhledem k tomu, co Maria snažil dříve, než byl svalnatý, skutečně pocit, co se mění vaše ruka, to je infračervené bázi. Tak vypadá to při přepravách v rámci druh sféře nohy nebo tak samotného zařízení. [00:38:46] Tak proč jsem si stab na to první? A pojďme do toho a hodit jste se na režii zde. Takže pojďme dát notebook Colton je tady. Máme Andrewa na televizoru. A co bys chtěl, abych udělal jako první? [00:39:00] COLTON: Jděte do toho a jen dejte ruce nad tím chlapem a uvidíte nějaké báječný lesk. [00:39:04] DAVID J. Malan: Velmi pěkný. To vše se děje v reálném čase. OK. Tak jo, a jo. Tak pěkné. Tak jo, co jiného můžeme dělat? [00:39:15] COLTON: Přejít na další obrazovce a uvidíte. [00:39:17] DAVID J. Malan: Dobře. [00:39:19] COLTON: zábavná hra kde máte dělat roboty. [00:39:21] DAVID J. Malan: Dobře, takže to je falešné ruce ukazující mi, co mám dělat. COLTON: Ano Takže jděte do toho a chytit jednoho z bloků a dal ji na tělo, které robotu. DAVID J. Malan: Oh, to je moje ruka. Oh. OK, rozkošný. Počkej chvilku, OK. Tak jdeme. [00:39:41] COLTON: Udělal jsem jeden na nehody. [00:39:43] DAVID J. Malan: OK, tak jsem si toho chlapa. Sakra! Když jsme cvičili to poslední noc, víte, co to přešel do? [00:39:51] Takhle. OK. Další z nich? [00:39:55] COLTON: Jistě. [00:39:56] DAVID J. Malan: Tak jo, a je tu třetí. Dobrá. COLTON: A v tomto jednom, dostanete to-- DAVID J. Malan: Oh, tahle je krásná. COLTON: --yeah, vybrat od sebe tuto květinu. DAVID J. Malan: OK. Ne? Minul. [00:40:14] COLTON: Oh, tam jdete. [00:40:15] DAVID J. Malan: Ah, podívej se na to. Velmi pěkné. No, proč dont 'bereme z jednoho dobrovolníka zde kteří by chtěli jít nahoru. Jak o tady v zeleni, je to? [00:40:27] V pořádku, a pojďme have-- místo toho dělal to, že někteří z vás možná víte tuto hru here-- snížit lano, snad? Pojďme se podívat. Máme brýle tady? [00:40:37] OK. Děkuju. Jak se jmenujete? [00:40:39] Diváků: Laura. [00:40:40] DAVID J. Malan: Laura? Hezké vidět. Pokud vám nevadí, že uvedení Google Glass přes vaše brýle. To je Colton. [00:40:46] COLTON: Ahoj. Těší mě. [00:40:48] DAVID J. Malan: OK, no tak kolem. Dobře, takže to, co budete dělat tady, mít hrál předtím, je dát si ruku na Leap Motion zde. A teď vaše šipka by se měl pohybovat. Oh, ani náhodou. [00:40:57] Diváků: Ne [00:40:58] DAVID J. Malan: My nechci ještě odejít. OK, počkejte. Tady. Takže si všimnout, jak držíte prst nad něčím, myš začíná jít zelená, což je, jak se na tlačítko. [00:41:06] Takže vznášet se nad Play. A jen jeden prst je v pořádku. A nyní klikněte na malý zelený chlap na levé straně. A teď se podržte, dokud se zaplní zeleně. Dobře. Nyní, jako, jeden stupeň nahoru nahoře. [00:41:16] Publikum: Ano, chceme o jeden stupeň, zde. [00:41:20] DAVID J. Malan: Dobrý. OK, takže vše, co musíte udělat, je snížit lano. Kurzor je bílý tam dole. [00:41:28] Velmi pěkné. V pořádku, je to asi těžší. Takže držte prst přes příští teď. Dobře. Tohle je těžké. [00:41:39] Diváků: Oh crap. OK. Chce jít tudy. Oh crap, that-- [00:41:44] DAVID J. Malan: Jo. Sekundárním cílem je dostat všechny hvězdy. Dobře, příště. [00:41:53] Uvidíme, jestli můžete získat tento třetí. Dobře. OK, tam jít. [00:42:06] Jistě. Oh, velmi pěkné. Dobrá. [00:42:11] Tak proč ne my odložit tu dnes? Ať někdo jít nahoru, kdo si chce hrát. Díky moc Lauře náš dobrovolník. A my vás uvidí v pondělí. [00:42:18] Diváků: Pravděpodobně budete chtít tyto zpátky. [00:42:21] SPEAKER 2: Na další CS50--