DAVID J. MALAN: Rendben, így ez itt a Myo kar sáv, egy pár, amelyhez volna a CS50 végleges projekteket. És ez volt a demonstráció mi várakozó téged előre, ha lényegében ez meglehetősen szűk karszalag itt figyeli a izommozgások hogy ezután leképezve szoftver hogy Colton a laptop itt, amely volt, az iTunes és a dal már sorban álltak. Ahelyett, hogy én ezt demoing, Colton volt a laborban egyértelműen minden héten kapok egy demonstráció készen áll egy bátor önkéntes. Ha valaki szeretne jönni A up-- látta a kezét először. Gyere fel. [00:01:09] Rendben van. És mi a neve? 

[00:01:13] KÖZÖNSÉG: Uh, Maria. 

[00:01:14] DAVID J. MALAN: Maria, örülök, hogy látlak. Gyere ide. Hadd mutassam be Colton. Colton, ez Maria. 

[00:01:21] COLTON: Szia, örülök, hogy találkoztunk. 

[00:01:23] DAVID J. MALAN: All Rendben, az első lépés, vagyunk megy, hogy teszel ezt a alkar úgy, hogy elég szoros up mellett a könyökét. És közben, vessünk fel a Google Glass és mi keverjük technológiák ma. 

[00:01:33] COLTON: Először is kell majd horog ez a dolog. 

[00:01:36] DAVID J. MALAN: OK. Valójában, hadd tegye a karját, közel ezt a kábelt a lehető hogy mi lehet először szinkronizálni fel. 

[00:01:41] COLTON: Csináljuk ezt. 

[00:01:42] DAVID J. MALAN És közben, így hogy mindenki kap egy közelebbi pillantást, akkor dobd András kamera a képernyőn ott. Tehát van egy USB-kábel, ami van dugva Maria karszalagot. És hadd dobd Colton képernyőjén fel a projektoron következő. 

[00:02:00] Így Colton regisztrálja a készülék most egy Myo ehhez kapcsolódó kábelt. És most mi Mária fog tenni egy pillanatra ténylegesen séta A kalibrációs lépések és tanítani a szoftver hogyan reagálnak az izmai amikor bizonyos előre meghatározott int, hogy a szoftver megért. Ha azt szeretné, hogy menjen a képernyő előtt. OK, próbálkozom. 

[00:02:30] COLTON: Menj, mint ez. És mint azt. És egészen jobbra. Menj vissza. 

[00:02:35] DAVID J. MALAN: OK. Más perspektívából. Ez nem te vagy. Ez minket. 

[00:02:40] MARIA: OK. DAVID J. MALAN: Nem. Menjünk azt feljebb így közelebb a könyök, vagy még szorosabb. Rendben van. 

[00:02:52] Itt vagyunk. Ez lenne egy jó ideje CS52X. Ott megyünk. 

[00:02:57] Nagyon szép. OK. Thumb a Pinky. 

[00:03:02] Nagyon szép. Spread ujjait. Jó. Hullám jobbra. Ez furcsán mutat Ön a bal hand-- 

[00:03:17] COLTON: Igen, ez furcsa. DAVID J. MALAN: Wave a jobb és előrelépni. Ugorjunk hagyja vagy a következő. Ez OK Hullám jobb. 

[00:03:25] MARIA: Én nem-- várni. 

[00:03:26] DAVID J. MALAN: Kell egy kis segítség? 

[00:03:28] COLTON: Szóval megy, mint ez. MARIA: Ez fordult a Más dolog, mégis. COLTON: ez. DAVID J. MALAN: Igen, én nem tudom, miért ez megmutatja a leftie. COLTON: Miért nem try-- csak próbálja meg megy, mint ez. 

[00:03:38] DAVID J. MALAN: Nem? Lehet, hogy elérje a karját egy kicsit egyenesebb és tegye azt hirtelen, mint ez. Ja, OK, gyerünk. 

[00:03:48] MARIA: sajnálom. DAVID J. MALAN: Ez nem a te hibád. COLTON: Ez rendben. DAVID J. MALAN: All Right. Well-- 

[00:03:56] MARIA: Ha kihagyjuk ezt, akkor? DAVID J. MALAN: Igen, most segítségével ki a horgot. Tehát, ha valaki szeretne csinálni egy projekt végső ezzel a vágó él hardver, észre talán csak hogy egy kicsit szokni kell. És this-- a valóság ez valójában nagyon vérzés él. 

[00:04:10] Ez az, amit a neve A fejlesztő készlet, amely célja, hogy az lényegében a kiadás előtti hogy az emberek nem pontosan this-- harcolni vele, alak meg, hogy az emberek szervek munkájának a technológia. Tehát, ha azt szeretnénk, azután, miután előadás, mi jön, és segítségével újabb stab rajta. De egyébként, a tapsot, ha tudnánk, Maria az jön fel. 

[00:04:26] MARIA: Köszönöm. 

[00:04:28] DAVID J. MALAN: Köszönöm. Majd tarts erre, de meg fogunk tenni you-- mit szólnál egy stressz labdát itt? Oh, és-- if-- igen, köszönöm. Rendben van. Így a kíváncsi, ha volt ismerik a hang választás hogy mi történt ott korábban, egy csodálatos TV azt mutatják, hogy teljesen be legyen mértéktelen figyeli Netflix ez itt. 

[00:04:51] SPEAKER 1: Hölgyeim és uraim, Egy bűvész nevű Josh. 

[00:05:04] DAVID J. MALAN: És úgy tűnik, ez Egy dolog, hogy szöveget nekem közben előadás most. Én is hallottam, hogy Maria volt a születésnapja tegnap. Szóval boldog születésnapot tól CS50 Maria is. 

[00:05:18] Szóval lehet, hogy olvasott az elmúlt hónapban hogy ez az urak itt, Steve Ballmer, aki valójában osztálya 1977-ben a főiskola, nemrég visszavonult a Microsoft. Ő volt egyetemista itt, majd pár év múlva találta magát Stanford Business School amikor kapott egy telefonhívást hívni egy barátja, aki élt a folyosón tőle itt a Harvardon. Ismerőse neve volt Bill Gates, és abban az időben, akart toborozni, hogy Steve az első vállalkozó, tényleg, egy kis cég nevét Microsoft. 

[00:05:45] Egy hosszú történet rövid, Steve végül megnyerte, csatlakozott a Microsoft, amikor volt, mindössze 30 alkalmazottal. És mire nyugdíjas egészen a közelmúltban, A vállalat alkalmazottai 100000 Az elmúlt néhány évben. És így a weboldal néven The Verge készítette el ezt a tribute videó hogy azt gondoltuk, mi lenne a közös, hogy ad egyfajta, hogy mennyi energiát Steve hoz bemutatkozó ő ad. [VIDEO LEJÁTSZÁS] -Microsoft, Mint egy negyedik gyermeke. A gyerekek nem hagyja el a házat. Ebben az esetben, azt hiszem Én elhagyja a házat. Hey Bill, whazzap? 

[00:06:23] -Wazzap? 

[00:06:24] -Hé, Wazzap? Már kapott óriási lehetőség. És Bill adta nekünk ezt a lehetőséget. Szeretnék köszönetet mondani Bill ezért. Azt akarom, hogy túl. Az innováció ütemét nem fog lassulni. 

[00:06:42] Ez lesz, hogy gyorsabban és gyorsabban. Lehet, hogy néhány versenytárs hogy sajnos megszűnt! 

[00:06:54] Szeretem ezt a céget. Igen! Én vagyok a PC, és én szeretem ezt a cég! 

[00:07:08] A fejlesztők, fejlesztők, fejlesztők, fejlesztők, fejlesztők, fejlesztők, fejlesztők, fejlesztők. Igen! Web fejlesztők! 

[00:07:19] Web fejlesztők! Web fejlesztők! Hallgassa meg mi mást kap, felár nélkül! 

[00:07:28] Az MS-DOS végrehajtó, egy találkozót naptár, a kártya halom, a jegyzetfüzetet, Egy óra, egy vezérlő panel. És tudod ezt hinni? Reversie! 

[00:07:35] Burn őket CD-t! Tegye fel őket az MSN! Meg mailben a barátainak! 

[00:07:40] Minden egy kattintással! Egy Microsoft, egy stratégia, egy team-- koncentrált, fegyelmezett, profi, és szakértői minden, amit teszünk. Hadd használjam a vonal egy régi film. 

[00:07:52] A kapcsolatok olyanok, mint a cápák. Mozognak előre, vagy meghal. Igazából gondolom tech egyforma cég. 

[00:08:01] [END VIDEO LEJÁTSZÁS] DAVID J. MALAN: Tehát Annyira tetszett, hogy be, hogy Steve is csatlakozik hozzánk Itt CS50 jövő szerdán a szokásos helyen és időben itt. Tér valószínűleg korlátozott. És így, hogy csatlakozzon hozzánk személyesen, kérem fej ma, vagy nem sokkal később a cs50.harvard.edu/register. 

[00:08:22] És követni fogjuk fel Kedd megerősítve foltok. Várom, hogy, hogy a következő Szerda folyamán előadás CS50. Most, egyéb hírek, véletlenül találkoznak ezt a The Crimson csak a minap. 

[00:08:34] Kiderült, hogy az egyik CS50 személyzete és legalább egy, a CS50 diákok jelenleg fut az UC elnöke és alelnöke, amely hozta vissza a saját nap vissza amikor elvesztettem az UC választás szerencsétlenül. De a vigasz hogy az mindig elmondani a történetet, hogy a az egyik biztos vagyok benne, Sok oka Elvesztettem a választás volt a teljes hiánya A tehetség a nyilvános beszéd. És őszintén szólva, azt vezetett engem, hogy a tapasztalatok Azt hiszem, a junior év, hogy valóban aláírja fel Harvard Számítógép-tudományi Társaság, amely a csoport az egyetemen, hogy a rendelkezik különböző technikai tárgyalások és egyéb dolgok. És én vette át a tanítási szemináriumok és ezért volt lehetőség, a csodálatos lehetőség, kezdeni dolgozni pontosan ezt. De, volt egy lehetőség alatt ez az élmény tanítani magam annál HTML. És így halogatták tegnap este nézegette a HTML alapú weboldal Úgy készült, mint a 1997, '98, az én kampány, amely úgy néz ki, mint ez itt. Tudom. 

[00:09:29] Because-- és persze, értesítés ez a csodálatos kialakítás határozat 1998 vagy miegymás. Az első dolog, amit akar felhasználók hogy tennünk kell a látogató a honlapon az, hogy kattintson egy linkre, csak adja meg a honlap itt a szerzetes mögött, mint egy burkolt függöny ahol nyilvánvalóan a kampány platform volt. És ez minden, amit kapsz ma csak egy screenshot. De olvastam át, mint a, a kampány plakátok tegnap este és a platform. 

[00:09:50] És én annyira dühös az időben. Saját platform was-- érdekes volt. Szóval megnyugodott azóta. De egy nap, én fut újra és remélhetőleg jobb ebben az időben. 

[00:10:03] Szóval HTML, hogy a nyelv az, amit tett hogy in-- hamarosan csinál sok more-- olyasmi, amit már beszél késő és nagyrészt Ha igaz, most hogy már továbblépett más nyelveken. De nézzük szünetet egy pillanatra és fel ezeket a dolgokat a kontextusban. Tehát egy mondatban, hogy mi az a HTML? 

[00:10:18] Vagy milyen betegségek esetén alkalmazható? Valaki? Igen. 

[00:10:20] KÖZÖNSÉG: Markup honlapok. DAVID J. MALAN: Markup honlap. Tehát ez egy leíró nyelv, amely segítségével felépíteni egy weboldalt. Header megy itt, cím megy itt, test megy itt. Ez félkövér, ez italics-- az efféle részletek. 

[00:10:33] OK, jó. Így CSS segítségével you-- és én vett néhány szabadságjogok ott A merész néző dőlt, mert ami jobb megvalósított ezzel. CSS ez-- mi? Mondjuk egy mondatban. Bárki egyáltalán. Igen. 

[00:10:46] KÖZÖNSÉG: Díszítmények és dolog, mint hogy hogyan tervezzük meg. DAVID J. MALAN: OK, jó. Díszítmények, amelyek lehetővé teszik a tervezés, vagy azt stilizálhatja A dolgok, mint a félkövér és dőlt és a színek és több finom szemű elhelyezése elemekkel. Ez a fajta lehetővé teszi, hogy a dolgokat a utolsó mérföld hogy ha, például, A Pset7, lehet, hogy észrevette a portfólió oldal, ha ezen a ponton már, hogy az alapértelmezett tábla, amit hogy megmutatni a felhasználó árukészlet és készpénz valószínűleg néz förtelmes alapértelmezésben nem fehér térben. Minden a fajta összezsúfolva együtt a sorok és oszlopok. 

[00:11:18] Nos, egy kis CSS, mivel lehet megvalósítani, akkor valóban csípés, hogy, és ez valami sokkal jobban ismerik, és még sok szebb nézni. Tehát CSS szól stilizálás honlapok. De akkor mi vezetett újabb nyelv, PHP, amely lehetővé teszi számunkra, mit csináljon? 

[00:11:36] Nézzük csak mit csináljon? Bárki. Van, hogy a kockázati túl az első pár sort. Igen. 

[00:11:40] KÖZÖNSÉG: generálása dinamikus tartalom. DAVID J. MALAN: Tökéletes. Létrehoz dinamikus tartalom. És meg tudod csinálni ezt tetszőleges számú nyelven. Mi történik a PHP, mert részben így hasonlít a C szintaxis. 

[00:11:50] De a PHP pontosan így működik. Ez lehetővé teszi, hogy dinamikusan a kimenet. És bizonyos, hogy a kibocsátás lehet HTML, ahogy már jellemzően csinál. És azt is, mert egy programozási nyelv, A mechanizmus, amelyen keresztül beszélhetünk adatbázisokhoz. 

[00:12:03] És tudjuk, hogy a lekérdezések más szerverek mint Yahoos és programból semmit Tényleg, hogy lehet, hogy másképp szeretnénk, hogy kényszerítse a számítógép nem. Így PHP lehetővé teszi számunkra indul dinamikusan kimenetre tartalom. Tehát ez a logika, nem volt Dinamikus weboldal vissza 1998-ban. 

[00:12:16] Ez csak egy statikus weboldal. A tartalmi kellett változtatni kézzel gedit, vagy valami hasonló. De a PHP, amit használnak, vagy használhatta volna, inkább, valami hasonló a Frosh PM weboldal, amely kellett volna, hogy regisztrációk és kezelheti a users-- dolog, hogy valóban változik át idő, még akkor is megtörténhet Perl, a másik nyelv abban az időben. 

[00:12:35] És akkor végül, mi vezetett SQL-- Structured Query Language. Tehát még egy másik nyelvet hogy használják, mi? Használt milyen? Tudunk vállalat slight-- OK, nem megyünk hogy sokkal messzebb mint a zenekar itt. KÖZÖNSÉG: Ez egy protokoll használt beszélni adatbázisokhoz. DAVID J. MALAN: A protokoll használt beszélni adatbázisokhoz. Hadd csípés. Ez egy természetes nyelv használható beszélni databases-- választja és beszúrások és törlések és a frissítéseket és a ténylegesen még több funkciót, hogy mi még nem is merült be, de érdemes, hogy explore-- hogy vizsgálja meg, mondjuk, a végleges projekt. Tehát vannak a különböző darabok. 

[00:13:09] És remélhetőleg Pset7, bár az előírás meglehetősen hosszú, ez szándékosan sokáig járni, keresztül, hogy ezek a dolgok mind tipizálni együtt. Most hétfőn, mi bevezette az utolsó nyelv hogy mi lesz hivatalosan bevezetik a A course-- vagyis JavaScript. Ez, mint a PHP, egy értelmezett nyelv. 

[00:13:25] De a fő különbség Javasoltam hétfőn az, hogy míg a PHP fut, vagy megmagyarázva a szerveren, ami ebben az esetben a készülék CS50, vagy lehet, hogy egyes kereskedelmi web szerver az interneten, JavaScript általában egy olyan nyelv, amely fut a kliens oldali nem szerver side-- így a böngészőben. Ami azt jelenti, mint amikor kinyitottam up Facebook forráskód és találta meg e Js fájlokat, az kihatással volt hogy amikor meglátogatja a Facebook vagy a legtöbb weboldalak ezekben a napokban, akkor kap nem csak a HTML, CSS nem csak, de egy csomó JavaScript kód gyakran formájában Js fájlokat. És akkor ez a browser-- saját Mac vagy PC-- amely végrehajtja a kódot. 

[00:14:03] De a böngésző végrehajtja. Azt hiszem az a fajta a homokozóban. Annak érdekében, hogy a JavaScript kód ne legyen tudja törölni a fájlokat a számítógépen. Meg nem képes küldjön e-mailt az Ön nevében. Az Ön böngészője fajta korlátozza mit lehet csinálni vele. 

[00:14:17] Tehát ebben az értelemben, ez egy kicsit kisebb teljesítményű, talán, mint C. De JavaScript is, mint egy félre, lehet használni a szerveren, bár mi inkább nem beszélni erről ebben az összefüggésben. Tehát most nézzük ezeket köti össze. Egy héttel ezelőtt, valamint bemutattuk néhány HTML A left-- szuper unalmas weboldalt. 

[00:14:34] Csak azt mondja, hello world. És akkor én javaslatot a jobb tudunk típusú lopni ötletek a mi vita adatszerkezetek C és arra gondolok, hogy ez a hierarchikus jelölőnyelv, a bal oldalon lehet levonni, illetve végrehajtani a memóriában mint tényleges fa struktúra csomópontok és mutatók, valamint az ilyen jellegű adatokat. A jobb oldalon, nevezzük hogy a dokumentum DOM-- Objektum Model-- ami csak divatos szóval fa. 

[00:14:56] Most, hogy ez miért hasznos gondolom ezt így? Mert most JavaScript, mert van kód lesz játszani ebben környezet, a tényleges HTML, ami küldték meg a böngésző már, és már betöltve a memóriába a böngésző egy fa a számítógép RAM, mint ez, tudjuk használni JavaScript hogy valóban áthalad, vagy gyalog, vagy keresés vagy változtatni DOM fa viszont szeretnénk. Így valójában, ha úgy gondolja, körülbelül facebook.com, ha használja a chat funkciót, ha használat Gmail és a gchat funkciót, bármi, ahol van üzenetek jönnek újra és újra és újra, ezeket az üzeneteket talán, mint, LI tag, List Item címkéket, talán. 

[00:15:35] Vagy talán ők csak divs hogy folyamatosan jelennek meg minden alkalommal, amikor egy azonnali üzenetet. És ez csak azt jelenti, amit Facebook vagy a Google csinál A minden alkalommal, amikor egy üzenetet a szerver, ezek valószínűleg a JavaScript hogy csak egy újabb csomópontot e tree-- másik csomópont erre fa, akkor vizuálisan csak úgy néz ki mint egy új sort a szöveget a képernyőn. De ők behelyezése ebbe adatszerkezet. 

[00:15:57] Így osztályok, mint a CS124 és mások, akkor valójában írni több kód ellen adatszerkezetek, mint ez. De most a JavaScript, mi csak feltételezzük, megkapjuk az összes ezt a funkciót ingyenesen a nyelv maga. Szóval nézzük meg egy példát. 

[00:16:09] Hadd nyit nevű fájlt form.html. Ez szuper egyszerű. Csak úgy néz ki, mint ez. 

[00:16:15] Nem CSS, nem gondoltam, hogy az esztétika. Ez tisztán funkcionális és nyilvánvalóan én vagyok kér egy e-mail, jelszó, jelszó újra, majd egy csekket hogy elfogadja bizonyos feltételek mellett. Mi a forráskód erre úgy néz ki, mint talán valami sejteni lehet a kis gondolkodás most. Van egy form tag itt. 

[00:16:32] Az intézkedés látszólag fog menj nevű fájl register.php. A módszer fogom használni, hogy kap. Aztán kaptam egy szöveges mező akinek a neve az e-mail. 

[00:16:40] Van egy jelszó mező akinek a neve a jelszót. Van egy másik jelszó mező, akinek a neve némileg önkényesen megerősítés. Ez csak egy HTTP paraméter. 

[00:16:49] És akkor most már nem használják ezeket, kivéve mivel a Frosh PM demo class-- egy jelölőnégyzetet, amely Csak típusú egyenlő ellenőrzés. És Hívom a megállapodást. Szóval ilyen önkényesen, hanem kényelmesen nevű ezeken a területeken. Ahhoz, hogy most, amikor ebben a formában lesz be, lássuk, mi történik. Ha én malan@harvard.edu, Fogok csinálni egy jelszót bíbor. Fogok csinálni egy jelszót sem. Ne együtt. 

[00:17:10] És nem fogom ellenőrizni a dobozt. Hadd kattintson a Register. És azt mondja, hm, te regisztrált. Nem igazán. 

[00:17:16] De az URL megváltozott. Így ebben a formában egyértelműen megengedett hogy nyújtson be register.php. De feltehetően, azt kell ami egyes ezeket a hibákat. Most, Pset7 és néhány mi előadás példák mi lenne általában kinyomtatni egy nagy piros hibaüzenetet itt mondván, hiányzó nevét, vagy hiányzó jelszó. Tettünk előtt és voltunk done szerver oldali hiba észlelése. 

[00:17:37] De sok honlapok manapság do kliens oldali hiba észlelése ahol az URL nem változik. Az egész oldal nem frissül. Ön azonnali visszajelzést a böngésző. Lehet, hogy valami nem piros. 

[00:17:48] Lehet, hogy kap egy pop up. De nem vesztegeti az idejét, hogy küld a szerver adatait, ami hiányos. Nézzük, hogyan lehet elérni, hogy a funkció is. 

[00:17:56] Hadd menjen form1.html, amely ugyanúgy néz ki. De ha most én malan@harvard.edu és én írja karmazsinvörös és én nem működnek együtt tovább de kattintson a Register, észre most. Ez nem a legszexisebb megoldás. Én legalábbis elkapta ezt a hibát. És én is használtam a riasztást funkció JavaScript-- amelyet mi csak használ az osztályban. Általában akkor ne használja ezt a mert nagyon gyorsan kijutni az ellenőrzés. De két jelszó nem egyezik a hiba. 

[00:18:19] Hadd menjek előre, és kattintson az OK gombra. De mi a legfontosabb elvihető itt az, hogy az URL nem változott. Szóval nem zavar pazarlás a szerver idő kérve a kérdés, hogy tudtam volna kitalálta a választ magamnak. 

[00:18:30] És a felhasználó számára, annak ellenére, beszélt erről hosszabb, mint a felhasználó fog gondolni erről, megy, hogy azonnali visszajelzést. Nincs várakozási idő a a hálózati kapcsolat. Szóval nézzük meg ezt a forráskódot. 

[00:18:40] Form1.html néz szerkezetileg hasonló itt. A forma valójában ugyanaz. De lássuk, mit tettem ide. És van különböző módon erre. És én csináltam a legtöbb egyenes követőelem de nem legelegánsabb módja még. Van egy script tag. Én majd hívja document.getElementById ("bejegyzés). És tárolja ezt az értéket formájában, a változó. 

[00:19:04] Szóval, mit tettem? Ön szerint az document.getElementById mint egy speciális funkciót, amely JavaScript ad hogy a szó szoros értelmében a lapokkal mutatót egyik csomópont vagy téglalap a fán. Most, hogy az, amit a forma változó A JavaScript valójában mutat. 

[00:19:21] Tehát most a szintaxis eltér C. De csinálunk egy pár dolgot itt. Egy, ez egy kicsit furcsa látszó, biztosan versus C. De nézd meg a 35 sort. Így a bal oldalon form.onsubmit. Emlékezzünk vissza, hogy az onsubmit mint egy mezőt a struktúra. Ha úgy gondolja, az űrlap változó csak hogy egy C struct, akkor lehet, hogy bizonyos területeken. 

[00:19:42] Vissza a nap, mi volt a diákok nevét, Azonosítók, házak, azok milyen területeken. Gondoljunk csak onsubmit mint más területen. De ez egy különleges terület, mert a böngésző beprogramozva számíthat .onsubmit, hogy nem lehet egy értéket mint egy szám vagy szöveg, de valójában egy függvény vagy a cím egy függvény a számítógép memóriájában. 

[00:20:02] És valóban, ez az, ami ez a kulcsszó itt nem. Ez azt mondja, ad nekem egy új funkció. De mi a neve lesz, látszólag? 

[00:20:09] Visszagondolva a hétfő. Mi a neve ennek a függvény ezen szintaxis? Nem, úgy értem, ott egyértelműen nincs neve associated-- biztosan nem azt, amit emeltük ki. 

[00:20:21] De ez valójában az OK gombra. Ez egy névtelen függvény, vagy a lambda funkció, mint egyesek nevezik. És ez csak azt jelenti, ez még mindig egy függvény. Csak, akkor nem nevezném név szerint. De ez rendben van. Mert újra, a böngésző már által programozott cégek, mint a Google vagy a Microsoft vagy a Mozilla vagy másokat csak tudom, hogy ha a .onsubmit mező belsejében egy űrlap elem a érték, kezelni, mint egy function-- a függvény mutató, ha úgy tetszik. És hívják, amikor az űrlap elküldésekor. 

[00:20:46] Szóval, milyen kódot kell végrehajtani ha az űrlap elküldése? Úgy tűnik, minden belül a zárójel. És ez csak stilisztikai. 

[00:20:53] Te is ezt, mint hajlamosak vagyunk itt CS50. De a JavaScript, a legtöbb ember hajlamosak tartani ugyanabban a sorban csak azért, mert még nyilván társított kulcsszó funkcióval. Szóval, most mit csinálok? 

[00:21:03] Ha form.email.value egyenlő az egyenlők üres string vagy semmit, itt van figyelmeztető hol fogok mondani, meg kell adnia e-mail címét, majd vissza hamis. És ez az a visszatérés a hamis, hogy megakadályozza, hogy az űrlap benyújtani. Közben, ha a jelszó értéke üres, fogok kiabálni a felhasználó és azt mondja, meg kell adnia egy jelszót. 

[00:21:21] Közben a dolgok egyre egy kicsit cifrább itt. Ha form.password.value nem egyenlő form.confirmation.value, a többi területen, kiabálni a felhasználót, hogy a jelszavak nem egyeznek, mivel nem egy pillanattal ezelőtt. És akkor ez az ember egy kis szexisebb mert tudom, hogy tudtam, hogy fogalmilag ellenőrzik a jelölőnégyzetet nevét. 

[00:21:40] Szóval csak használni egy felkiáltójel pont szerint, ha az ellenőrzés nem checked-- ez a logikai érték, igaz vagy false-- Majd kiabálni a felhasználót ezért. Ellenkező esetben, ha átjutunk mindezek a feltételek, nézzük csak vissza igaz. Hagyja, hogy a forma kell benyújtani. És ez akkor történik. 

[00:21:56] Nézzük írja be a vörös. Nézzük a mezőben kattintson Register. És most megyek át a célállomás. Nos, nincs ott tárol. Nincs semmi érdekes A register.php. Csak kellett valami hogy valóban beszélni. Hadd szünet, itt. Minden kérdésre, amit már most kész vagy, amit néhány új szintaxis? OK, igen? 

[00:22:17] KÖZÖNSÉG: Tehát bármilyen jelölőnégyzetet automatikusan egy logikai. Nem kell bejelenteni azt, mint ezt. 

[00:22:21] DAVID J. MALAN: Helyes. Minden négyzetet, ami küldött nektek HTML űrlapot a JavaScript kódot lesz kezelve, igen, mint a Logikai value-- igaz vagy hamis. Ez egy jó kérdés. Míg a többi értéket, a Persze, már a szöveg, AKA szálakat. 

[00:22:36] Rendben, hadd visszatekerés egy kicsit tovább. Mi volt a lényege ennek? Csak hogy világos legyen. Mint már tudjuk, még a Pset7 és még a múlt heti előadás példa, hogy nyilvánvalóan ellenőrizni $ _GET $ _POST, Hogy ha a felhasználó ad nekünk egy üres értéket. Ne feledje, az üres függvény a PHP. 

[00:22:54] Szóval, csak hogy tisztázzuk, mi egyik oka annak, hogy esetleg a akarom ezt a hibát ellenőrzés belül a böngésző? Mi a motiváció itt? Igen. 

[00:23:06] KÖZÖNSÉG: Gyorsabb, és akkor nem küld haszontalan adatokat a szerverre. DAVID J. MALAN: Jó. Ez gyorsabb. Nem küld haszontalan az adatokat a szerverre. 

[00:23:12] Szóval vissza a több azonnali válasz. És az általános, a felhasználó tapasztalat jobb. Gondolj az alternatíva. 

[00:23:17] Ha Gmail-- volt Az eset sok évvel ezelőtt. Tegyük fel, hogy van egy új e-mailt a Gmail számla, de az egyetlen utat látni, hogy az, hogy, mint, újratölti az egész oldalt. Vagy tegyük fel kattint link olvasni egy e-mailt. 

[00:23:29] Mindennek reload így hogy lássuk az e-mail. Vagy Facebook-- kapsz egy chat-üzenetet. Nem lát, amíg meg reload Az oldal, vagy kattintson bizonyos kapcsolat. 

[00:23:36] Mint ez lenne rettenetesen bosszantó felhasználói élményt. És ez az, ami olyan volt, mint, világosan, vissza, amikor én futottam UC és az interneten sokkal kevésbé volt dinamikus és JavaScript nem volt olyan népszerűvé mint most. És a dolgok egyre sok dinamikusabb és még sok más kliens oldali ebben az értelemben. 

[00:23:49] De van egy fogás itt, és ez a fajta egy bosszantó vigyáz rád. Csak azért, mert hozzá kliens oldali detektálás, mint ez nem jelenti azt, akkor vagy fel kell adnunk szerver oldali detektálás. Azt szeretnénk, hogy lényegében a hiba ellenőrzése mindkét helyen. Mert mi volt az egyik A tanulság A cikket olvastam néhány részletét származó ezzel a hülye CMS system-- Content Management System-- volt végrehajtásában hitelesítési rendszer, a login via milyen mechanizmus? JavaScript. 

[00:24:20] KÖZÖNSÉG: JavaScript. DAVID J. MALAN: JavaScript, pontosan, igaz? Ezt a JavaScript. És a szó szoros értelmében, a srácok játszott egy kicsit talán A Chrome Inspector. És ha megtalálja, ellenőrizze elem. 

[00:24:30] Hadd menjek át, hogy nem összes Chrome lehetőségeket. És ez mennyire könnyű az, hogy letiltása JavaScript a böngészőben. Ellenőrizze, nincs több JavaScript. 

[00:24:38] Így a méltányosság, a sok A web ezekben a napokban csak fog törni, mert Gmail és más sites-- Facebook-- feltételezik, hogy JavaScript. De ha csinálsz valami hülyeséget mintha csak érvényesítése felhasználók bemenet és ellenőrzése azt hiba a kliens oldalon, egy támadó könnyen csinálni. És akkor még okosabb ellenfél, mint ti most jönne Telnet vagy Curl vagy csak parancssori parancsok és valóban üzeneteket küldeni a szerverre hogy hasonlóképpen nem hibamentes ellenőrzik. 

[00:25:05] Tehát ez inkább egy felhasználói felület döntés mint azt a tényleges szakmai improvement-- végrehajtási valami kliens oldali, mint ez. Tehát most egy gyors pillantást, de aztán Én elhalasztja az online séta keresztül ez. A forma két, valójában ment át és tisztították meg a kódot, egy kicsit. De hadd elhalasztja az egyik A videók fogunk valószínű az embed Pset8 hogy csak azt mutatja, a hasonló szintaxis használatával nevű könyvtárat jQuery, amely egy szuper, szuper népszerű könyvtár JavaScript hogy őszintén a legtöbb ember csak használja ezekben a napokban és még megzavarja a JavaScript lény is. 

[00:25:37] És inkább bevonni néhány dollár jeleket és kulcsszavak, mint a dokumentum zárójelben van. De ismétlem, hadd elhalasztja néhány lassabb tutorials Online helyett kap lekötött csak szintaxis. Menjünk tovább egy kicsit hűvösebb szempontjából a pályázatok e. 

[00:25:50] Így különösen, hadd menjen előre, és nyissa meg ezt itt. Gyerünk. Ott megyünk. 

[00:25:59] Hadd nyissa meg ezt a képet ide. Szükségtelenül bonyolult látszó, de írja nevezett technikával AJAX-- Aszinkron JavaScript és XML, ahol Az X XML valójában már nem igazán használják. Úgy látszik, hogy használni valamit más néven JSON. 

[00:26:13] De itt van, hogy valami hasonló Google Maps vagy a Google Earth működik. Próbáljuk ezt menet közben, tényleg. Hadd menjek előre, és nyissa meg Chrome a böngészőben. 

[00:26:21] És hadd menjen be, mondjuk, maps.google.com. És valóban, ha a régi ahhoz, hogy emlékszem, mit, mint, MapQuest volt, mint vissza a nap, és talán még mindig a munka, mint ezt. Ha használt keresni something-- 33 Oxford Street, Cambridge, Mass, csináljunk this-- te valójában, ha akart pan, és le, balra és jobbra, akkor néz ki, mint egy nagy nyíl a tetején, és azt megtudhatja, másik keret a térkép itt. Vagy akkor kattintson a bal és te megy itt, vagy egy másik kattintással és akkor megy át ide. De ahelyett, hogy ezeket nap, amit természetesen csak magától értetődőnek vesszük, hogy tudunk menni Cambridge körül elég gyorsan csak kattintással és húzással. Vegyük észre, van némi hibák. 

[00:26:59] Ha ezt elég gyorsan, amit úgy tűnik, hogy történik ahogy húzza egy kicsit túl gyorsan a számítógép lépést tartani? Mit lát? Igen. 

[00:27:07] KÖZÖNSÉG: A pixelek nem frissül. DAVID J. MALAN: The a pixelek nem frissül. Van actually-- és te látta ezt, valóban, ha nézed az online és szünet ez vagy valóban lassítja a dolgokat A once-- látni fogod, hogy van csempe, négyzet, vagy téglalap, hogy a hiányoznak a térképet, amíg Egy pillanattal később több adatot, Még több kép a ténylegesen jelenik meg a képernyőn. És valóban, ha ezt a keresett up Chrome's-- mondjuk, Chrome-- lássuk. Nem tehetem. 

[00:27:31] Ó, Hoppá. Nézzük nyit maps.google.com. Engedjék meg, hogy az ablak nagyobb újra. 

[00:27:36] Menj vissza a 33 Oxford Street. Mi volt a honlap voltam mostanában? Volt ez, mint, hogy saját henceg magam, hogy én akkor lenne egy azonnali üzenetbe barátja, aki online volt aki akarta hallani. Van néhány weboldal. Azt hiszem, ez olyan Comcast-- egy nagyon nagy amerikai internetszolgáltató. Tudod, ha feliratkozik az új kábel modem szolgáltatás vagy kábel TV szolgáltatás, van egy nagyon kedvező formában ahol nem kérjük az Ön címét. És ezt a csodálatos nevű funkciót auto teljes, mint a Google, hogy kezd betelni A válasz a kérdésre. 

[00:28:04] A probléma az, hogy ezt az automatikus teljes Az első dolog, amit beírt. Tehát, ha elkezd írni a 33., a megmutatja, szó szerint minden ház Amerikában kezdődik A szám 33 mielőtt folytatná a elvárják, hogy írja tovább. Tehát, ha beírja 33 Oxford, akkor ez azt mutatja, ha minden utca Amerikában, amely a 33. Oxford nevét, függetlenül attól, hogy a város hogy te vagy az. 

[00:28:25] És akkor folytassa a gépelést. És végül, az rájön, hogy nem az ajánlat szolgáltatás otthoni Cambridge vagy valami ilyesmi. De a lényeg az, hogy ez a leginkább ostoba végrehajtása auto teljes valaha. 

[00:28:34] És én csak megy le ezen a tangens újra. De vannak jó módja, hogy használja JavaScript és rossz módon. És ez nem feltétlenül a legjobb. 

[00:28:40] De a lényeg itt, mielőtt ezt beszéd, az volt, hogy nyissa meg az eszközök ide és nyissa meg a fejlesztői eszközök, ahogy már korábban ösztönözni, és nézni a hálózat fülre kattintok nagyon gyors. És észre egy csomó Az kap kérelmek történt. Mindez történt, mert azt húzta. 

[00:28:57] És valószínűleg, sőt sok ilyen sorok most már kép slash JPEG MIME típusok vagy tartalom típusokat. Azért, mert amit csinál króm minden alkalommal, amikor kattintson és húzza, kattintson és húzza, ez már rájött, ó, mennem kell kérni a Google a cserép Térképen ez itt, gyorsan letölteni HTTP, majd add hozzá az úgynevezett DOM A webböngészők a memóriában fa ábrázolásán, hogy a felhasználó, engem, látja, hogy a frissített csempe. És ez azért van, mert nevezett technikával AJAX. Vissza a nap, ez tényleg volt a helyzet, hogy ha akarta változtatni, mi van a képernyőn, akkor kell kattintania fel, le, balra, jobbra. És akkor egy új oldal fog megnyílni. De ezekben a napokban, minden dinamikusabb. Ez történik, ahogy mi emberek lenne remélem, hogy tényleg lenne interaktív. És éri ezt el, módon nevezett technikával AJAX, ami talán a legjobban magyarázható egy példát. Először is, hadd menjen előre és nyit egy fájlt hívott quote.php a mai eloszlás kódot. 

[00:29:53] És akkor hadd tegye symbol-- Hoppá. Hadd tegyem szimbólum = GOOG mindössze néhány állomány. Vagy valóban, csináljuk a egyet a Pset ingyenes. Az Enter billentyűt. 

[00:30:05] És most észre, mit kapok vissza. Tehát ez egy nagyon rövid PHP fájlt én azt írta, hogy csak kölcsön kód származó Pset7 a keresési funkció és kiköpi ezt a zárójel és idézetek és vastagbél jelölés, látszólag, az aktuális tőzsdei ár a cég, hogy adja át a via kap. Szóval ez más a legtöbb, amit 've történik, hogy a közlemény vagyok szó szerint kiköpte amit úgy néz ki, mint a JavaScript kódot. 

[00:30:27] Tény, hogy ez egy JavaScript objektumot. Sőt, elég, ha a tiszta, JavaScript Object Notation-- JSON-- csak egy divatos módja mondván, hogy képviselheti adatok JavaScript sok mint akkor a PHP a kulcs-érték párokat. Tehát, ha azt akarta nyilvánítani a változó JavaScript a jelent Zamyla számára instance-- szerkezetre vonatkozó Zamyla-- és hívjuk meg diák, ezt a változót. Az ő azonosító egy, a ház Winthrop, és neve Zamyla. 

[00:30:53] De azt is, van egy sor tárgyak. Szóval, ha tényleg akartam, hogy tömb JavaScript tartalmazó Több olyan tárgyakat, ezt idő képviselő személyzet, Lehet, hogy ez a három darabokat a kód vissza vissza vissza e három korábbi alkalmazottak. Így a szintaxis, szép hasonló both-- a PHP. Ez különösen igaz a JavaScript. Ez objektum jelölés. Szóval mi ez a hasznos? 

[00:31:17] Ha írok kódot, kiköpi JSON-- JavaScript Object Notation-- dolgot, úgy néz ki, mint ez a cucc, vagy úgy néz ki, mint Zamyla szerkezetét, Én ténylegesen használni ezt programok írok. Hadd menjen ajax0.html. És ez nem sok too-- gondolta adott esztétika. De nézzük, mi történik. 

[00:31:34] Hadd menjek előre, és írja ingyenes. Kattintson kap árajánlatot. És észre az URL nem változott. De én nem kap egy pop up látszólag mai penny részvényárfolyam 0,15 $. Szóval nem olyan rossz. De a különbség az, hogy valahogy, ez az adat jött vissza hozzám közvetlenül. De vessünk egy lépés valami ismerős. Az egyik ez a változat, hadd típusú ismét szabadon, kattintson a Get idézet, és now-- ó, ez volt tulajdonképpen a jQuery verzió. Szóval én nem hozzám-- gyors előre elég messzire. Hadd menjen a két változat, ott, ahol akartam. Figyeljük meg, mit tettem ide. Van egy web page-- egy szuper egyszerű változata bármilyen weboldal akkor használhatja, ma egy szöveges mező itt ingyen, majd látszólag csak szöveget. 

[00:32:14] Ez nem egy forma itt, látszólag. De ha rákattintok kap idézet, észre a weboldal hamarosan változik, mintha én Most kaptam egy új azonnali üzenet vagy mintha csak át a térkép és szükséges, hogy minél több adatot hozzá dinamikusan a weboldal nélkül az URL változik, és a felhasználó tapasztalat szerzés megszakadt. Sőt, én még mindig a pontosan ugyanazt place-- ajax2.html. 

[00:32:35] Szóval nézzük csak meg ezt a példát és látom, hogy ez történik. Hadd menjek be ajax2.html. És észre az űrlap első. 

[00:32:44] Itt lent, én fordult ki az automatikus teljes. Néha ez lesz bosszantó, ha a böngésző megpróbálja megmutatni az egész történelem. Szóval lehet csinálni a HTML csak azt mondom, auto teljes kikapcsolása. 

[00:32:53] Én adtam ezt a szöveget a területen a symbol-- inkább egy azonosító szimbólum. És most, ez egy érdekes funkció. Még nem beszéltünk span, de gondolj rá mint a paragrafus vagy div tag. Ez az, amit hívják in-line elem, amely azt jelenti, hogy nem fog a bekezdés megtörni a felette és alatta. Ez csak fog maradni soros nélkül üti a megfelelője be. Úgyhogy adtam ezt darabja a HTML meg kell határozni egy egyedi azonosítót hogy önkényesen nevezett áron. És van egy Küldés gombot. 

[00:33:21] Mert már here--, és ez valóban szuper elképesztő, hogy kis kód írhat, hogy nem viszonylag tiszta things-- figyeld meg, mit tettem ide, ha lapozzunk fel a fejét ezen az oldalon. Én is először a fejem a script tag hogy valóban hivatkozik a JavaScript fájl máshol. Ez a szervezet hogy írja jQuery, és ez csak így a legújabb változatát a jQuery könyvtár. 

[00:33:42] Tehát ez olyan, mint az éles többek között a C vagy előírhatják PHP. Használja a script tag a forrás tulajdonság. De most a saját kód lesz jobb itt. 

[00:33:52] Figyeljük Van egy függvény nevű idézetek. És úgy néz ki, egy kicsit rejtélyes első pillantásra. De nézzük ezt kötekedni egymástól. Adj egy változó nevű URL-t. Rendeljen szó szerint ezt a fonalat. Szóval, aposztrófot, idézőjelek a JavaScript csak ad nekem egy húr. Mit jelent a plusz csinálni? Összefűzése. 

[00:34:08] Szóval ez most a jQuery szintaxis amely vesz egy kicsit szokni kell. De ez csak azt jelenti, hogy megy értem a DOM csomópont, amelynek egyedi azonosító jel. A hashtag ott jelent egyedi azonosító jel. 

[00:34:21] A dollár jel a zárójelek csak azt jelenti, betakar ez A jQuery egyfajta titkos szósz így kap további szolgáltatásokat. És akkor .val látszólag egy funkciót, vagy ahogy mi mondjuk most, eljárás belsejében a csomópont hogy csak megadja az értéket. Tehát röviden, csúnya és zavaros mivel ez úgy néz ki első pillantásra, ez csak azt jelenti, hogy a felhasználó beírt az, tedd a végén a húr a összefűző azt. Ez minden. 

[00:34:43] Tehát most, az utolsó három sor. Akkor nyomjon egy csomó funkciók közül három sor. Ez a dollár jel, mint egy félre, csak egy becenév egy speciális globális változó az úgynevezett szó jQuery. 

[00:34:55] Dollár jel csak néz ki. Így a jQuery közösség csak ilyen A használt, mint a speciális szimbólum. Ez nem jelenti azt, hogy mit jelent a PHP. A JavaScript, dollár jel mint egy betűvel vagy több a változó. 

[00:35:07] Tudod csak van ez, mint a neve. Csak néz ki. Így a közösség fogadott, mint egy becenév saját könyvtár nevű jQuery. 

[00:35:13] És ez szuper népszerű. Szóval JSON pontosan azt. Ez egy függvény, amely a hozzátartozók a jQuery írt hogy lesz egy JSON server-- JavaScript Object Notation. Abból, amit URL megy hogy ezt az információt? Úgy látszik, ebből URL itt. 

[00:35:27] És mit kell csinálni, mint a böngésző amint kap vissza ezt a választ? És ez a varázslat az AJAX, így speak-- aszinkron JavaScript XML. Nehéz látni egy ilyen egyszerű például mi volt itt. 

[00:35:41] De ez volt az aszinkron az értelemben, hogy a kódot, ha végre küldött egy üzenetet, hogy a szerver menj nekem JSON. És ez történt szupergyors hogy kaptam választ. De ami igazán érdekes, hogy ez a kódsort nem akasztotta a számítógépet. 

[00:35:55] Nem láttam a forgó ikont. Nem veszíti el a képes mozgatni az egér. Böngészőm valójában tökéletesen megfelel. 

[00:36:01] Mivel az út JavaScript kezeli a a kiszolgáló válaszát a következő. Regisztrálja, amit hívnám visszahívási függvény, amely csak azt jelenti, hé, a JavaScript. Amint a szerver válaszol JSON, kérjük, hívja a névtelen függvény. 

[00:36:18] És kérlek, átment ez a funkció bármilyen húr a szerver kiköp érvként nevű adat. Tehát más, szóval, ha Én összeszerelés dinamikusan URL quote.php halad ebben szimbólum, mint a szabad vagy GOOG vagy miegymás, Én akkor mondom JavaScript megy kap, hogy URL-t. Ne feledje, hogy a böngésző fog visszatérni valami úgy néz ki, mint láttuk earlier-- ezt. 

[00:36:42] És mi a második érv ide JSON mond az ezt a funkciót ha a szerver visszajön legyen szó akár 10 ms múlva vagy 10 másodperc múlva. És amint te, hozzá az ár az oldalra. Ez a szintaxis itt csak azt jelenti, hogy menj a csomópont A fa, amelynek egyedi azonosító az, hogy price-- span láttuk korábban. 

[00:37:01] Ez a módszer az úgynevezett HTML csak azt mondja, menj helyére a HTML, ami ott data.price. Mi data.price? Nos, a böngésző, emlékszem, megmutatta nekem ez jön vissza. Szóval ez az adat. 

[00:37:14] És ez így egy kicsit rejtélyes hogy a vesszőt itt. De valójában, hadd tegye ezt. Hadd be ezt a igazi böjt a gedit és meg kell mutatni ezt, mint mi azt mutatta, Zamyla szerkezetét korábban. 

[00:37:27] Mi a szerver küld vissza a kis tárgy, hogy úgy néz ki, mint ez. És így van data.price csak hogy nekem 0,1515. Tehát sok mozgó alkatrészek itt egyszerre. 

[00:37:39] De a legfontosabb az, elvitelre hogy van ez a képesség hogy további HTTP kéri a JavaScript anélkül, hogy újra az oldalt. És akkor mi is valójában módosítsa a weboldal menet. És kiderül, hogy a JavaScript és más nyelveken lehet használni már nem csak mutáció weboldalak, de valójában írni szoftver Egy igazi számítógép nem csak korlátozódik a Chrome vagy hasonló. 

[00:38:00] Sőt, if-- Colton, azt szeretne csatlakozni hozzánk vissza ide Ön labor kódot, és Chang is? Menjünk előre, miután beszélt névtelen függvények és visszahívások és tényleg csábít sors ide egy élő demo vérzés él technológia, az egyik ezek Elite Motion eszközöket. Nos, ez a készülék, visszahívás, egy kis USB-eszköz valamint hogy-- ez beautiful-- kell bedugni az USB port. 

[00:38:25] És akkor nyújt bemenet formájában emberi gesztusok észlelésével segítségével infravörös sugarak, lényegében szállításokra a karját. Szóval, mivel mi Maria megpróbálta előtt volt izmos, valójában érzés, mi változik a kar, ez infravörös alapú. Így keres belüli mozgások az a fajta gömb egy láb, vagy úgy A készülék maga. 

[00:38:46] Akkor miért nem veszem a stab az első? És menjünk előre, és dobja Ön fel a felső itt. Tehát mondjuk Colton laptop itt. Megvan András a TV-n. És mit szeretnél, mit tegyek először? 

[00:39:00] COLTON: Menj előre, és csak tegye a kezét a srác és látni fogod, néhány mesés csillogás. 

[00:39:04] DAVID J. MALAN: Nagyon szép. Mindez történik valós időben. OK. Rendben, és igen. Olyan szép. Rendben, mi mást tehetnénk? 

[00:39:15] COLTON: Ugrás a következő képernyőn, és meglátjuk. 

[00:39:17] DAVID J. MALAN: Rendben. 

[00:39:19] COLTON: egy jó kis játék ahol kapsz, hogy a robotok. 

[00:39:21] DAVID J. MALAN: Rendben, tehát ez a hamis kéz mutatja meg, mit tegyek. COLTON: Igen Így megy előre, és megragad az egyik blokkot és tedd a tetejére, hogy a robot testét. DAVID J. MALAN: Ó, ott van a kezem. Oh. OK, imádnivaló. Várj egy percet, OK. Ott megyünk. 

[00:39:41] COLTON: Csináltam egy a balesetek. 

[00:39:43] DAVID J. MALAN: OK, hozok ezt a fickót. A fenébe! Amikor mi voltunk az utolsó gyakorló este, tudod, mi ez a decentralizált? 

[00:39:51] Mint ez. OK. Következő? 

[00:39:55] COLTON: Persze. 

[00:39:56] DAVID J. MALAN: Rendben, és van egy harmadik. Rendben van. COLTON: És ez, kapsz to-- DAVID J. MALAN: Oh, ez gyönyörű. COLTON: --yeah, vedd szét ezt a virágot. DAVID J. MALAN: OK. Nem? Nem fogadott. 

[00:40:14] COLTON: Ó, tessék. 

[00:40:15] DAVID J. MALAN: Ah, Nézd meg azt. Nagyon szép. Nos, miért nem "veszünk ki az egyik önkéntes ide akik szeretnék, hogy jöjjön ki. Mit szólnál ott A zöld, ugye? 

[00:40:27] Rendben, és hagyja, hogy a have-- ahelyett, hogy néhányan talán tudja ezt a játékot here-- vágja el a kötelet, talán? Lássuk. Megvan a szemüveg itt? 

[00:40:37] OK. Köszönöm. Mi a neved? 

[00:40:39] KÖZÖNSÉG: Laura. 

[00:40:40] DAVID J. MALAN: Laura? Örülök, hogy látom. Ha nem bánod üzembe Google Glass át a szemüveg. Ez Colton. 

[00:40:46] COLTON: Szia. Örülök, hogy megismerhetem. 

[00:40:48] DAVID J. MALAN: OK, gyerünk körül. Rendben, mit fogsz nem itt, játszottak korábban, kerül a kezét A Leap Motion itt. És most a nyíl kell mozgatni. Ó, dehogy. 

[00:40:57] KÖZÖNSÉG: Nem. 

[00:40:58] DAVID J. MALAN: Mi nem akar leszokni még. OK, várj. Ide. Így észre ahogy tartod a ujj felett valami, az egér kezd menni a zöld, ami így kattintva. 

[00:41:06] Így felett lebeg játék. És csak az egyik ujját rendben van. És most kattintson a kis zöld fickó a bal oldalon. És most tart, amíg megtelik zöld. Jó. Most, mint, egy szint felfelé tetején. 

[00:41:16] KÖZÖNSÉG: Igen, szeretnénk szintű, itt. 

[00:41:20] DAVID J. MALAN: Jó. OK, ezért mindössze annyit kell tennie, hogy vágja el a kötelet. A kurzor az a fehér ott. 

[00:41:28] Nagyon szép. Rendben, akkor szól, hogy nehezebb. Így tartsa ujját az elkövetkező most. Jó. Ez egy nehéz. 

[00:41:39] KÖZÖNSÉG Ó szar. OK. Azt akarja, hogy így megy. Ó szar, hogy-- 

[00:41:44] DAVID J. MALAN: Igen. A másodlagos cél az, hogy a csillagokat. Rendben, a következő. 

[00:41:53] Lássuk, ha lehet kapni ezt a harmadik. Jó. OK, menj oda. 

[00:42:06] Persze. Ó, nagyon szép. Rendben van. 

[00:42:11] Akkor miért nem tárgyalunk itt ma? Legyen valaki jöjjön ki, aki játszani akar. Köszönöm, hogy Laura a önkéntes. És mi találkozunk hétfőn. 

[00:42:18] KÖZÖNSÉG: Talán szeretnénk ezeket vissza. 

[00:42:21] SPEAKER 2: A következő CS50--