DAVID J. Malan: U redu, pa to je ovdje Myo ruka bend, par koji smo imati za CS50 konačne projekte. I to je bila demonstracija smo na čekanju što se unaprijed gdje uglavnom to je prilično široka ruka bend ovdje sluša svoje mišićne pokrete koje su potom preslikavaju u softveru da Colton je laptop preko kojih ovdje imala iTunes i da Pjesma je već okupili. Umjesto mene demoing toga, Colton je bio u laboratoriju Jasno cijeli tjedan dobivanje demonstraciju spremna za jednu hrabrog volontera. Ako netko želi doći na up-- vidio svoju ruku na prvom mjestu. Dođite na gore. [00:01:09] U redu. A ono što je vaše ime? 

[00:01:13] PUBLIKA: Uh, Maria. 

[00:01:14] DAVID J. Malan: Maria, lijepo vas je vidjeti. Dođi ovamo. Dopustite mi da vas upoznam s Colton. Colton, ovo je Maria. 

[00:01:21] COLTON: Bok, lijepo da zadovolji vas. 

[00:01:23] DAVID J. Malan: All U redu, tako da jedan korak, mi smo će vas staviti ovaj na podlaktice tako da je prilično čvrsto se u blizini vašeg lakta. A u međuvremenu, neka je imaju staviti na našu Google Glass a mi ćemo miješati tehnologije danas. 

[00:01:33] COLTON: Prvo ćemo morati spojiti ovo u stvari. 

[00:01:36] DAVID J. Malan: U redu. Zapravo, neka stavi svoju ruku kao u neposrednoj blizini ovog kabela moguće tako da smo prvi može sinkronizirati gore. 

[00:01:41] COLTON: Idemo to učiniti. 

[00:01:42] DAVID J. Malan: A u međuvremenu, tako da svatko može dobiti bliži pogled, ćemo bacanje Andrije fotoaparat na zaslonu tamo. Dakle, imamo USB kabel koji je biti priključen na Marije narukvica. I neka mi bacanje Colton je zaslon se na projektoru sljedeći. 

[00:02:00] Dakle Colton bilježi uređaj sada kao Myo povezan s ovim kabelom. I sad ono Maria-a će učiniti trenutak je zapravo šetnja koraci za kalibriranje i naučiti softver kako su joj mišići reagiraju kad bi određene unaprijed definirane gesta da softver razumije. Ako želite ići u Prednji dio zaslona. U redu, držati težak. 

[00:02:30] COLTON: Idi ovako. I kao što je to. I sve do prava. Vratite. 

[00:02:35] DAVID J. Malan: U redu. Različite perspektive. Nije li. To je nas. 

[00:02:40] MARIJA: U redu. DAVID J. Malan: Ne. Idemo ga premjestiti veći tako da je bliže lakta, ili čak i jače. U redu. 

[00:02:52] Ovdje ćemo ići. To bi bilo dobro vrijeme za CS52X. Tamo idemo. 

[00:02:57] Vrlo lijepo. U redu. Palac se Pinky. 

[00:03:02] Vrlo lijepo. Raširite prste. Dobro. Val u pravu. To je znatiželjno pokazujući ste s lijeve hand-- 

[00:03:17] COLTON: Da, to je čudno. DAVID J. Malan: Val se Pravo i krenuti naprijed. Brzo naprijed preskočiti ili sljedeći. To je u redu Val pravu. 

[00:03:25] MARIJA: Ja don't-- čekati. 

[00:03:26] DAVID J. Malan: Trebate pomoć? 

[00:03:28] COLTON: Znači ideš ovako. MARIJA: To je okreće Druga stvar, ipak. COLTON: To je. DAVID J. Malan: Da ne znam zašto se prikazuje vam leftie. COLTON: Zašto ne try-- samo pokušajte ide ovako. 

[00:03:38] DAVID J. Malan: Ne? Možda do ruku se malo uspravnije i učiniti ga naglo kao što je ovaj. Da, u redu, hajde. 

[00:03:48] MARIJA: Žao mi je. DAVID J. Malan: To nije tvoja krivica. COLTON: To je u redu. DAVID J. Malan: All Right. Well-- 

[00:03:56] MARIJA: Trebamo li preskočiti ovo, onda? DAVID J. Malan: Da, neka je neka vas od kuka. Dakle, ako netko želi raditi konačni projekt koristeći ovaj sječivo hardver, shvatite to bi moglo jednostavno uzeti malo koristi za dobivanje. I this-- stvarnost je to je zapravo vrlo krvarenje ruba. 

[00:04:10] To je ono što se naziva Komplet programer, koji je je značilo da se u biti pre-release tako da ljudi mogu učiniti upravo this-- boriti s njim, lik kako tijela ljudi rade s tehnologijom. Dakle, ako želite nakon toga, nakon predavanja, možemo vam doći i uzeti još jedan ubod u njega. Ali inače, pljesak, ako je smo mogli, za Maria došao na gore. 

[00:04:26] MARIJA: Hvala vam. 

[00:04:28] DAVID J. Malan: Hvala vam. Mi ćemo objesiti na to, ali mi ćemo dati you-- o tome kako stres loptu ovdje? Oh, and-- if-- Da, hvala. U redu. Tako je za znatiželjan, ako ste bili upoznati sa zvukom izbora da smo napravili tu ranije, nevjerojatna TV pokazati da ste trebali apsolutno biti jedenja i gledanje na Netflix je ovaj ovdje. 

[00:04:51] SPEAKER 1: Dame i gospodo, mađioničar po imenu Josh. 

[00:05:04] DAVID J. Malan: I očito, to je stvar za mene tekst tijekom predavanja sada. Ja sam se ispričao da je Maria jučer imala rođendan. Dakle, sretan rođendan od CS50 se Maria kao dobro. 

[00:05:18] Dakle, možda ste čitali u posljednjem mjesecu da je ova gospoda ovdje, Steve Ballmer, koji je zapravo razred 1977. godine na faksu, Nedavno umirovljeni za Microsoft. Bio preddiplomski ovdje, onda par godina kasnije našao se na Stanford Business School kada je dobio telefon poziv od prijatelja od onoga koji živjela hodnikom od njega ovdje na Harvardu. Ime tog prijatelja je Bill Gates, i na vrijeme, On je pokušavao zaposliti Steve se Prvi poslovni čovjek, doista, na male tvrtke Microsoft ime. 

[00:05:45] Duljimo, Steve je u konačnici osvojio, Microsoft se pridružio kad su imala samo 30 zaposlenika. I vrijeme je mirovini donedavno, Tvrtka je imala 100.000 zaposlenih tijekom posljednjih nekoliko godina. I tako web poznat kao The Verge pripremio ovaj porez na videu koje smo mislili da bih zajedničko da vam daje osjećaj koliko energije Steveu donosi na bilo prezentaciji je daje. [Video reprodukcije] -Microsoft Je kao četvrto dijete. Djeca ne napuste kuću. U ovom slučaju, mislim Odlazim iz kuće. Hej Bill, whazzap? 

[00:06:23] -Wazzap? 

[00:06:24] -Hej, Wazzap? Mi smo dano ogromna prilika. A Bill nam je dao tu priliku. Želim zahvaliti Billu za to. Želim da previše. Tempo inovacija se neće usporiti. 

[00:06:42] To će dobiti brže i brže. Tu bi moglo biti nekoliko konkurenata koje su, nažalost, eliminirani! 

[00:06:54] Volim ovu tvrtku. Da! Ja sam računala, a ja volim ovu tvrtku! 

[00:07:08] Programeri, programeri, programeri, programeri, programeri, programeri, programeri, programeri. Da! Web programeri! 

[00:07:19] Web programeri! Web programeri! Poslušajte što još dobili bez dodatne naknade! 

[00:07:28] MS-DOS izvršne, imenovanje kalendara, kartice gomila, bilješka jastuk, sat, upravljačka ploča. A, možete li vjerovati? Reversie! 

[00:07:35] Spali ih na CD-u! Postavljati ih na MSN! Možete ih poslati prijateljima! 

[00:07:40] Svi s jednim klikom! Jedan Microsoft, jedna strategija, jedan team-- usmjerena, discipliniran, profesionalna, i stručnjak u svemu što radimo. Dopustite mi da koristite liniju iz starog filma. 

[00:07:52] Odnosi su poput morskih pasa. Kreću prema naprijed ili umru. Ja zapravo mislim tech tvrtke su isti. 

[00:08:01] [END reprodukciju videozapisa] DAVID J. Malan: Pa mi smo tako sa zadovoljstvom objaviti da je Steve će nam se pridružiti ovdje u CS50 iduće srijede u uobičajeno mjesto i vrijeme ovdje. Prostor će vjerojatno biti ograničen. I tako da nam se pridruže u osobi, molimo krenuti danas ili ubrzo nakon toga na cs50.harvard.edu/register. 

[00:08:22] I mi ćemo pratiti putem Utorak potvrđujući mjesta. Radovati se da će iduće Srijeda tijekom predavanja u CS50. Sada, u međuvremenu, mi se dogodilo naići na to The Crimson jednostavno neki dan. 

[00:08:34] Ispada da je jedan od CS50 osoblja i najmanje jedan od CS50 studenata trenutno trčanje za UC predsjednik i potpredsjednik, koji me doveo natrag mojim vlastitim dana vratiti kada sam izgubila UC izbore jadno. No, srebro podstava U to je uvijek reci priča je da je jedan od siguran sam Mnogo je razloga izgubio sam Izbori bio potpuni nedostatak od talenta za javne govore. I tako sasvim iskreno, vozio me, to iskustvo Mislim da je moj mlađi godinu dana, zapravo potpisati za Harvard Computer Society, koji je je grupa na kampusu kako drži razne tehničke razgovore i druge stvari. I sam preuzeo nastavu seminari i stoga imali su priliku, divna prilika, početi raditi na upravo to. Ali isto tako, imao sam priliku Tijekom tog iskustva da si naučiti sve više HTML. I tako sam procrastinated sinoć strane gleda kroz web stranice HTML temelji na Sam napravio u kao 1997, '98, za moje Kampanja koja izgleda kao ovo ovdje. Znam. 

[00:09:29] Because-- i naravno, obavijest Ova nevjerojatna dizajn odluka u 1998. godini ili sitnica. Prva stvar koju želite korisnik učiniti nakon posjete vaše web stranice je da imaju kliknuti drugu vezu samo da unesete svoje web stranice ovdje s monaha Iza poput umotan zavjese gdje očito je moja kampanja platforma je. I to je sve što ćete dobiti Danas je samo screenshot. Ali sam se čitajući, kao što su, Moja kampanja plakati sinoć i moj platforme. 

[00:09:50] I ja sam bio toliko ljut na vrijeme. Moj platforma was-- bilo je zanimljivo. Tako sam se smirila od tada. Ali, jednoga dana, ja ću ponovno pokrenuti i nadam se bolji od tog vremena. 

[00:10:03] Dakle, HTML, da je jezik u kojem sam napravio da in-- vas uskoro ćemo napraviti mnogo još mnogo toga je nešto što smo bili govori o kasno i uglavnom uzima zdravo za gotovo sada da smo se preselili na drugim jezicima. Ali neka je pauzirati samo na trenutak i staviti neke od tih stvari u kontekst. Tako je u rečenici, što je HTML? 

[00:10:18] Ili, što se koristi za? Svatko? Da. 

[00:10:20] PUBLIKA: Markup za web stranice. DAVID J. Malan: Markup za web stranice. Dakle, to je jezik za označavanje koji omogućuje struktura web stranice. Zaglavlja ide ovdje, naslov ide ovdje, tijelo ide ovdje. To je masna slova, to jest italics-- takve detalje. 

[00:10:33] U redu, dobro. Dakle CSS omogućuje you-- i ja uzeo neke slobode postoji s podebljanim okrenuto i kurzivom, jer da bolje je proveden s tim. CSS is-- što? Recimo u rečenici. Svatko na sve. Da. 

[00:10:46] Publika: ukrasima i stvari, kao što su kako je dizajn. DAVID J. Malan: U redu, dobro. Ukrasima koje vam omogućuju to dizajn ili stilizovati ga sa stvarima kao što su podebljana i kurziv i boje i također su u redu zrnate pozicioniranje elemenata. To na neki način vam omogućuje da se stvari u posljednji kilometar, tako da ako je, primjerice, U Pset7, možda ste primjetili na vašem portfelj stranica ako ste u ovom trenutku Već da je zadana tablica koje bi pokazati korisnikovih dionica udjele i novčani vjerojatno izgleda prilično odvratan po defaultu bez bijelog prostora. Sve je vrsta naguranih zajedno u retke i stupce. 

[00:11:18] Pa, uz malo CSS, kao što ste možda shvatili, možete zapravo ugađanje to i čine ga nešto mnogo više upoznati i još mnogo ljepše gledati. Dakle CSS je oko stilizacija web stranice. Ali onda smo uveli još jedan jezik, PHP, što nam omogućuje da učinite što? 

[00:11:36] Ajmo napraviti što? Svatko. Moram krenuti dalje prvih par redaka. Da. 

[00:11:40] PUBLIKA: generiranje dinamičkog sadržaja. DAVID J. Malan: Savršeno. Generiranje dinamičkog sadržaja. A možete to učiniti u bilo koji broj jezika. Mi se dogoditi da koriste PHP, jer je to dijelom tako sličan C sintakse. 

[00:11:50] Ali PHP čini upravo to. To vam omogućuje dinamičko generiranje izlaza. A neki od te proizvodnje može biti HTML, kao što smo obično radili. I to je također, zato što je programski jezik, je mehanizam kojim možemo razgovarati s bazama podataka. 

[00:12:03] I možemo napraviti upite ostali poslužitelji poput Yahoos i programatski učiniti ništa stvarno koje bi inače žele natjerati računalo učiniti. Dakle, PHP omogućuje nam početak dinamički izlaza sadržaja. Dakle, po toj logici, nisam imala dinamičke web stranice natrag u 1998. 

[00:12:16] To je bio samo statična web stranica. Moja sadržaja moralo mijenjati ručno gedit ili nekim ekvivalentom. No, PHP je ono što mi koristi ili mogao imati koristi, naprotiv, za tako nešto Frosh IM web stranice, koje je trebalo da se prijave i upravljati popis stvari koje users-- zapravo mijenja tijekom vrijeme, iako mi se dogoditi koristiti Perl, drugačije jezik u to vrijeme. 

[00:12:35] I onda na kraju, uveli smo SQL-- Structured Query Language. Dakle, još jedan jezik koji se koristi za što? Koristi se za što? Možemo venture slight-- U redu, ne idemo dobiti mnogo dalje od orkestra ovdje. PUBLIKA: To je protokol koristi razgovarati s bazama podataka. DAVID J. Malan: Protokol koristi razgovarati s bazama podataka. Dopustite mi da ugađanje. To je prirodni jezik koristi razgovarati s databases-- odabire i umetci i briše i ažuriranja i zapravo čak i više mogućnosti da nismo ni zaronio u, ali možda želite imati explore-- istražiti za, recimo, konačni projekt. Dakle, tu su ti razni dijelovi. 

[00:13:09] I nadamo se Pset7, iako njegova specifikacija je prilično dugo, to je namjerno dugo da vas kroz kako te stvari mogu sve se upisali zajedno. Sada, u ponedjeljak, mi uveo naš zadnji jezik da smo formalno ćemo uvesti u course-- odnosno JavaScript. To, kao što su PHP, je tumačiti jezik. 

[00:13:25] No, ključna razlika Predložio sam u ponedjeljak je da, dok PHP izvršava ili se tumačiti na poslužitelju koji U ovom slučaju je CS50 aparat, ili možda neke komercijalne web poslužitelja na internetu, JavaScript općenito je jezik koji se izvodi strani klijenta Ne poslužitelja side-- tako u pregledniku. Što će reći, baš kao i kad sam otvorio do Facebooku izvornog koda i našao sve od onih JS datoteke, implikacija je da kada posjetite Facebook ili najviše web stranice ovih dana, dobivate ne samo HTML, CSS, ne samo, ali cijela hrpa JavaScript Kod često u obliku JS datoteke. A onda je browser-- vlastiti Mac ili PC-- koji izvršava taj kod. 

[00:14:03] No, vaš preglednik izvršava. Možete misliti na svojevrstan pješčaniku. Tako da JavaScript kôd ne bi trebalo biti moći izbrisati datoteke na vašem računalu. To ne bi trebao biti u stanju poslati e-mail na vaše ime. Vaš preglednik vrsta uskraćuje Što možete učiniti s njom. 

[00:14:17] Dakle, u tom smislu, to je malo manje snažan, možda, nego C. Ali JavaScript može, kao što je na stranu, može koristiti na poslužitelju, iako ćemo tendenciju da ne govorimo o tome u tom kontekstu. Dakle, sada ćemo vezati zajedno. Prije tjedan dana plus, predstavili smo neke HTML na left-- super dosadna web stranice. 

[00:14:34] Samo kaže Pozdrav svijetu. A onda sam predložio na Pravo možemo vrsta ukrasti ideje iz naše rasprave o strukture podataka u C i razmišljati o tome kako to hijerarhijski Markup jezik na lijevoj mogli biti izvučeni ili provoditi u memoriji kao stvarni strukturom s čvorovima i naputke i one vrste detalja. S desne strane, što nazivamo da je DOM-- dokumenta Objekt Model-- što je samo fancy način govoreći stablo. 

[00:14:56] Sad, zašto je to korisno mislim da je to na taj način? Jer sada s JavaScript, jer imamo kod koji dobiva igrati u ovom okoliš, stvarni HTML to poslan u pregledniku Već i ima već učita u memoriju od strane preglednik u stablo u vašem računalu RAM ovako, možemo koristiti JavaScript zapravo prošli ili hodati ili pretragu ili promjena koje DOM stablo ipak želimo. Dakle, u stvari, ako mislite o facebook.com, ako koristite mogućnost za razgovor, ako vas Korištenje Gmail i Gchat značajka, bilo kojoj morate poruke i opet dolaze i opet, te poruke su vjerojatno, kao, LI oznaku, stavku popisa oznake, možda. 

[00:15:35] Ili možda oni jednostavno DIVs koji drže pojavljuju svaki put kada dobijete instant poruka. I tako to samo znači ono što Facebook i Google se radi je bilo vrijeme da dobijete Poruka od poslužitelja, oni vjerojatno koriste JavaScript samo dodati još jedan čvor to tree-- još jedan čvor na to stablo koje onda vizualno samo izgleda kao novu liniju teksta na zaslonu. Ali oni umetanja u ovu strukturu podataka. 

[00:15:57] Tako je u klasama kao što su CS124 i drugi, vi ćete zapravo pisati više koda protiv strukture podataka kao što je ovaj. No, za sada u JavaScriptu, ćemo samo pretpostavljati dobili smo sve ove funkcionalnosti besplatno iz samog jezika. Pa pogledajmo primjer. 

[00:16:09] Dopustite mi otvoriti datoteku pod nazivom form.html. To je super jednostavna. To samo izgleda ovako. 

[00:16:15] Ne CSS, ne misli na estetiku. To je čisto funkcionalna i očito sam molba za e-mail, lozinke, lozinke opet, i onda ček pristati na neke uvjete i odredbe. Što izvorni kod za to Izgleda da je vjerojatno nešto što ste mogli pogoditi s Malo misli sada. Imam obrazac oznaku ovdje. 

[00:16:32] Akcija očito se ide na idite u datoteku pod nazivom register.php. Metoda ću koristiti je dobiti. A onda sam dobio tekst Polje čije ime je e-mail. 

[00:16:40] Imam polje lozinku čije ime je lozinka. Imam još jedan Lozinka polje čije ime je nešto proizvoljno potvrda. To je samo još jedan HTTP parametar. 

[00:16:49] I onda mi nismo koristi to, osim jer Frosh IM demo u class-- okvir koji je Samo tipa jednak ček. A ja ću nazvati taj sporazum. Tako sam vrsta arbitrarno, ali prikladno nazvan tih polja. Tako da se sada, kada je ovaj oblik dobiva podnesen, da vidimo što se događa. Ako sam malan@harvard.edu učiniti, Ja ću napraviti lozinku grimiz. Ja ću napraviti lozinku ništa. Nemojmo surađuju. 

[00:17:10] A ja ne potvrdite okvir. Dopustite mi da kliknite registar. A ona kaže, hm, ti si registrirani. Ne baš. 

[00:17:16] Ali URL promijenilo. Dakle, ovaj oblik je očito dopušteno podnijeti register.php. Ali vjerojatno sam trebao biti uhvatiti neke od tih pogrešaka. Sada, u Pset7 i neke naših predavanja primjera, mi općenito će ispisati veliki crveni poruka o pogrešci ovdje govoreći, nema naziv, ili nedostaje lozinku. Mi smo učinili da se prije i mi smo učinio strani poslužitelja otkrivanje pogreške. 

[00:17:37] No, mnoge web stranice ovih dana učinite klijenta otkrivanje strana pogrešci gdje URL ne mijenja. Cijela stranica ne osvježiti. Možete dobiti instant povratne informacije iz preglednika. Možda nešto pođe crveno. 

[00:17:48] Možda ćete dobiti pop-up. Ali ne gubite vrijeme slanja Podaci poslužitelja koji je nedovršen. Tako ćemo vidjeti kako bismo mogli postići tu značajku kao dobro. 

[00:17:56] Pusti me da form1.html, koji izgleda isto. Ali ako ovaj put radim malan@harvard.edu i ja upisati grimizno a ja ne daljnju suradnju ali kliknite Registra, primijetiti sada. To nije najseksi rješenje. Ja barem nisam uhvatio tu pogrešku. I ja sam se upozorenje funkcija u JavaScript-- koje koristimo samo u razredu. Općenito, ne biste trebali koristiti ovu jer to može vrlo brzo izaći kontrole. Ali lozinke ne podudaraju se pogreška. 

[00:18:19] Dopustite mi ići naprijed i kliknite OK. No, ono što je ključ takeaway ovdje je da URL nije mijenjao. Pa nisam smeta troši poslužitelja put ga traži Pitanje koje bih mogao imati shvatio odgovor za sebe. 

[00:18:30] A korisnik, iako govorio o tome duže od korisnika je ide razmišljati o tome, će imati instant povratne informacije. Nema kašnjenja s mrežnog povezivanja. Pa pogledajmo ove izvornog koda. 

[00:18:40] Form1.html izgleda strukturno slični ovdje. Obrazac je zapravo isto. No, da vidimo što sam ovdje. I tu je različite načine kako to učiniti. A ja sam učinio najviše ravno Sljedbenik ali ne i većini elegantan način još. Imam oznaku skripte. I onda nazvati document.getElementByID ('registracija'). A ja pohraniti tu vrijednost u formi, promjenjiva. 

[00:19:04] Pa što sam učinio? Možete misliti document.getElementByID kao posebna funkcija koja JavaScript Vam pruža koji doslovno ruke si Pokazivač na jednom od čvorova ili pravokutnici u ovom stablu. Pa sada da je ono što je naša forma promjenjiva u JavaScriptu zapravo pokazujući na. 

[00:19:21] Tako sada sintaksa je različit od C. No, radimo na nekoliko stvari ovdje. Jedan, ovo je malo čudno izgleda, svakako u odnosu na C No, pogled na liniji 35. Dakle, na lijevom form.onsubmit. Sjetite se da je onsubmit poput polja u STRUCT. Ako mislite varijable obrasca je samo kao C struct, to bi moglo imati neke polja. 

[00:19:42] Natrag u dan, imali smo studentima imena, Iskaznice, kuće, one vrste polja. Dovoljno je sjetiti onsubmit kao drugo polje. Ali to je posebna polje, jer preglednik je ubacio očekivati .onsubmit ne biti vrijednost kao broj ili string, ali zapravo biti funkcija ili adresu funkcije U memoriji računala. 

[00:20:02] I doista, to je ono što ova ključna riječ ovdje radi. To, kaže, daj mi novu funkciju. No, ono što je njegovo ime će biti, očito? 

[00:20:09] Osvrčući se do ponedjeljka. Koji je naziv ovog Funkcija se temelji na ovoj sintaksi? Ne, mislim, tu je očito bez imena associated-- sigurno ne ono što sam istaknuo ovdje. 

[00:20:21] Ali, to je zapravo u redu. Ovo je anonimni funkcija, ili lambda funkcije kao što neki to nazvati. A to samo znači to je još uvijek funkcioniraju. To je jednostavno, ne mogu ga zvati po imenu. Ali to je u redu. Jer opet, preglednik je ubacio u tvrtkama kao što su Google ili Microsoft ili Mozilla ili netko drugi u samo znam da ako je .onsubmit polju unutar obrazac element ima vrijednost, tretiraju ga kao function-- funkcija pokazivač, ako hoćete. I to nazvati kad se obrazac podnosi. 

[00:20:46] Pa što broj bi trebao biti izvršen kada se podnosi obrazac? Očito, sve unutar kovrčave braće. A to je samo stilska. 

[00:20:53] Ti bi mogao to učiniti kao skloni smo učiniti u CS50. No, u JavaScriptu, većina ljudi nastoje ga zadržati na istoj liniji samo zato što jasnije je povezan s tom funkcijom ključne riječi. I što sad radim? 

[00:21:03] Ako form.email.value jednak jednakima prazan string ili ništa, evo Dojava gdje ću reći, morate dati svoju adresu e-pošte, a zatim se vratiti false. A to je da je povratak lažna da sprečava obrazac iz bude podnesen. U međuvremenu, ako je lozinka vrijednost prazno, ja ću vikati na korisnika i reći, morate dati lozinku. 

[00:21:21] U međuvremenu stvari su uzimajući Malo ljubitelj ovdje. Ako form.password.value ne jednaka form.confirmation.value, drugom području, vikati na korisnik koji se lozinke ne podudaraju kao i oni nije trenutak prije. A onda je ovo jedan je malo više seksi, jer ja Znaš Znao sam da je konceptualno provjeriti je ime potvrdni okvir je. 

[00:21:40] Dakle, ja mogu samo koristiti uzvik točka za reći, ako provjera nije checked-- to Boolean vrijednost, istina ili false-- Ja ću vikati na korisnika iz tog razloga. Inače, ako prođemo svi ti uvjeti, neka je samo povratak istina. Neka obrazac se podnosi. A to će se onda dogoditi. 

[00:21:56] Idemo upišite u grimiz. Neka provjeriti je okvir, kliknite registar. A sad idem do odredišta. Sada, nema baza tamo. Nema ništa zanimljivo U register.php. Samo mi je trebalo nešto zapravo razgovarati. Pa neka mi pauzirati, ovdje. Bilo kakva pitanja o tome što smo upravo učinili ili ono što neki od ove nove sintakse je? U redu, zar ne? 

[00:22:17] PUBLIKA: Dakle, bilo okvir automatski Boolean. Ne morate ga proglasi tako. 

[00:22:21] DAVID J. Malan: Točno. Svaki okvir koji je poslana iz HTML obrazac na svom JavaScript kôd će biti tretirani, da, kao što je Boolean value-- istinito ili lažno. To je dobro pitanje. Dok druge vrijednosti, Naravno, bio tekst, AKA žice. 

[00:22:36] U redu, tako da mi je neka natrag malo dalje. Koja je poanta toga? Samo da bude jasno. Kao, mi već znamo, čak i od Pset7 pa čak i iz prošlotjednom predavanju primjeri, da smo očito može provjeriti $ _GET $ _POST Vidjeti ako korisnik daju nam prazna vrijednost. Zapamtite praznu funkciju u PHP. 

[00:22:54] Dakle, samo da bude jasno, ono što je jedan od razloga zašto smo mogli i želite učiniti provjera pogrešaka unutar preglednika? Što je motiv ovdje? Da. 

[00:23:06] PUBLIKA: Brže, a vi ne pošalji beskorisnih podataka na server. DAVID J. Malan: Dobro. To je brži. Vi ne šalju beskorisno Podaci na poslužitelju. 

[00:23:12] Tako ćete dobiti natrag više trenutni odgovor. A u ukupnom poretku, korisnik iskustvo je bolje. Razmislite o alternativi. 

[00:23:17] Ako za Gmail-- i bio Slučaj je prije mnogo godina. Pretpostavimo da je dobio novi e-mail svoj Gmail računa, ali jedini način putem da se vidi da je, kao što je, učitati cijelu stranicu. Ili pretpostavimo da kliknete na Link za čitanje e-pošte. 

[00:23:29] Sve mora ponovno tako da možete vidjeti e-mail. Ili Facebook-- dobivate instant poruke. Vi ne vidi dok ne reload stranica ili kliknite na neku vezu. 

[00:23:36] Kao, to bi bilo strašno neugodno korisničko iskustvo. A to je ono što je bilo, Jasno, kad sam trčao za UC i internet je bio mnogo manje dinamično i JavaScript nije bio toliko popularizirao kao što je sada. A stvari su uzimajući puno dinamičnije i još mnogo toga strani klijenta u tom smislu. 

[00:23:49] No, tu je kvaka ovdje, a To je vrsta dosadne Gotcha. Samo zato što ste dodali strani klijenta Otkrivanje ovako ne znači možete ili bi trebao odustati poslužitelja za otkrivanje strani. Vi zapravo želite staviti svoj provjeru pogrešaka na oba mjesta. Jer ono što je bio jedan lekcije naučene iz članka sam pročitao neke izvatke s ovim glupim CMS system-- Content Management System-- da je provoditi provjere autentičnosti sustava, njegova prijava putem onoga što mehanizam? JavaScript. 

[00:24:20] PUBLIKA: JavaScript. DAVID J. Malan: JavaScript, točno, zar ne? To je korištenjem JavaScript. I doslovno, vi imate igrao je malo vjerojatno s inspektora Chrome. I ako ja mogu ga naći, pregledajte element. 

[00:24:30] Pustite me da prijeđem raditi sve mogućnosti Chromea. A to je, kako je lako onemogućiti JavaScript u pregledniku. Provjerite, nema više JavaScript. 

[00:24:38] Tako je u pravednosti, puno na webu ovih dana se samo ide razbiti, jer Gmail i druge sites-- Facebook-- pretpostaviti da JavaScript je omogućen. Ali ako radite nešto glupo kao što je samo ovjera korisnicima ulaz i provjere pogreške na strani klijenta, Protivnik lako mogao to učiniti. I onda još pametniji Protivnik poput vas dečki Sada bi mogao koristiti Telnet ili Curl ili samo naredbenog retka naredbe i zapravo slati poruke na poslužitelj da na sličan način ne pogrešku provjeravaju. 

[00:25:05] Dakle, ovo je više korisničko sučelje odluka nego što je stvarno tehnički improvement-- provedbi strana nešto klijenta kao što je ovaj. Tako sada brzi pogled, ali onda Ja ću odgoditi za online šetnju kroz za ovaj jedan. U obliku dva, mi zapravo prošao i očistio koda malo. No, dopustite mi odgoditi za jedan od videa mi ćemo vjerojatno položiti u Pset8 koji samo pokazuje slična sintaksa uporabe knjižnice pod nazivom jQuery, što je super, super popularni knjižnica u JavaScriptu da iskreno većina ljudi Samo korištenje ovih dana pa čak i zbuniti kao biće sama JavaScript. 

[00:25:37] I to često uključuje neki dolar znakovi i ključne riječi poput dokumenta u zagradi ovdje. Ali opet, neka mi odgoditi za neki sporiji tutoriali online umjesto da se vezali u samo sintaksu. Krenimo na nešto malo hladnije u smislu primjene ovoga. 

[00:25:50] Dakle, naročito, pustite me naprijed i otvoriti ovo ovdje. Hajde. Tamo idemo. 

[00:25:59] Dopustite mi otvoriti tu sliku ovdje. Nepotrebno komplicirano izgleda, ali to opisuje tehniku ​​nazvanu AJAX-- Asinkroni JavaScript i XML, gdje X za XML je zapravo stvarno više ne koristi. Ona teži koristiti nešto inače zove JSON. 

[00:26:13] No, ovdje je kako se nešto slično Google Maps ili Google Earth funkcionira. Pokušajmo to u letu, zapravo. Dopustite mi ići naprijed i otvoriti Chrome se na mom pregledniku. 

[00:26:21] I pustite me na, kažu, maps.google.com. A zapravo, ako si stari dovoljno se sjetiti što, kao, MapQuest je poput natrag u dan, a možda oni i dalje raditi kao što je ovaj. Kada se koristi za traženje something-- 33 Oxford Street, Cambridge, MA, učinimo this-- vas zapravo bi, ako vas htio pomicanje gore i dolje, lijevo i desno, što će izgledati Veliki strelica na vrhu, i to će vam pokazati još jedan okvir karti ovdje. Ili što bi kliknete lijevo i ti će ići ovdje, ili još jedan klik a ti će ići ovdje. No, umjesto njih dana, što naravno samo uzeti zdravo za gotovo da možemo ići oko Cambridgeu vrlo brzo samo klikom i povlačenjem. Ali primijetite da postoji neki propuste. 

[00:26:59] Ako sam to učiniti dovoljno brzo, ono što se čini da se događa kao što sam povući malo prebrzo za računalo držati korak? Što vidite? Da. 

[00:27:07] PUBLIKA: The piksela ne osvježiti. DAVID J. Malan: piksela ne osvježiti. Postoji actually-- i ti mogao vidjeti ovo, zapravo, ako gledate online i pauza ovo ili zapravo usporava stvari dolje za once-- vidjet ćete da postoje pločice, trgovi, ili pravokutnici koji nedostaju kartu do djelić sekunde kasnije, više podataka, više slika zapravo pojaviti na zaslonu. I doista, ako smo to učinili u potrazi do Chrome's-- recimo, Chrome-- ćemo vidjeti. Ne možemo to učiniti. 

[00:27:31] Oh, ups. Idemo otvoriti maps.google.com. Dopustite da još veći prozor. 

[00:27:36] Vratite se na 33. Oxford Streetu. Što je web bio sam u posljednje vrijeme? Imao sam tu, kao, privatni dreka se ja da sam tada instant poruke bilo prijatelj koji je bio na internetu koji su željeli čuti. Ima neke web stranice. Mislim da je tako Comcast-- vrlo veliki američki ISP. Možete, prilikom prijave za novi kabel modem usluge ili kabelska TV usluga, imaju oblik vrlo razumno gdje su vas pitati za vašu adresu. I imaju to nevjerojatna značajka zove automatsko dopunjavanje, kao što je Google, koji počinje ispuniti u odgovor na svoje pitanje. 

[00:28:04] Problem je, oni auto dovršiti na prvih stvari koje ste tip. Dakle, ako počnete upisivati ​​u 33 ga, će vam pokazati doslovno svaka kuća u Americi koja počinje s brojem 33 prije nastavka Očekujemo da tip više. Dakle, ako upišete 33 Oxford, onda vam pokazuje svaku ulicu u Americi koja ima 33 Oxford u njegovo ime, bez obzira na grad da ste u. 

[00:28:25] A onda ti i dalje tipkati. I na kraju, da shvaća da oni ne ponuda u svoj dom u Cambridgeu ili nešto slično. No, poanta je, to je najviše glup provedba auto dovršiti ikad. 

[00:28:34] A ja sam samo ide off na ovoj tangente opet. No postoje dobri načini za koristiti JavaScript i loše načine. I to nije nužno najbolji. 

[00:28:40] Ali točka ovdje, prije toga tirada, bio je otvoriti alate ovdje i otvoriti razvojne alate, kao što smo ohrabreni prije, i gledati mreže Kartica kao što sam kliknite jako brzo. I primijetiti hrpu od zahtjeva dobili dogodilo. Sve se to dogodilo jer sam vukao. 

[00:28:57] I najvjerojatnije, dapače Mnoge od tih redaka Sada su slike udarac JPEG MIME vrste ili vrste sadržaja. To je zato što je chrome radi svaki put sam kliknite i povucite, kliknite i drag, je li to realizirati, oh, ja morati ići pitati Google za crijep Na karti koja je ovdje, Brzo ga preuzeti putem HTTP, a zatim ga dodati u tzv DOM na web preglednicima u memoriji stabla prikaz, tako da korisnik, ja, vidi da ažurirane pločica. A to je zbog Tehnika pod nazivom AJAX. Natrag u dan, to je stvarno bio slučaj da, ako vas želio mijenjati ono što je na ekranu, te će morati kliknuti gore, dolje, lijevo, u pravu. A onda nova stranica će se otvoriti. No, ovih dana, sve je dinamičniji. To se događa na način na koji mi ljudi bi nadam se da je zapravo bi interaktivno. I to postiže tako način tehnikom koja se zove AJAX, što je možda i najbolji objasniti primjerom. Prvo, neka mi ići naprijed i otvoriti datoteku zove quote.php u danas kod distribucije. 

[00:29:53] I onda neka mi ne symbol-- Ups. Pusti me da radim simbol = GOOG za samo neke zalihe. Ili zapravo, neka je učiniti jedan od Pset besplatno. Unesite. 

[00:30:05] A sada primijetiti ono što sam se vratio. Dakle, ovo je stvarno Ukratko PHP datoteka koja sam napisao da se jednostavno posuđuje šifru iz Pset7 je pregledna funkcije i pljuje pomoću ovog kovrčavu braće i citati i debelog zapis, navodno, Cijena na trenutne zalihe a za Tvrtka koja vam prođe u preko get. Dakle, ovo je drugačiji od većine onoga što imamo učinjeno u toj obavijesti Ja sam doslovno pljuvanje iz ono što izgleda kao JavaScript koda. 

[00:30:27] U stvari, to je JavaScript objekt. U stvari, samo da bude jasnije, JavaScript Objekt Notation-- JSON-- je samo fancy način govoreći da vas može predstavljati podataka u JavaScriptu mnogo kao što možete u PHP pomoću ključnih parova vrijednosti. Dakle, ako sam htjela da se proglasi varijabla u JavaScriptu da predstavlja Zamyla, za instance-- je struct za Zamyla-- a mi ćemo ga nazvati Student, ova varijabla. Njezin ID je jedan, kuća je Winthrop, a ime je Zamyla. 

[00:30:53] Ali ja također mogu imati niz objekata. Dakle, ako sam zapravo htjela imati niz u JavaScriptu koji sadrži takvi objekti više, to Vrijeme predstavlja osoblje, Možda imam ove tri komade koda natrag Sigurnosno poduprijeti za to trojica bivših članova osoblja. Dakle, sintaksa, prilično slična both-- u PHP. No, to je posebno JavaScript. To je objekt zapis. Pa što je to korisno za? 

[00:31:17] Ako sam napisati kod koji pljuje JSON-- JavaScript Objekt Notation-- stvari koje izgleda ovako ili stvari koje Izgleda Zamyla strukturi, Ja zapravo mogu koristiti ovu u programima pišem. Pusti me da ajax0.html. A to too-- nije puno misao dana estetike. Ali gledajte što se događa. 

[00:31:34] Dopustite mi ići naprijed i upišite ovdje besplatno. Kliknite dobili ponudu. I primijetiti URL nije promijenilo. Ali sam se pop-up s naizgled današnja denar cijena dionica od 0,15 $. Dakle, nije sve tako loše. No, razlika je u tome nekako, ovi podaci vratio mi izravno. Ali neka je korak prema nešto više upoznati. U verziji jedne od toga, neka me bez ponovno upisati, kliknite Get citat, i now-- oh, ovo je bio zapravo jQuery verzija. Pa neka me-- nisam brzo naprijed sasvim dovoljno daleko. Pusti me da verziji dva, što je gdje sam htjela. Obavijest ono što sam učinio ovdje. Imam web page-- super jednostavna verzija bilo koju web stranicu možete koristiti danas s tekstualnom polju Ovdje besplatno, a zatim se očito samo Tekst. 

[00:32:14] To nije oblik ovdje, očito. Ali ako ja kliknite dobiti citat, primijetiti moju web stranicu je o za promjenu kao da sam Upravo je dobio novi instant poruka ili kao da sam upravo preselio kartu i potrebno da biste dobili više podataka dodao dinamički na web stranici bez URL mijenja i korisnika Iskustvo uzimajući prekinut. Zapravo, ja sam još uvijek na isti mjesto-- ajax2.html. 

[00:32:35] Pa pogledajmo samo na ovom primjeru i vidjeti kako se to događa. Pusti me u ajax2.html. I primijetiti obrazac na prvom mjestu. 

[00:32:44] Ovdje dolje, ja sam okreće isključiti automatsko dopunjavanje. Ponekad se dobiva neugodno ako preglednik pokušava pokazati vaša cijela povijest. Dakle, to možete učiniti u HTML strane Samo rekavši auto završiti off. 

[00:32:53] Ja sam dao ovaj tekst polju symbol-- a, ID simbola. I sad, ovo je zanimljiva značajka. Nismo razgovarali o razmaku, ali možete misliti o tome kao stavka oznaku ili div tag. To je ono što se naziva in-line elementa, koji znači da nećete dobiti stavak razbiti iznad i ispod njega. To samo će ostati u-liniji, bez udaranje ekvivalent ući. Zato sam dao ovaj komad HTML treba utvrditi jedinstveni identifikator da sam proizvoljno nazvao cijenu. I ja imam gumb Pošalji. 

[00:33:21] Jer sada se here-- i to je zapravo super Nevjerojatno je koliko malo koda možete pisati učiniti relativno uredno things-- primijetiti ono što sam učinio ovdje ako I dođite do glave ove stranice. Uključio sam prvo u moja glava oznaka skripta koji zapravo reference JavaScript podnijeti drugdje. Ovo je iz organizacije kako piše jQuery, i to samo daje vam najnovije verzija njihovog jQuery biblioteke. 

[00:33:42] Dakle, to je vrsta kao oštar uključiti u C ili zahtijevati u PHP. Možete koristiti oznaku skriptu s izvornim atribut. Ali sada je moj vlastiti kod će biti u pravu ovdje. 

[00:33:52] Obavijest Imam funkciju zove citati. I to izgleda malo grobni na prvi pogled. Ali neka se zafrkavati ovaj apart. Daj mi varijablu naziva URL. Dodjela ga doslovno ovaj niz. Dakle, samohrani citati, dvostruki navodnici u JavaScript Upravo mi daje niz. Što plus učiniti? Ulančavanje. 

[00:34:08] Dakle, ovo je jQuery sintakse koji se malo koristi za dobivanje. No, to samo znači ići dobiti mi DOM čvor čiji je jedinstveni identifikator je simbol. Hashtag tamo znači Jedinstveni identifikator simbol. 

[00:34:21] Dolar prijava zagrade samo znači, zamotajte ovaj u jQuery vrsta tajnu umak tako dobivate dodatnu funkcionalnost. A onda .val je očito funkcija, ili kako mi kažemo sada, Metoda unutar ovog čvora to samo vam daje vrijednost. Tako je u kratkom, ružna i zbunjujuće jer to izgleda na prvi pogled, to samo znači doći s korisnikom upisali u, stavi ga na kraju niza ga nadovezivanjem. To je sve. 

[00:34:43] Tako sada, posljednja tri linije. Možete iscijediti puno Funkcionalnost od tri linije. To dolar znak, kao na stranu, je samo nadimak za poseban globalne varijable nazvao je doslovno jQuery. 

[00:34:55] Dolar znak samo izgleda cool. Tako jQuery zajednica samo vrsta ga koristili kao svoj poseban simbol. To ne znači ono što znači u PHP-u. U JavaScript, dolar znak baš kao slovo abecede ili broj za varijablu. 

[00:35:07] Vi samo možete ga imati kao ime. Samo izgleda cool. Tako zajednici prihvatili kao nadimak za vlastitu knjižnicu zove jQuery. 

[00:35:13] I to je super popularna. Dakle, dobili JSON je upravo to. To je funkcija koja ljudi na jQuery pisao koji dobiva JSON iz server-- JavaScript objekta oznake. Iz onoga URL ide kako bi dobili tu informaciju? Očito je iz ovog URL ovdje. 

[00:35:27] A što bi trebalo učiniti što je preglednik Čim se vrati taj odgovor? A to je magija AJAX, tako speak-- Asinkroni JavaScript u XML. Teško je vidjeti takvu Jednostavan primjer kako smo imali ovdje. 

[00:35:41] Ali to je asinkroni u Osjećaj da je moj broj, kada izvršen je poslao poruku poslužitelja ići dobiti mi neki JSON. I to se dogodilo super brzi da sam dobio odgovor. No, ono što je zanimljivo je da je ovaj linija koda nije vise moje računalo. 

[00:35:55] Nisam vidio ikonu vrti. Nisam izgubio Sposobnost da se presele svoje miš. Moj preglednik je zapravo savršeno u redu. 

[00:36:01] Budući način JavaScript ručke odgovor poslužitelja je kako slijedi. Vi registrirajte ono što bih nazvati povratni poziv funkcije, što samo znači, hej, JavaScript. Čim poslužitelj odgovara s JSON, nazovite tih anonimnih funkciju. 

[00:36:18] I molim te prošao u ovoj funkciji bez obzira na niz poslužitelja ispljunuti kao argument zove podatke. Tako je u drugim, riječima, ako je Ja sam sastavljanje dinamički URL quote.php prolazi u ovom Simbol kao slobodni ili GOOG ili sitnica, Ja sam tada govorio JavaScript ići dobiti taj URL. Ne zaboravite da u pregledniku će se vratiti nešto da izgleda kao da smo vidjeli earlier-- to. 

[00:36:42] A ono što drugi argument ovdje da biste dobili JSON govori se nazvati ovu funkciju kada poslužitelj vrati da li je 10 milisekundi od sada i 10 sekundi od sada. I čim to učinite, dodaj cijenu na stranici. To sintakse ovdje samo znači ići dobiti čvor od stabla čiji jedinstveni identifikator je price-- tom razdoblju smo vidjeli ranije. 

[00:37:01] Ova metoda se zove HTML Samo kaže, idite zamijenite HTML to je tamo s data.price. Što je data.price? Pa, preglednik, podsjećamo, otkrili su mi to vraća. Dakle, ovo su podaci. 

[00:37:14] I tako je malo zagonetan vidjeti zareze ovdje. Ali, u stvari, neka mi to učiniti. Dopustite mi samo zalijepiti jako brzo u gedit i pokazati to što smo pokazali Zamyla Struktura ranije. 

[00:37:27] Što poslužitelj šalje natrag je Malo objekt koji izgleda ovako. I tako je data.price Samo mi daje 0,1515. Dakle, puno se kreće Dijelovi ovdje sve odjednom. 

[00:37:39] No, ključni je Zaključci da imamo tu mogućnost kako bi dodatno HTTP Zahtjevi koriste JavaScript bez potrebe za ponovno učitavanje stranice. A onda možemo zapravo mijenjati web stranice na letjeti. I ispada da JavaScript i drugim jezicima mogu se koristiti, ne samo sada mutirati web stranice, ali da zapravo pisanje softvera u stvarnom računalu, Ne samo ograničena na Chrome ili slično. 

[00:38:00] U stvari, if-- Colton, će vas željeli da nam se pridruže vratiti ovamo sa svojim laboratoriju koda, i Chang te? Idemo naprijed, nakon što je govorio o anonimni funkcije i uzvratni pozivi i stvarno iskušati sudbinu ovdje s live demo s krvarenjem rub tehnologija, jedan od ovi Elite Motion uređaja. Sada, ovaj uređaj, podsjetimo, je mali USB uređaj kao i that-- to je beautiful-- koji se priključi na svoj USB porta. 

[00:38:25] A onda ona pruža ulaz u obliku ljudskih gestama otkrivanjem pomoću infracrvene zrake, u biti, pokreti iz ruku. Dakle, dok je ono što je Maria pokušali prije nego je bio mišićav, zapravo osjećaj što se mijenja tvoja ruka, to je infracrveno temelji. Dakle, to je u potrazi za kretanja unutar vrsta sfere stopala ili tako samog uređaja. 

[00:38:46] Pa zašto ne uzmem ubod na ovaj prvi? I idemo naprijed i baciti što se na pretek ovdje. Tako ćemo staviti Colton je laptop ovdje. Imamo Andriju na TV-u. A ono što biste htjeli da učinim prvi? 

[00:39:00] COLTON: Idi naprijed i samo stavi svoje ruke na ovim tipom i vidjet ćete neke nevjerojatan sjaj. 

[00:39:04] DAVID J. Malan: Vrlo lijepo. Sve se to događa u stvarnom vremenu. U redu. U redu, i yep. Tako lijepo. U redu, što još možemo učiniti? 

[00:39:15] COLTON: Idite na sljedeći zaslon i vidjeti. 

[00:39:17] DAVID J. Malan: U redu. 

[00:39:19] COLTON: zabavna mala igra u kojoj ste dobili napraviti robota. 

[00:39:21] DAVID J. Malan: U redu, tako da ovaj je lažni ruke mi pokazuju što da radim. COLTON: Da Dakle, ići naprijed i zgrabite jedan od blokova i staviti ga na vrhu tog robota tijelu. DAVID J. Malan: Oh, tu je moja ruka. Oh. OK, sladak. Čekaj malo, u redu. Tamo idemo. 

[00:39:41] COLTON: Napravio sam jedan na nesreću. 

[00:39:43] DAVID J. Malan: OK, ja ću ovog tipa. Prokletstvo! Kada smo išli u crkvu ova posljednja noć, znaš što to devolved u? 

[00:39:51] Kao što je ovaj. U redu. Sljedeća jedan? 

[00:39:55] COLTON: Svakako. 

[00:39:56] DAVID J. Malan: U redu, a tu je treći. U redu. COLTON: I u tom jednom, dobivate to-- DAVID J. Malan: Oh, ovo je lijepa. COLTON: --yeah, pokupiti uz ovaj cvijet. DAVID J. Malan: U redu. Ne? Propušteni. 

[00:40:14] COLTON: Oh, tamo idete. 

[00:40:15] DAVID J. Malan: Ah, Pogledajte kako. Vrlo lijepo. Pa, zašto ne 'uzmemo iz jednog volontera ovdje koji bi željeli doći na gore. Kako o pravu postoji u zelenom, je li? 

[00:40:27] U redu, i neka je have-- umjesto da radi, neki od vas Možda znate ovu igru ​​here-- rezati uže, možda? Da vidimo. Mi imamo svoje naočale na ovamo? 

[00:40:37] U redu. Hvala Vam. Koje je tvoje ime? 

[00:40:39] PUBLIKA: Laura. 

[00:40:40] DAVID J. Malan: Laura? Lijepo je vidjeti. Ako vam ne smeta stavljajući Google Glass preko svojih naočala. To je Colton. 

[00:40:46] COLTON: Bok. Lijepo vas je vidjeti. 

[00:40:48] DAVID J. Malan: U redu, hajde okolo. U redu, tako što ćeš učiniti ovdje, nakon što je igrao prije, je stavio ruku iznad Leap Motion ovdje. A sada tvoja strelica treba kretati. Oh, Nope. 

[00:40:57] PUBLIKA: Ne. 

[00:40:58] DAVID J. Malan: Mi Ne želim još otkaz. OK, pričekajte. Više ovdje. Dakle, primijetite dok držite svoj prst nad nečim, miš počinje ići zelena, koji je, kako se kliknuti. 

[00:41:06] Dakle, pređite preko Play. I samo jedan prst u redu. I sada kliknite na malo zeleni tip na lijevoj strani. A sada držite dok ne napuni zeleno. Dobro. Sada, kao što su, na razini jednog do vrha. 

[00:41:16] PUBLIKA: Da, želimo razini jedan, ovdje. 

[00:41:20] DAVID J. Malan: Dobro. U redu, tako da sve što morate učiniti je rezati uže. Pokazivač je bijeli tamo dolje. 

[00:41:28] Vrlo lijepo. U redu, riječ je o dobiti teže. Dakle držite prst tijekom iduće sada. Dobro. Ovaj je teško. 

[00:41:39] PUBLIKA: Oh sranje. U redu. Ona želi ići tim putem. O sranje, that-- 

[00:41:44] DAVID J. Malan: Da. Sekundarni cilj je da se sve zvijezde. U redu, sljedeći. 

[00:41:53] Idemo vidjeti ako možete dobiti ovaj treći. Dobro. U redu, idi tamo. 

[00:42:06] Naravno. Oh, jako lijepo. U redu. 

[00:42:11] Pa zašto ne bismo odgodi danas ovdje? Neka netko dođe na do tko želi igrati. Hvala toliko Lauri naš volonter. A mi ćemo vas vidjeti u ponedjeljak. 

[00:42:18] PUBLIKA: Vi vjerojatno želite vratiti ih natrag. 

[00:42:21] ZVUČNIK 2: Na sljedećem CS50--