[Muziciranja] ROGER ZURAWICKI: Hi, my ime je Roger Zurawicki, i ja ću biti pokrivanje CS50 Meteor seminar. Meteor je novi okvir posvećen novom vrstom web, Ne PHP izradu zahtjeva naprijed i natrag vrsta Web smo vidjeli u PHPP setu, ali dinamičniji JavaScript dijelovi webu. Stvari Meteor može učiniti uključuje live ažuriranja i odmah komuniciranje između korisnika istog web stranice. Za ovaj seminar, imamo kod domaćin na moj GitHub. Možete ići na ovaj URL i skinuti. Ako znate kako koristiti Git, možete klonirati repozitorij. Ako ne znate kako se koristi Git ili nisu korišteni GitHub, to je sasvim u redu. Ja ću vam pokazati jako brzo Kako možemo ići na GitHub, a postoji mogućnost da se Preuzmite ZIP pravo postoji. Nakon što ste preuzeli ovaj katalog, te Možete početi igrati s našim kodom. Više informacija o Meteor može se naći na meteor.com. Na seminaru mapi, zapravo sam imaju neke Meteor projekte možemo koristiti. Jedan od mapa koje imamo u našem Seminar projekt todos app. Dakle, ako idem u nju sam, imati instaliran Meteor. Tako da ga pokrenuti, ja samo trebate upisati Meteor, a Meteor će instalirati. Kao što možete vidjeti, moramo pobrinite se instalira Meteor. Pa ja sam samo ide pokrenite ga još jednom kako bi bili sigurni da je Meteor ispravno instaliran. Dok sam Meteor instalacija, mogu vam pokazati Neke žive demonstracije Meteor stranice ide uživo odmah na internetu. Imam demo našeg app. Možete mu pristupiti na sljedećoj URL. To je za napraviti app koji smo imamo u našem seminaru imeniku. URL za to rozu-rabbit.meteor.com. Vidjet ćete da je Meteor će zapravo domaćin meteora projekte besplatno. I na kraju seminara, ćete biti u mogućnosti to učiniti kao dobro. To je za napraviti popis aplikacija. A možete prijaviti, izraditi račune, i dodati zadatke. Možete napraviti račun kao što je tako. I sada, nakon što su račun, možete dodavati zadatke. Na primjer, jedan od zadataka I možda morati ići pokupiti svoje rublje. A ako ste na to stranica online, vi ćete zapravo vidjeti ovaj zadatak na računalo u realnom vremenu. Mogu vam pokazati brz demo to otvaranjem rozu-zeca U drugoj kartici s istim URL. I vidimo da je isti podaci dolazi. Također možete ga pokrenuti u drugi preglednik. Reci mi ga pokrenuti u Safari. Tako nismo prijavljeni. Dakle, imamo isti Meteor app, a nakon što opterećenja, ćemo vidjeti iste podatke smo radili u prvom. Kao što možete vidjeti, nisam prijavljeni ovdje. A kada se podaci provjerava publike, ažurira na svim preglednicima istovremeno. To je jedan od stvarno cool značajke o Meteor. S gotovo bez posla, što imaju live ažuriranja aplikacije da su promjene na svim Vaši uređaja odjednom. Ako provjerili sam kućicu ovdje U mom napraviti popis, mi ćemo imati, U mom drugom Chrome preglednik, Stavka provjeriti off. I to se događa trenutno. U redu. Tako to izgleda kao Meteor Instalacija je spremna sada. Dakle, sada idemo natrag u todos app i pokrenuti to na lokalnoj razini. Ako imate Meteor projekt, možete samo ga pokrenuti s komandne Meteor. Nakon što ste to učinili, Meteor će napraviti neke pripreme kako bi bili sigurni sve Vaš kod je pod kontrolom. A onda ću vam reći da je Projekt je spremna da bude služen. Možda ćete morati dopustiti tvoj firewall, ako vaše računalo blokira vas. Dakle, ono što Meteor mi govori sada je da je na ovim stranicama Lokalni na moje računalo, ja mogu vidjeti što je ovo Meteor projekt. Imajte na umu da je upravo sada, moj app je Nije dostupno na internetu. Mi ćemo pokriti kako bi meteora Aplikacija na live stranici malo kasnije. Pa ja sam samo ću kopirati ovaj URL i sada idu na Google Chrome. A to je za napraviti popis od primjera. Možete vidjeti da provodi malo više mogućnosti ovdje. Imamo različite kartice, mi imaju iste značajke računa, a možemo dodati nove liste. Sada, jedan od stvarno kul značajka o Meteor je da ne samo da mogu to raditi na vašem web pregledniku, ali također može stvoriti Izvorna iPhone i Android aplikacije kroz alat zvan PhoneGap. Dakle, neki projekti će doći pre-konfiguriran za pokretanje na iOS, kao što je ovaj todos app. Dakle, sve što trebate učiniti kako bi ga pokrenuti u iOS je tip Meteor, pokrenuti, a zatim za iOS. I kad sam to učiniti, Meteor ponovno će pripremiti paket. A onda, nakon što je spremna, to će učitavanje iOS simulator na moju zapovijed. Napomena možete samo pokrenuti iOS aplikacije Ako imate Mac računalo. Možete izvoditi svoje aplikacije na Android na svim platformama. Tako sada možete vidjeti da je moj iPhone Simulator je došao gore na moj zaslon. I u samo jednom trenutku, to će učitati s aplikacijom. Ako bi to samo malo manja da stane na zaslon, vidimo imamo iPhone aplikaciju. I samo da mi ne zbuniti, neka je učiniti sigurni smo na istom web, lokalni domaćin 3000. Dakle, ovdje je primjer od Meteor app imam, todos app, trčanje i na telefon i na web pregledniku. A kad sam promijeniti stvari u web pregledniku, to odmah ide na telefon. I ja mogu izbrisati nešto na telefonu, i to se mijenja u web pregledniku. Sada, obično stvoriti materinji Telefon app za iOS i Android, trebate znati ili Java ili Objektivni C. tehnologija Meteor namjene dopustiti JavaScript izvoditi kao Vaš app se zove PhoneGap. Koji je vaš app bitno je je web preglednik. I Meteor obrađuje sve lukav dijelovi uključeni za dovođenje tog web preglednik Vaš iPhone ili Android uređaj. Možete vidjeti da Korisničko sučelje je glatka, i to izgleda i osjeća se jako slično kao izvorni app. Uočite da ako odem u dom Zaslon sada, ja dobiti ikonu. Ovo nije web slično što bi se naći u Safari. To je njegov vlastiti app. Možete instalirati i izbrisati, ako želite. Mi ukratko mogu vam pokazati što kod za ovu vrstu Todos app izgleda. Ako pogledate u Todos mapu, ćete vidjeti postoji mnogo mapa. No, tijekom seminara, mi ćemo razumjeti što svaka mapa koristi za. Idemo u terminal pa smo Možete vidjeti datoteke malo bolje. Idem pritisnite kontrolu C za zaustavljanje poslužitelja, i sad sam natrag u Todos app. Imam različite mape ovdje, kao što su klijent mape, mape poslužitelja. I ove mape jednostavno znači da sve u mapu klijenta dobiva izvršava na vašem web pregledniku. Sve u mapi poslužitelja dobiva izvršava na poslužitelju. Ono što želim istaknuti kako je to ono što smo imali kad smo imali naš telefonski trčanje i naš web preglednik, to su bili klijenti. No, ono što je trčanje u terminal, to je server. Imamo i druge mape, kao što su lib, što je knjižnica koda, kao pomagač funkcije, koje možete koristiti na oba klijenta i poslužitelja. A onda imate javnosti mape i resursi Mapa potrebno za dobivanje Vaše slike i druge CSS učitava. Ako ste instalirali Meteor, mi ćemo nastaviti udžbenik za Meteor. Možete ići na ovaj URL, meteor.com/install, dobiti naredbenog retka koji sam Pokazali ste da instalira Meteor. Mi ćemo proći kroz prvi nekoliko koraka kako bi dobili bolji Osjećam kako instalirati Meteor. Ali prvo, mislim da je važno da ćemo pregledati malo JavaScript. Da vam pokazati neke primjere kako naša C znanje može prevesti JavaScript, imam stvorio nekoliko primjera. Oni su u js imeniku. Dakle, ako na seminarima mapu vas izgleda, postoji folder pod nazivom JS. I ovdje, imamo nekoliko primjera. Ajmo otvoriti prvi Primjer i vidjeti vrlo brzo. Ono što vidimo je vaš standardni Pozdrav svijetu naredbu. Možete primijetiti u C koja vas ima dosta nekoliko redaka. A što je CS50 studenti znaju, trebamo glavnu ulogu, i moramo uključiti standard I / O biblioteka, kako bi se nazvati printf. Pogledajmo kako JavaScript uspoređuje. Idem otvoriti ex1.js. Komentirao out je ono što C koda će izgledati, i crta ispod je sve morate pokrenuti u čvoru. Ne morate glavnu ulogu, te Ne morate uključiti sve datoteke, i ne morate se vratiti. Vi samo nazvati console.log. To je ekvivalent vašem printf. I to traje isto Argumenti printf bi. A kako bi ga pokrenuti, umjesto trčanje bi EX1, ti bi samo nazvati čvor ex1.js. Pišete čvor i zatim file, i to dobiva pokrenuti. To ne bi sastavio. JavaScript je tumačiti jezik. Dakle, to ne mora biti sastavio prije nego što je trčanje. Ako sam htjela pokrenuti ex1.c, Moram to učiniti prvi, a onda ja mogu pokrenuti izvršnu kako bi dobili isti rezultat. Idemo brzo pokriti neke drugi JavaScript pojmovi. Pogledajmo primjer dva. U ex2.js, u ex2.c, možemo vidim da imamo neki kod. Dopustite mi da brzo ići bolje uređivanje teksta koja će pokazati ove Nove linije bit bolje. U redu. Ovdje imamo primjer 2.c. Ovdje imamo različite vrste da smo ispis. A kao što znamo, printf traje različite posto argumenti pristupiti različite dijelove podataka. Ako želimo ispisati string, zovemo% s. Ako želimo pozvati plutajući Točka broj, nazvali smo% f. I ne postoji jednostavan način za pozivanje Boolean po istinite ili lažne vrijednosti. Ali ako koristite% d, možete dobiti 0 ili 1 za lažno i istinito. JavaScript je malo ljepše za nas. U JavaScript, pogledajmo malo Razlike imamo u ovoj datoteci. Prvo, primjetite da je u C moramo inicijalizirati varijablu svaki s tipom. S char zvijezda. To je niz, a Ne može biti bilo koje druge vrste. N je float. B je Bool. No, u JavaScript, postoje dinamički vrste. To znači da ne treba reći JavaScript koje vrste vaše varijable će biti. Vi samo reći var za varijablu, naziv varijable, a zatim vrijednost. Dakle var može biti ništa stvarno. To može biti niz. To može biti plutajuće broj bod. To može biti znak. To može biti Boolean. A konzole log radi malo drugačije. Ako želite ispisati broj, nazoveš% d. No, većina vrijednosti mogu biti tiskana kao žice sasvim u redu. Ajmo pokrenuti ovo Node da vidi što će se dogoditi. Mogu nazvati čvor ex2.js, a mi dobili printf s CS50 vrijednosti, N kao Krajnja broj, a onda B kao Boolean pretvoriti u niz istina. Što ako smo napravili primjer 2.c? Pa, još uvijek imamo neke više smetnja s printf. Obavijest da je pomičnim zarezom Broj mora biti pravilno formatiran, i da Boolean ne mogu jednostavno prikazati kao istinito ili lažno. U redu. Sada pogledajmo primjer tri. U primjeru tri, mi pokazujemo Kako biste koristili za petlju. U stvari, to je vrlo jednostavno. Jedna od lijepih stvari o JavaScript je da je C temelji. To znači da je puno svog kod će izgledati vrlo slično i osjećam se jako puno isto. U for petlji, jedino da stvarno je ovdje promijenio je umjesto int i, imamo var ja. Još uvijek možete ga dodijeliti vrijednost nula, provjerite da je manje od pet, i povećajte ga po jedan s operatorom ++. Zovemo console.log na ja, a to će nam ispisati broj sa svake linije. Budimo pokrenuti stvarno brzo vidjeti ono što izlazi. Mi smo dobili novi broj u svakom retku. Još jedna stvar koju sam ti želim primijetiti s console.log je li nije morao pisati backslash n za novu liniju. Console.log će ispisati sve na svom retku. To je lijepa osobina da nam JavaScript pruža. Sada ćemo otvoriti primjer četiri. U primjeru četiri, prva u C, mi se zove nekoliko funkcija. Obavijest da imamo proglasiti Funkcije prije nego što smo ih koristili u glavnom. Ako smo imali prvi i glavni zatim dodati i visoka, napraviti, jeka, ili GCC bi daju nam pogrešku rekavši da se ne zna što je visok. Ona ne zna što je dodatak. Tako je u C, morate biti picky o Kako bi se u što vi zovete svoje funkcije. Pogledajmo kako možete učiniti u JavaScriptu. Imamo različite datoteke, jer postoji nekoliko različitih načina da to učinite. Jedan od načina je prilično izravan prijevod. Zbog funkcija u C povratak vrste, i JavaScript zapravo ne znam i briga o tome što tip se vratite, ne napisati vrstu. Umjesto toga, trebate samo napisati funkciju, i sve je lijepo više isto kao i prije. Kada imate varijablu, kao što je u dodati, samo mi treba napisati X i Y. Ne moramo reći x int. Ne trebamo reći je y int. Vraćamo se s istim sintakse. Za velike, možemo ga proglasiti u raditi umjesto nevažeće. Obavijest da je bilo to je ništavan ili ne-praznina, to je još uvijek sve isto radi. I mi jednostavno ne stavi ništa u zagradi, i to izgleda vrlo slično kao u C koda. I u nastavku, možemo ga nazvati u nastavku. Ako gledamo na primjer 4b, uočavamo da sam promijenio nekoliko stvari. Jedino što sam promijenila doista, iako je nalog. Imamo isti funkcije, ali sada su izjavio je nakon što se koristi u console.log i visoko na linijama 18, 19. Ako ste to učinili u C, napraviti će baciti pogrešku. Evo, to radi sasvim u redu. I ja mogu pokazati da vam je zove Čvor 4b primjer. Drugi način na koji možemo nazvati funkcije je spašavajući funkcije kao varijable. Kao što sam rekao, promjenjiva može imati bilo koju vrstu. Jedan od tipova varijabla može imati je funkcija. Dakle, ako pogledate na primjer 4c, što sam promijenio Ovdje je var dodali umjesto funkcije dodati. A sada dodati jednaka funkciju. Ova je funkcija ovdje je anoniman. To nema ime, tako da je samo Funkcija i onda zagrade. Sintaksa nakon toga ne mijenja, ali morate imati na umu da je imate varijablu koja ste spremanje funkciju u dodatak, a varijabla koja ste spremanje na high. Zbog dodati i visoki su sada varijable i ne funkcionira, nešto mijenja. To je čest bug vidim u Puno ljudi javascripts, i nešto na umu. Kad sam pokrenuti ovaj, neka je vidjeti što se događa. Ja dobiti greška. To govori nedefinirano u ovom trenutku. Dakle, to je to rekao ne znam što je dodavanje. Jer sada dodajte nije funkcija, dodajte je promjenjiva. A vi niste zapravo dao dodati vrijednost, ali kada ga koristi. To nas dovodi do primjeru 4d, gdje ako Želite li koristiti varijable kao funkcija, samo trebate kako bi bili sigurni da dobili vrijednost prije nego što su se. Krenimo na primjeru pet tada. Ovdje govorimo o konstrukt u C u C, konstrukt ima tu fiksnu strukturu na njih zato što ih proglasiti prije nego što ga koristiti, i kažeš imam studenta, a svaki student ima točno jedno ime, jedna godina, jedan spol. Ona mora imati sve od njih. To ne može imati nikakve druge vrijednosti, i oni moraju biti određene vrste. Onda možemo inicijalizirati struct u ovom lijepom sintaksi jer zna red. Tako se zna da je Roger je ime. Ona zna da je 2016 godine, a M je rodna jer mi je rekao da to Popis je struct student. A onda možete ispisati to, pristup s.name. Pogledajmo kako bismo pretvoriti da je JavaScript. Obavijest da je s sada promjenjiva, i nema tipa. To je samo var opet. Jer nije važno ako Vrsta varijable je pokazivač, to struct, ili bilo što drugo. Imamo nešto drugačiju sintaksu. To sintaksa je predmet sintakse. Možda ste ga vidjeli u JSON. JSON zapravo znači JavaScript Object oznake. To je, kako se odrediti objekti u JavaScript. Imamo ključ, koji je vrijednost, kao što su ime. I dajte mi to vrijednosti na s druge strane debelog crijeva. I jedna stvar koju treba imati na umu je vas ne moraju imati ime i godinu dana i spolu za objekt. Objekt može imati nikakvih vrijednosti. To može imati koliko god želite. Možemo koristiti ove objekte u samo Isto tako bismo koristili struct, s.name. Mi to može raditi jako brzo čineći čvor primjer 5.c Mi zapravo ne može pokrenuti C datoteku u čvor. Ona ne zna što je C. To zna samo JavaScript. Kad smo pokrenuti ex5.js, dobili smo vrijednost, što smo i očekivali. Krenimo na primjeru šest. Ovdje samo želim razgovarati malo Malo više o JavaScript polja jer oni su malo drugačije od onoga što ste koristi se u C. Nizovi su notated, Ne sa zagradama kao u C, s vitičastim zagradama, ali parova. Možete imati prazan niz, kao ARR u skladu četiri. Možete imati polja s više vrijednosti. A ti im pristupiti Upravo na isti način u C. Do postroje sedam, sve Čini se prilično jednostavan. Jedna manja razlika je ovdje na liniji 10. Način dobivate duljinu Niz je samo pozivom .length. Niz zapravo može biti tretira kao objekt, a taj objekt ima svojstvo duljine da nazovete dobiti duljinu njega. Obavijest da je to drugačije u C, jer u C što morate znati duljinu Vaš cilj ispred vremena. Dakle, još jedna lijepa stvar o polja je da možete imati različite vrste. Ako imate niz u C, postoji su nizovi određenu vrijednost, bilo struct pointer ili pluta ili [nečujan]. Ovdje možete imati različite vrijednosti. Prvi put sam imao plutajuće broj bodova, onda Boolean, a zatim još jedan broj. A zapravo, oni mogu mijenjati vrste previše. Pogledajte linija 16. Array dvojica se mijenja od toga broj, broj, u nizu. Još jedna lijepa stvar o nizovi ovdje na liniji 19, imaju beskonačnu veličinu. Vi samo mogu reći da želim stoti Element se niz čitljiv. I to ne čini da bi osjećaj, jer niz jedino ima mjesta za tri elementa, pa na kraju bi trebao biti dva. Ali kada to učinite, neka je vidjeti što niz od tri postaje. Želimo pokrenuti vrlo brzo sa čvora primjer six.js. Mi smo dobili ovo stvarno dugo polje, a što se događa je smo prvih nekoliko elemenata a zatim gomila praznine dok smo dobili našu string. JavaScript ispunjava Niz kao što je potrebno. Ajmo konačno otići na naš posljednji primjer. Ovdje smo popis od različitih studenata. Želim razgovarati malo malo o nekim lijepim aspektima od za petlje u JavaScript. U C, za petlje su vrsta ograničen. Imaju fiksnu strukturu, gdje vas imate varijablu, imate stanje, a onda radiš nešto na kraju petlje. I naravno, to radi u JavaScript, kao što smo vidjeli u prethodnim primjerima. No, imamo i ljepše načine za to u JavaScriptu. To se zove foreach petlje. Žao nam je, idemo natrag na primjer sedam ovdje. Također možete reći dio je popis. Pa daj mi sve I ili svaki indeks u tom popisu. Onda možemo dobiti student tako jednostavno zove dio i. Dakle, sve kodeksa I postavljanje jednak nuli i da se ja manji od duljine i dodavanjem jedne do I svaki put, to je brigu o vama, a lijepo s ovim foreach petlje. Ne samo da foreach petlje raditi u popisima ili polja, Oni također rade na predmetima, što je također lijepo. Možete dobiti ime svaki objekt od samo uzimanje rječnik ili objekt, kao student, a onda samo kaže daj mi svaki ključ. Ključ će biti to svojstva, ime ili kuću. Dakle, što će se dogoditi je da možemo ispisati prvo ime, a zatim Kuća svakog studenta. Ja mogu pokrenuti ovo Node jako brzo pokazati. Mi smo dobili prvo C stil petlje, gdje smo dobili svaki objekt se ispisati. I onda imamo JavaScript stilu, gdje možete jednostavno ispisati svaki ključ i vrijednost pojedinačno. U redu. Sada kada smo pokriveni Node.js, mislim mi smo spremni za početak rada s Meteor. Kao što sam rekao, Meteor učinio veliki posao pisanja neke gotove primjere za vas da možete istražiti kroz Ovaj tutorial ili na seminaru mapu. No, ovdje želim početi više od nule. Idemo stvoriti jednostavan za napraviti aplikaciju. To je vrsta baze što bi učinite zahtjev sam vam pokazao ranije je. U ovom tutorial, što ćete da postoji Naredba Meteor stvaraju se stvoriti novi Meteor projekt. Morate nazvati to kako pokrenuti Meteor projekte jer je će se izvoditi naredbe stvoriti Meteor datoteke potrebne za vaš projekt. Ako idete u terminal, možemo ići u mapu pod nazivom korak jedan. I jedan korak će odgovarati Prvi korak u udžbenik. Obavijest postoje mape, korak jedan, dva koraka, pa sve do pet. I svatko se odgovara u korak u ovom tutorial. Ja ću ga otvoriti U mom uređivanje teksta ovdje tako da možemo vidjeti malo što je stvorio. Primjećujemo da postoji Četiri su glavna dijela. Postoji Meteor imenik, .meteor. I to obično ne treba dirati. Meteor brine tu mapu, i to samo osigurava da vaše Projekt će raditi ispravno. Također imamo tri datoteke, HTML datoteka, JavaScript datoteke i CSS datoteka. Neka prvi početi s HTML datoteke. Na prvi pogled, ovo izgleda kao normalna HTML dokumenta. Ali primijetite da postoji nekoliko razlika. Jedan, to zapravo nije potpuni HTML dokument. Mi nedostaje HTML tagove. To je normalno. U Meteor, nisi očekivao stvaranje ove oznake. To je učinio za vas. Želite begin-- ako vas Želite napraviti web stranicu, trebate samo početak s glave oznakom, odrediti da, a zatim definirati tijelo oznaku. Ali ako primijetite u to HTML datoteka, imamo novu oznaku. Imamo predložak oznaku. Ovo nije normalno HTML. To je posebna verzija HTML da Meteor čini Vam dostupne. To se zove prostor bara. Možete definirati predloške što manje modula, vrsta poput pomoćnih funkcija, u C ili JavaScript koda. Ovaj predložak bi ima naziv pod nazivom zadatak. A možete vidjeti ovdje na liniji 13 da možete nazvati ove predloške. A što Meteor će učiniti je jednostavno ispuniti ove zadatke za vas. Još jedna stvar koju bi mogao primijetiti je Malo drugačije je to svako djelovanje. Svaki će uzeti varijablu Zadaci i vrsta proći kroz njega U tom foreach petlje mi Vidio je u primjeru sedam. To je svaki može potrajati rječnika ili popis, predmet ili popis, i to će samo proći kroz sve Vrijednosti poput foreach petlju bi. Dakle, ako imamo hrpu zadataka, ova će nazvati predložak na svaki zadatak. Idemo pokrenuti projekt Meteor Samo da se vidi da se to dogodi. Vodim projekt Meteor s Samo Meteor ili Meteor pokrenuti. A sada Meteor samo će trebati brzo pripremiti projekt, pokrenuti bazu podataka po potrebi, a zatim objaviti aplikaciju na lokalnoj razini. Možemo ići na našu web pregledniku danas. I vidjet ćemo da smo imaju vrlo jednostavnu aplikaciju. Dakle, ono što smo vidjeli pojavio bio je zapravo Korak jedan, korak jedna datoteka. Krenimo na korak dva samo zato Mislim da će poslužiti istoj svrsi. Samo ću se promijeniti na korak dva imeniku i pokrenuti Meteor opet tako možemo vidjeti predložak smo upravo radili s. Da, pitanje? PUBLIKA: Ako smo dobili dopuštenje odbijen je that-- što ga je pozvao na to? ROGER ZURAWICKI: Ako radite Meteor trčanje, i imate dozvolu odbijen, neki od vaših datoteka Ne može imati pravo skup dopuštenje. Dakle, morate provjeriti u kojoj Dozvole su isključeni. Oni mogu biti off meteora projekt, ili bi mogli biti isključen iz Meteor datoteke sebe. PUBLIKA: Ako sam skinuti to upravo sada iz svog GitHub, onda što da radim [Nečujan]? ROGER ZURAWICKI: Ukoliko želite kako bi bili sigurni da možete pristupiti, Tu je naredbu da možete pokrenuti. Neka me brzo pisati ga tako da drugi ljudi mogu vidjeti. Idem otvoriti novu karticu ovdje i otići u moj seminar mapu. Chmod je naredba promijeniti dozvole, a što mogu reći r za to rekurzivno za svaku datoteku. I dozvole, možete pokušati 0755 kako bi bili sigurni da imate potpuni pristup, a svi drugi mogu čitati. A ako samo pokrenuti Ova naredba, to će učiniti jesu li dozvole u provjerite za cijelu imenik. Trčanje LS-l mogu vam pokazati Dozvole detaljnije. Ovo izgleda OK. Ono što je najvažnije je da su sve tri rwx za sve datoteke u Seminar imenik. Je li to riješiti problem? PUBLIKA: Ona kaže da nedostaje operant [nečujan]. [Nečujan] ROGER ZURAWICKI: Vi morate biti sigurni da imati točku na kraj naredbe. PUBLIKA: [nečujan]. ROGER ZURAWICKI: U redu. Neka nam brzo vratiti na lokalni domaćin, app imamo. I vidjet ćete da imamo Nekoliko zadatke ovdje, kao što se očekivalo. Imamo hrpu CSS, koji ne morate brinuti o tome. Meteor udžbenik samo daje to za vas Da bi vaše napraviti popis izgleda malo ljepše nego običan HTML. A imamo JavaScript datoteku koja Ja ću ići u detaljnije malo kasnije, ali to samo daje ove zadatke. To je zadatak jedan. To je zadatak dva. To je zadatak od tri. Dakle, ovo je podatke Meteor je sve. Jedna od dobrih stvari o Meteor je da promjene mogu dogoditi automatski. Ako sam želio mijenjati Naziv prvog zadatka, tako da bih rekao da to nije zadatak jedan, pa sam ga spasiti, onda kad sam ići na webu preglednik, možete ga osvježiti, i to automatski govori to nije zadatak jedan. Možete napraviti istu stvar U bilo kojem od tih datoteka. Napravite promjenu, umjesto da to Popis, ja ću ga mom napraviti popis. I jedna stvar koju jednostavno primijetio, da nisam ni morati osvježiti. Ideja osvježavajućih je vrsta riješenih za vas Meteor. Kad god se otkrije promjene datoteka, to će učitati promjene za vas. To radi na svim datotekama, bilo to je HTML, CSS, JavaScript, ili. Da ti pokažem što ovaj app će izgledati kao i bez CSS, ja to sve mogu ukloniti. A kad je pretovaren, sada imate Ne tako lijepo izgleda napraviti popis. Stavimo taj sadržaj natrag. I sigurno dovoljno, to osvježava, a naša CSS je natrag. Veliki. Sada možemo krenuti dalje s udžbenik. Razgovarajmo o koraku, predloške. To je ono što smo upravo vidjeli s različitim zadacima. Meteor će vam objasniti što predlošci i kako se to logika funkcionira. Ali neka je samo pogledati koda na vidjeti ako možemo smisla iz nje. U vrlo jednostavna aplikacija, kao što imamo u jednostavan učiniti, korak jedan, korak dva, korak tri, četiri koraka, korak pet, nemamo nikakve mape. Nemamo poslužitelja Mapa sam spomenuo. Nemamo klijenta mapa koja se spominje. Dakle, Meteor će izvoditi sve datoteke. To će ga kako se izvoditi na klijenta, kako na poslužitelju. A ako želite dijelove vašeg JavaScript koda samo na klijenta, što im je potrebno kako bi bili sigurni da imate Ako priopćenju, vrsta kao što imamo u našoj JavaScript datoteke ovdje. Dakle Meteor, samo ako to je klijent, a zatim sam Želite definirati predloška pomagač nazivaju zadatke. Što je to kod jako Da li je to, kaže da postoji Objekt se zove predložak da Meteor pruža. A mi ćemo dodati pomagača. Pomagači su ti poslovi, takve stvari kao što su zadaće. Vi ćete vidjeti da li se vratiti na HTML datoteka, nazvali smo jedni na zadacima. Zadaci nije definiran u HTML-u. To je definirano u JavaScriptu. I Meteor treba znati što je zadatak kad idemo u JavaScriptu ovdje. Zadaci ovo pomagač. Helper, možete misliti to je kao varijablu predloška. A što zadatke učiniti? Pa, to se vraća na popis vrijednosti. Budući da je popis, možemo nazvati svaki u njemu. Dakle, to je razlog zašto smo pozvati jedni na zadacima. I sada imamo zadatak. Što je zadaća učiniti? Pa, to je tu strijelu Ovdje nakon vitičastim zagradama. To znači da je zadatak predložak. Nije pomagač, kao što smo upravo vidjeli. To je predložak smo definirani. A gdje smo ga definirati? Mi smo to definirano u nastavku upravo ovdje. Sve je to predložak nema je donijeti stavku popisa, te poziva tekst. Sada, čini se da je tekst pomoćnik, ali ja ću vam pokazati kako je to zapravo još Član podataka zadataka. Kada zvati svaki, što ide u Struktura podataka malo. Kao foreach petlje, to je sada samo izgleda na prvi element u našem objekta. Vidimo da tekst definirani ovdje u našem objektu. Dakle Meteor je pametan da zna da je govorimo o ovom tekstu, Ne pomagač zove tekst. To samo dobiva vrijednost ovog tekst ovdje i prikazuje ga kao HTML, a to je kako podaci ide iz JavaScripta u HTML. Kreće na ipak, u ovom primjeru Naporno smo kodirani te vrijednosti. Meteor se dvije jako lijepe stvari za nas. Uz live osvježavanja koju pokazalo, ona također upravlja našu bazu podataka. Ako ste morali raditi s PHP, ste morali konfigurirati phpMyAdmin. Imali ste da biste bili sigurni Stolovi su svi pod kontrolom. Imali ste učiniti mnogo posla kako bi je li vaše podatke je pravilno formatiran, i PHP mogu komunicirati s njim. Sada, Meteor koristi novu paradigmu. To je više moderan način rukovanje bazu podataka. To je tehnologija zove MongoDB. Baš kao u JavaScript, vidjeli smo da je to nije važno što vrste podataka imao. Sve je var. To nije bio charstar. To nije bio int. To nije bio struct. To je bio samo var to, var to. MongoDB vrste na isti način funkcionira. Ne morate definirati svoje tablice. Ne morate reći stol ima ime, koji ima int. To je, ne znam, dolar, što je decimale. To je samo ti JavaScript predmeti, Svi ovi Vars, u biti. A to je stvarno moćan način prototip svoju aplikaciju. I to je razlog zašto Meteor to iskoristi. Ako idemo u korak tri, da vidimo što se promijenilo. Ako gledamo todos HTML, nije puno. CSS nije promijenilo. No, mala promjena vidimo u HTML je da smo promijenili kako je definirana zadatke. Zadaci se sada radi. To znači da je svaki Vrijeme želimo dobiti zadatke, ćemo pokrenuti tu funkciju. To se ne vraća funkcija kao vrijednost. Meteor je pametno da se zapravo pokrenuti Funkcija vidjeti što ćemo izaći. I to vraća tu stvar zove zadatke. Mi smo definirati zadatke na liniji jednom, i to je Mongo skup. Mongo se odnosi na Baza Meteor koristi, a ovaj novi samo znači učinimo Nova kolekcija, zovu ga zadatke. U MySQL, to bi bilo jednako u potrazi za stol pod nazivom zadataka. Mongo ima zbirki, a ne tablice. Dakle, to samo izgleda za zadatke. Sada, predložak u našem pomagač u predlošku, sve moramo učiniti kako bi dobili sve Zadaci se ova funkcija, naći i to prazna brace. To je još posebno Mongo sintakse. Ima dosta Dokumentacija online kako možete napraviti učinkovit i stvarno korisna Mongo upita. No, nešto kao što je to dobro dovoljno samo pronalaženje sve podatke. Sada, jedno je od pitanja koja možete vidjeti je da mi nikada zapravo dodati podatke. Dakle, što se događa kada smo zapravo pokrenuti treći korak? Ajmo brzo ići u Treći korak i pokrenuti Meteor. Obavijest da sam imao još jedan Meteor Projekt pokrenut negdje drugdje, pa Meteor ne sviđa to. Samo ću se brzo u neposrednoj blizini druga Meteor s kontrolnim C, ići u korak tri, i opet pokrenuti Meteor. Obavijest da je početkom MongoDB jer MongoDB je dio svakog Meteor projekta. Dakle, on kaže moj program ima pogrešaka. To je lijepa osobina Meteor ima. To čini li vaše HTML i potvrđene. Idemo brzo pogledati zašto bi to moglo biti. Čini mi se slučajno kopirati pogrešan HTML kôd. Ako sam ga spasiti sada, Meteor automatski ponovno pokretanje poslužitelja, a sada app radi kako treba. Obavijest popraviti to, možete jednostavno pokrenuti Isto HTML datoteke u koraku dva, kopirajte ga u koraku tri. Možemo se vratiti na našoj lokalnoj domaćina. I sad vidimo da su naši napraviti popis. Veliki, ali to je prazna. Mi zapravo ne imati bilo poslove u našoj bazi podataka Mongo. Dakle, pričajmo o Nekoliko načina možemo učiniti. Ako se vratimo na terminalu, što možete ga zatvoriti i pokrenuti Meteor Mongo. Ako ste upoznati s koliko Meteor radi, to je zapravo vam daje pristup do punog MongoDB za Meteor. Obavijest da morate biti pokrenut Meteor prvi za to da rade. Dakle, ako sam pokrenuti ovaj u novoj kartici, ja može se vratiti u istom direktoriju. A sada Meteor radi sasvim u redu. Ovo je brz. Dopustite mi da malo napraviti veći, tako da možemo vidjeti. Ovo izgleda malo drugačije nego ono što bi se moglo koristiti za vas stvarno ne trebate koristiti Mongo. Cijela točka mene ovdje tako da možete koristiti JavaScript. Ali, ako ste znatiželjni, Mongo API ne koristiti SQL, strukturirani upitni jezik. Ona koristi svoj vlastiti jezik koji izgleda puno poput JavaScript. Vrlo brzo, možemo naći Tablica preko db.tasks. A to mi govori Ispada da smo pokrenuti naći, vrsta slično onome što smo imali s Meteor, možemo učitati sve elemente. Problem je u tome, mi ne zapravo imaju sve zadatke definirane. Dakle, ne može ih dobiti. Možemo umetnuti, ipak. Dakle, možemo pokrenuti umetak zapovjednoj umetkom. A mi samo dati objekt, a mi samo provjerite je li format je ono što smo očekivali. Ako smo gledali na korak-dva, vidjeli smo da je svaki zadatak je objekt s tekstom kao ključ i ono Vaš učiniti predmet je kao varijabla. Dakle, možemo učiniti nešto ovdje. Možemo ga umetnuti zadatak Nazvao sam došao iz Mongo. A mi pritisnuti Enter, i to radi. Možemo pokrenuti ponovno pronaći, a mi vidjeti da je predmet ovdje. Mongo dodjeljuje mu iskaznicu, koja vam stvarno ne morate brinuti o tome. Ono što je važno za vas je podataka ste stavili u, je li podaci izaći. Vratimo se na našoj web stranici, i hej, naš zadatak učita. A možete vidjeti da jer Meteor je vrlo pametna i uvijek osvježava za vas, ja nije morao dotaknuti stranicu. To automatski učita. Idemo pokrenuti neki kod u JavaScript iako za to. Kao što imamo čvor u leđa kraj izvršiti van JavaScript, mi također može pokrenuti JavaScript izravno u našim preglednicima. To možete učiniti pomoću značajke zove Pregledajte element. Ako sam desni klik na Dio stranice, postoji mogućnost zove Pregledajte element. Ako radite preglednik kao što je Safari, vas možda je potrebno omogućiti programerski Alati prije nego što se tu značajku. Ono što mi je stalo je konzola. Zato ćemo samo ići konzole na dnu. Sada možemo pokrenuti bilo JavaScript Ovdje, kao što je JavaScript Datoteke sam pokazala u js primjer. Ali sada pogledajmo zadatke. Možemo pokrenuti naš naredbu. I nadam se da ću biti u mogućnosti to učiniti je malo veći, tako da možemo svi vidjeti. Ako smo pokrenuti tasks.find, a vi ćete vidim da je to isti broj da je datoteka koristi JavaScript U trećem koraku, to task.find. Možemo pokrenuti istu stvar, a Sada smo dobili neke čudne stvari. Kako smo zapravo dobili podatke? Pa, moramo pokrenuti taj naredba zove dohvatiti. To je vrlo korisno za ispravljanje pogrešaka. Ono što ste dobili ovdje pokazivač, a to je lijep način Meteor ima optimizirane podaci doseže. Ovaj pokazivač ima sve značajke za Uživo ažuriranje i osvježiti stranicu kad se nešto promijenilo. No, to nas neće dobiti podatke. Možemo dobiti podatke putem dohvatiti. A vidite imamo objekt, a to je baš kao što smo imali u Mongo, s ID i tekst stavimo u. Pa kako ćemo umetanje stavke u Meteor? Pa, upravo smo zadatke. A onda možemo pokrenuti Isto umetak naredbe, davanje rječnika ili objekt s istom obliku, tekstu a onda sam došao iz konzole. Bacite pogled iznad, jer kad sam to, što se vidi na web stranici automatski. Obavijest da možete staviti sve Želite u tim točkama. To ne mora imaju čvrstu strukturu. Mogao bih imati jednak broj tri i b jednak lažna. I to sve radi. Ja čak mogu odabrati da ne uključuju tekst na sve. To se jednostavno ne preporučuje jer iako tada Meteor ne znam što se prikazuje. No, u svakom slučaju, dobiti ID, a to je ID objekta možete koristiti. Kao što smo i dalje s Četvrti korak i korak pet, tutorial će vam pokazati načine da možete stvoriti elemente korisničkog sučelja pomoću HTML znate da stvoriti različite zadatke. Pogledajmo koraku četiri jako brzo. Vidjet ćemo da smo dodao poglavlje o događajima. Predlošci mogu imati pomagači, koji nas dobiti podatke. Ali to također može nazvati događaje. I ovo je mjesto gdje stvari postaje korisna, jer događaje su ono što se dogoditi kada kliknete na različite stvari na svoje web stranice. Evo, naš kod je reći nam dodali ovaj događaj. Dodajte ga kada ste poslali nešto s klase novom zadatku. Ono što imamo ovdje je selektor CSS. Dakle, to samo izgleda za HTML element koji ima klase novi zadatak. I to izgleda za događaj, kao i dostavljati. Ostali događaji uključuju klik, hover, dvaput kliknite, slično onome što bi u normalnom HTML. Ono što ga dati ovdje sada radi. A možete imati svoj broj u toj funkciji. Ova funkcija je ono što završi uzimajući nazvao kada pošaljete ovaj novi zadatak. Pogledajmo HTML samo tako ćemo shvatiti što je to novi zadatak je. Dodali smo formu ovdje s klase novom zadatku. I to ima ulaz koji vodi tekst. I ovo je mjesto gdje smo će dodati svoje nove zadatke. Idemo pokrenuti Četvrti korak u website vidjeti kako to izgleda. Možemo prestati prvi van od MongoDB smo imali od naše prethodne Primjer s kontrolom C. I neka ga promijeniti u Četvrti korak imenik. Mi ćemo ponovno pokrenuti Meteor za pokretanje poslužitelja. I na žalost, imala sam Meteor trčanje u drugom terminalu. Pa ja sam samo ide pazite ovo zatvorena. Ajmo prestati to i promjenu Dijelu četiri, Četvrti korak. OK. Sada naša Meteor code je pokrenut. A možete vidjeti da se ažuriraju, bez još nas ima osvježiti stranicu. Ono što je ovdje promijenio je sad da nemamo nikakve zadatke, ali imamo oblik ovdje, to tekstualni okvir, dodati svoje nove zadatke. I možemo upisati svoj zadatak ovdje. Dolazim iz HTML stranice. Kad sam pritisnite Enter, to je dobio podnijeti. Možemo vidjeti što se dogodilo, kao definirano JavaScript koda. Ono što ova funkcija nije bila uzeti tekst iz obrasca, i onda samo pod nazivom tasks.insert, kao što smo učinili u konzoli. Također su odlučili da dodate datum createdAt. To je način na koji će odrediti točno vrijeme. Nakon toga, on briše obrazac čineći je li vrijednost prazan string. A onda zove return false se pobrinite se ništa dogoditi. Kad ste se vratili iz lažna Obrazac događaj, koji zaustavlja izvršenje. Recimo oblik ima radnju, kao pošaljete na PHP stranice. Ako nije vratio lažna, da bih se vratiti istinito. To bi završiti izradu taj zahtjev. Lažni presreće te iz zaustavlja ga upravo tamo. Tako da je malo demo o Kako Meteor radi, a mi smo je nakon udžbenik za neko vrijeme. A možete molim vas slobodno nastaviti raditi to. Postoji mnogo resursa, i udžbenik je zapravo samo Vrlo dobro objašnjava što se događa. Ja želim da vam pokazati danas, u Nekoliko minuta smo ostavili, Koji su neki od hladnjak značajke Meteor, i što su neki od više korisnih paketa. Jedna od velikih stvari o Meteor je da imate sustav paket. Možete jednostavno uklopiti kod da mnogi tisuće programera su pisani u svijetu u meteora projekt. Jedan primjer za to je ono što možda učiniti u koraku devet udžbenik, gdje vi pokušavate dodati račune na meteora projekt. Ako imamo CS50 PHP Projekt, imali bismo osloniti na okviru ili vlastitog koda kako bi sigurni smo sigurno rukovanje lozinke i korisnička imena i pohranu podataka i sve to. Ispada Meteor ima neke Paketi učiniti za vas, i to je vrlo jednostavno. Ono što možemo učiniti je dodati nekoliko paketa. Tako ćemo učiniti to pravo Sada je u našoj konzoli. Ja ću prestati projekta i sada ići u jednostavan Todos. Sada, jednostavno-todos je projekt koji vam će imati nakon što je učinio s korak 11 ili 12 stupnja, na kraju ovog vodiča. I neka je brzo pogledati što vidjeti Koje su različite osobine koje imamo. Ajmo bili sigurni da se radi. Ponekad je potrebno neko vrijeme osvježiti, ali ovdje je to. Mi imamo mogućnost da se sakriti obaviti zadatke, a možemo prijaviti. I to je učinjeno s Meteor paket. To je super. Sada su korisničko ime i lozinku Prijavite se. No, što ako bismo htjeli dodati druga vrsta prijavljivanja mehanizma? Recimo da sam htjela da se prijavite U mojim Meteor račun. Ja ću pokrenuti meteora dodatak, a to je sintaksa za dodavanje paketa. Mogu reći račune i accounts.meteor. To će se sada naći paket i opterećenje. Možete vidjeti da nisam pronašao pravi naziv paketa. Pa kako ste saznali za pakete? Pa postoji velika website, izrađene raspolaganje Meteor ljudi, zove atmospherejs.com. Atmospherejs, jedna riječ, točka com je velika riznica za pronalaženje sve Meteor Paketi u repozitoriju. Mogu tražiti račune, a zatim to će mi pokazati sve relevantne stvari, Svi paketi s imenom računa. Dok koji učitava, možemo probati dodao neke druge pakete. Možda Meteor paket ne radi upravo sada, ali ja mogu dodati Facebook. Mogu dodati račun, a zatim opet pokrenuti projekt Meteor. Kad se to počne, da vidimo što se promijenilo na web stranici. Možete see-- mogao bih morati osvježiti ovdje. Imam gumb za konfigurirati Facebook prijava. I ovdje, ja imam sve upute Meteor je pripremio za vas za postavljanje Facebook aplikaciju. A možete koristiti da Informacije dodati svoje osobne iskaznice. Nakon što je učinio, morat ćete Facebook login rade u vašoj aplikaciji. Samo ću doći app ID i tajna, Samo da vam pokazati kako se to moglo raditi. Trebat će vam Facebook račun koristiti Facebook Opcije za razvojne programere. Dopustite mi da brzo pronaći Meteor tipke koje su potrebne. Imam još jedan projekt Meteor da ću koristiti, a ja sam samo će potrajati ključevi iz te datoteke. I kad sam ga naći, ja ću samo biti u mogućnosti kopirati ove tipke u mom Facebook. Dakle, ovdje je ključ. I to je tajna. Vi ne bi trebali biti dijeleći to s ljudima. A onda su dali svoj app tajnu. I to je tako Facebook zna li si ti. I spremite konfiguraciju. Mislim da je u procesu I. prestali moj Meteor aplikaciju. Dakle, ja samo želim napraviti je li to još uvijek tamo. OK, neka je učiniti da naši Meteor poslužitelj radi tako da web stranice je trčanje. Obavijest da smo zaustavili Meteor poslužitelja, stranica je još uvijek tamo. To jednostavno neće ažurirati više. Meteor poslužitelj je potrebno za pazeći stranica živjeti. OK, ja sam ga podnio, i sada Mogu se prijaviti Facebook. Sada je samo pitanje ima Facebook pop up i stavljanje na računu Informacije i prijave. Nakon što to učinite, Facebook bi mogao Nag li neko više sigurnosti. Zato ćemo samo zaustaviti. Stvar je u tome da kada ste gotovi s tim, da ćete morati Facebook prijava. Meteor ima hrpa drugih paketa kao dobro. Možete se prijaviti na Google+. Možete se prijaviti u GitHub. Možete se prijaviti s Twitter. Ili, ako se traži, vi ćete naći mnogo drugih stvari kao Meetup, LinkedIn, i Meteor Developer. Dakle Meteor Developer je Paket sam bio u potrazi za. Meteor dodavanje računa-meteora-developer. U međuvremenu, ja Također želim preporučiti neki drugi paketi za svoje projekte. To bi moglo pokazati korisnim uključuju jQuery paket. To vam omogućuje da koristite jQuery u svoje klijente. Vi samo mogao to učiniti s jednom retku, a Meteor će se pobrinuti da ste do sada na jQuery. Ja također preporučamo Houston: admin. To je vrsta kao phpMyAdmin vrsta alata za vaše MongoDB. To vam omogućuje da uredite Vaši podaci vrlo jednostavno bez potrebe da ide na Mongo ljuska, kao što sam učinio ranije u seminaru. Tako da sada da se radi, neka se pokrenuti Meteor opet i vidjeti što možemo učiniti. Možete primijetiti da dodavanjem neke pakete Možda ih predstaviti neka upozorenja. Nećete morati brinuti o tome s Houston. Tako sada možemo imati mogućnost konfigurirati Meteor admin. I oni vam dati upute Ako želite postaviti da se. Također možete sada ići na / admin. To je doveo do vas Houston paket. A to je Meteor admin sučelje. Vi samo stvoriti admin računa, kao što je tako. A ako osvježite stranicu, možda ćete imaju neke zbirke prikazuju. To je vrlo koristan alat, i ja jako preporučiti. Možete vidjeti da je zbog toga Houston je davao neke pogreške, nemamo nikakve kolekcije prikazuje se upravo sada. Način na koji će koristiti Houston je pazeći ova funkcija dobiva pozvao u svoj jednostavan Todos. Dakle Houston ne znam što moji zadaci. Postavili smo Mongo kolekciju pod nazivom zadatke. Idemo na jednostavan Todos i jednostavno pobrinite se da je u JavaScript, dodali smo zadatke na našim zbirkama. Sada smo spašeni, a to je izgradnja prijava, osvježavajuće. I da vidimo. Sada imamo neke zadatke. I možemo dodati neke nove zadatke. No, ako želimo dodati zadatke, učinimo to sa samom aplikacijom. Sada možemo dodati neke podatke. Pozdrav, ovo je zadatak. Čini vrsta čudno da ne vidimo nikakve zadatke. Mi možda želite provjeriti da li smo dobili bilo Pogreške ovdje, ili možda negdje drugdje. Ako idemo u admin, kako se čini čudno. Ako ste povući repozitorija Nakon ovog seminara, Pobrinut ću se da jednostavan todos radi s Houston. Nažalost, to se ne čini da se radi u ovom trenutku. Postoje li još pitanja? Houston je normalno alat koji radi jako dobro. Houston posebno je bitna buggier od ostalih, ali ja ne preporučujem ga kada to radi. Da. PUBLIKA: Što možete učiniti sa Facebook paketu Jednom korisnik prijavljen U svojim Facebook? ROGER ZURAWICKI: Jednom Korisnik je prijavljen, možete telefonirati na Facebook API. Mnogo toga leži više u Kako Facebook otvara svoju API. Meteor, pazite da imaju veze. No, sve nakon toga je stvar učenja kako koristiti Facebook API. PUBLIKA: [nečujan]. ROGER ZURAWICKI: U redu. Hvala vam vrlo mnogo za to CS50 seminar u Meteor. Ako imate bilo kakvih pitanja, možete mi e-mail na moj e-mail adresu navedene u nastavku seminara. I ja ću biti sretan odgovoriti na vaša pitanja. Ja ću biti na CS50 hackathon trebao Trebate li pomoć s meteora projektima. Hvala vam za gledanje.