[Музички] ROGER ZURAWICKI: Здраво, моето име е Роџер Zurawicki, и јас ќе се покриваат На семинарот CS50 метеор. Метеор е нова рамка посветен на нов вид на интернет, не на PHP правење барања напред и назад вид на веб што видовме во PHPP во собата, но подинамичен го вклучите Javascript- делови од интернет. Работи метеор може да го направи Ажурирање вклучува во живо и веднаш комуницирање меѓу корисниците на истата веб-страна. На овој семинар, имаме кодот домаќин на мојот GitHub. Можете да одат на оваа адреса и да ја преземете. Ако знаете како да се користи Git, можете да клон на складиштето. Ако не знаете како да се користи Git или да не го користи GitHub, тоа е сосема во ред. Јас ќе ви покаже навистина брзо како можеме да одиме на GitHub, и има опција да преземете ZIP право таму. Откако ќе го симнете овој директориум, да започнете игра со нашиот код. Повеќе информации за Метеор може да се најде во meteor.com. Во Семинар папка, јас всушност има некои метеор проекти можеме да го користиме. Еден од папките што ја имаме во нашата Семинарот проект е Todos стан. Значи, ако јас одам во тоа јас, имаат метеор инсталиран. Значи да се стартува, само треба да напишеш Метеор и метеор ќе се инсталира. Како што можете да видите, ние треба да се бидете сигурни дека ние инсталиран метеор. Па јас сум само ќе стартувајте ја уште еднаш да бидете сигурни дека Метеор е правилно инсталиран. Иако имам Метеор инсталирање, можам да ви покаже некои живеат демонстрации на метеор сајтови оди во живо во моментов на интернет. Имам демо на нашите стан. Можете да ја пристапите на следниов URL. Ова е да се направи стан, што ние имаме во нашиот семинар директориум. URL-то за ова е rozu-rabbit.meteor.com. Ќе видите дека метеор, всушност, ќе хостираат вашиот метеор проекти за бесплатно. И на крајот на семинарот, ќе бидете во можност да го стори тоа како добро. Ова е да се направи листа стан. И можете да се регистрирате, да креираат, сметки, и да додадете задачи. Можете да ја креирате сметка како тоа. И сега, откако ќе го имате сметка, можете да додадете задачи. На пример, една од задачите јас Можеби треба да се обратите земам перење. И ако сте на ова сајт на интернет, ќе всушност гледаат на оваа задача на вашиот компјутер во реално време. Можам да ви покажам еден брз демо на овој со отворање rozu-зајак во друг таб со истата адреса. И можеме да видиме дека истите податоци доаѓа до. Ние, исто така може да се пушта во различен прелистувач. Велат дека се пушта во Safari. На тој начин, ние не сме најавени. Значи имаме ист Метеор стан, и кога ќе го товари, ние ќе ги видат истите податоци ние го сторивме во првиот. Како што можете да видите, не сум најавени тука. И кога публиката проверки на податоците, тоа надградби на сите пребарувачи истовремено. Ова е една од навистина супер можности за Метеор. Со речиси и да нема работа, ќе има жив ажурирање стан дека промените на сите вашите уреди одеднаш. Ако јас се провери наога тука во мојот да се направи листа, ќе имаме, во моите други интернет пребарувач Хром, ставката штиклирани. И ова се случува моментално. Во ред. Па изгледа како метеор инсталацијата е подготвена сега. Па сега ајде да се вратиме на Todos стан и извршите оваа на локално ниво. Ако имате метеор проект, можете да само да го извршите со командата метеор. Откако ќе го направите ова, Метеор ќе направи некои подготовка да бидете сигурни дека сите вашиот код е во чек. И тогаш ќе ви кажам дека Проектот е подготвен да биде задоволена. Можеби ќе треба да им овозможи на вашиот заштитен ѕид, ако вашиот компјутер можете блокови. Значи она метеор се ми кажуваше во моментов е дека на овој веб-сајт локално до мојот компјутер, јас може да се види она што овој проект е метеор. Имајте на ум дека во моментов, мојот стан е не се достапни на интернет. Ние ќе ги покрие како да ја носите вашата Метеор стан во живо сајт малку подоцна. Па јас сум само ќе ја копирате на оваа URL-то, сега и оди во Google Chrome. И ова е да се направи листа од примерот. Може да се види, тие ги применија уште неколку карактеристики тука. Имаме различни јазичиња, ние имаат ист профил карактеристики, и да додадете нови листи. Сега, една од навистина кул функција за Метеор е дека не само што може ова работат на вашиот веб прелистувач, но вие исто така може да се создаде мајчин iPhone и Android апликации преку алатка наречена PhoneGap. Па така некои проекти ќе дојде пре-конфигуриран за водење на iOS, вака Todos стан. Значи сите што треба да направите за да го стартувате во iOS е тип метеор, работи, а потоа и iOS. И кога ќе го направите тоа, Метеор ќе подготви пакет повторно. И тогаш, кога веќе е подготвен, тоа ќе оптоварување на iOS симулатор на мојот команда. Забелешка вие само може да работи на iOS апликации ако имате Mac компјутер. Можете да се кандидира на вашиот апликации на Андроид на сите платформи. Така, сега можете да видите дека мојот iPhone симулатор излезе на мојот екран. И во само еден миг, тоа ќе се вчита со стан. Ако го направи тоа само малку помали за да ги собере на екранот, гледаме дека имаме iPhone стан. И само ние не се збунети, ајде да се направи сигурни дека сме на иста веб-сајт, на локалниот компјутер 3000. Значи тука е пример на метеор стан имам, на Todos стан, што се протега и на телефон и на веб прелистувачот. И кога ќе се промени нешто во веб прелистувачот, таа веднаш оди на телефонот. И можам да се избрише нешто на телефонот, и таа се менува во веб прелистувачот. Сега, нормално да се создаде мајчин телефон стан за iOS или Андроид, што треба да знаат Јава или Цел В. технологија метеор употреба да им се овозможи JavaScript за да работи како вашиот стан се нарекува PhoneGap. Што вашиот стан во суштина е е веб прелистувач. И метеор се справува со сите слабо делови вклучени за ставање на тој веб прелистувач за да вашиот iPhone или вашиот Андроид уред. Може да се види дека Корисничкиот интерфејс е мазна, и тоа изгледа и се чувствува многу многу како мајчин стан. Забележи дека ако одам до дома екран сега, јас, исто така, да се добие икона. Ова не е веб-сајт како што ќе се најде во Safari. Ова е свој стан. Можете да ја инсталирате и избришете го, ако сакате. Ние кратко може да ви го покаже она што го кодот за овој вид на Todos стан изгледа како. Ако се погледне во Todos папка, ќе видите има многу папки. Но, во текот на курсот на семинарот, ние ќе се разбере она што секоја папка се користи за. Ајде да одиме во терминал за да можеме може да ги види датотеките малку подобро. Одам да притиснете контрола Ц за да се спречи серверот, и сега се вратив во Todos стан. Имам различни папки тука, како и на клиентот папка, во папката на серверот. И овие папки едноставно значи дека се што е во клиент папка добива извршува на твојот веб пребарувач. Се во еден сервер папката добива извршува на серверот. Она што сакам да истакнам надвор е дека она што го имавме кога имавме нашите телефонски трчање и нашите веб прелистувач, тие беа клиенти. Но, она што се работи во терминал, тоа е сервер. Имаме други фолдери, како lib, што е библиотека код, како вашиот помошник функции, кои може да се користење на двете клиентот и серверот. И тогаш ќе имаат јавна папка и ресурси папка е потребно за добивање на Вашите слики и други CSS вчитан. Ако имате метеор инсталиран, ние ќе продолжи со туториал за Метеор. Можете да одат на овој URL, meteor.com/install, за да го добиете командна линија дека јас ви покажа кој се инсталира метеор. Ние ќе одиме во текот на првата неколку чекори за да се добие подобра се чувствувам како да ги инсталирате метеор. Но, прво, мислам дека тоа е важно ние ги видиш малку го вклучите Javascript-. За да ви покажеме некои примери за тоа како нашите в знаење може да се преведе за да го вклучите Javascript-, јас сум создаде неколку примери. Тие се во js директориум. Значи, ако во семинари ќе папката изгледа, постои папка наречена js. И овде, имаме неколку примери. Ајде да се отвори првиот пример и да видиме многу брзо. Она што го гледаме е вашиот стандард Здраво светот команда. Ќе забележите дека во C имате неколку линии. И како CS50 студенти се знае, потребен ни е главната функција, и ние треба да вклучуваат стандардни I / O библиотека, со цел да се јавите printf. Ајде да погледнеме како го вклучите Javascript-се споредува. Одам да се отвори ex1.js. Коментирани е она што C код ќе изгледаат, и линијата подолу е за сите треба да се води во јазол. Вие не треба главната функција, не треба да ги вклучува сите датотеки, и не треба да се вратат. Можете да се јавите console.log. Ова е еквивалент на вашиот printf. И што е потребно на истата аргументи printf би. И со цел да се кандидира, наместо на водење направи EX1, можете само би го нарекол Јазол ex1.js. Ти пишувам Јазол, а потоа на датотеката, и го добива кандидира. Тоа не се состави. JavaScript е препознаена јазик. Значи, тоа не треба да биде Составувач е пред да се кандидира. Ако сакав да се кандидира ex1.c, Морам да го направи првиот, а потоа можам да се кандидира на извршна да го добиете истиот резултат. Ајде брзо ги покрие некои други вклучите концепти. Да ги погледнеме на пример две. Во ex2.js, во ex2.c, може да се види дека имаме некои код. Дозволете ми да брзо одат на подобар текст едитор кој ќе покаже дека овие нови линии малку подобро. Во ред. Тука имаме пример 2.c. Тука имаме различни типови дека ние сме печатење. И како што знаеме, printf трае различни проценти аргументи за пристап до различни делови на податоци. Ако сакаме да се печати стринг, ние го нарекуваме% s. Ако сакаме да се јавите пловечки точка број, наречена% f. И нема лесен начин да се јавите на Булова од нејзината вистинска или лажна вредност. Но, ако користите% d, може да се добијат 0 или 1 за лажни и вистински. JavaScript е малку поубав за нас. Во JavaScript, ајде да погледнеме на неколку разлики имаме во оваа датотека. Прво, ќе забележите дека во C ние треба да иницијализира секоја променлива со тип. S е знак ѕвезда. Тоа е стринг, и тоа не може да биде било кој друг вид. N е плови. B е bool. Но, во JavaScript, има динамичен типови. Тоа значи дека ти не треба да му кажете да го вклучите Javascript она што се видовите на променливите ќе биде. Можете само да се каже за var променлива, име на променливата, а потоа и неговата вредност. Значи var може да биде нешто навистина. Тоа може да биде стринг. Тоа може да биде децимален број. Тоа може да биде знак. Тоа може да биде рационален број. И конзолни најавите работи малку поинаку. Ако сакате да ја испечатите голем број, ќе се јавите% d. Но, повеќето вредности може да биде отпечатен во вид на жици само парична казна. Ајде да се кандидира тоа во Јазол да видам што ќе се случи. Јас може да се јавите Јазол ex2.js, и да добиеме printf со вредности CS50, N, како на број со подвижна запирка, а потоа Б како Булова конвертира во стринг вистина. Што ако ние ги направивме пример 2.в? Па, ние се уште има некои повеќе annoyances со printf. Забележете дека подвижна запирка број треба да бидат форматирани правилно, и дека Булова не може едноставно да се прикажуваат како вистинити или лажни. Во ред. Сега да ги погледнеме на пример три. Во примерот на три покажуваме како ќе се користи за телефонска линија. Всушност, тоа е многу едноставна. Една од убавите работи во врска со JavaScript е дека тоа е C врз основа. Тоа значи дека многу од вашето кодот ќе изгледа многу слични и се чувствуваат многу исти. Во еден за телефонска линија, единственото нешто кои навистина е изменета тука е наместо int i, имаме var i. Ние се уште може да ја додадете вредност нула, проверете дали тоа е помалку од пет години, и тоа подигање од страна на еден со ++ оператор. Ние го нарекуваме console.log за I, и дека ќе ни се печати број со секоја линија. Ајде да се кандидира навистина брзо да се види она што го излези. Ние се добие нов број во секоја линија. Друга работа е што сакате да се забележи со console.log е ти не треба да се напише обратна коса црта n за нов ред. Console.log ќе печати сè што е на посебна линија. Тоа е убаво функција дека го вклучите Javascript-ни дава. Сега ајде да се отвори пример четири. Во примерот на четири, прво во В, ние се јавувате неколку функции. Забележете дека ние треба да се прогласи за функции пред да ги користите во главниот. Ако имавме главниот првиот и а потоа додадете и потоа високо, да, ѕвекот, или ќе GCC ни даде грешка велејќи што не знае што е висока. Таа не знае што е додаток. Значи во C, морате да бидете пребирливи во врска со редоследот по кој ќе се јавите на вашиот функции. Ајде да погледнеме како може да да го направите ова во JavaScript. Имаме различни датотеки бидејќи таму неколку различни начини да го направите тоа. Еден начин е доста директен превод. Бидејќи функции во C врати видови, и го вклучите Javascript- навистина не знаат или грижа за тоа каков тип ќе се вратите, не го пишувам тип. Наместо тоа, вие само треба да се напише функција, и сè е прилично многу исти како порано. Кога ќе имаат променлива, како и во додадете, ние само треба да се напише x и y. Ние не треба да се каже x е цел број. Ние не треба да се каже y е цел број. Се враќаме со иста синтакса. За висока, ние ја прогласи со функцијата, наместо неважечки. Забележете дека без разлика дали тоа е неважечка или не-празнина, тоа е сепак сите се исти функција. И ние едноставно не се стави ништо во загради, и тоа изгледа многу слично на C код. И подолу, можеме да го наречеме подолу. Ако ги погледнеме пример 4б, забележуваме дека јас сум смени неколку работи. Единствено нешто што ми се промени Навистина иако е редот. Имаме исти функции, но сега тие се донесена откако тие се користат во console.log и високо на линиите 18, 19. Ако го направи тоа во C, направи ќе фрли грешка. Еве, ова работи само парична казна. И можам да ја прикажете до вас од страна повикувајќи јазол на 4б пример. Друг начин можеме да го наречеме функции е со заштеда на функции како променливи. Како што реков, променлива може да има било кој тип. Еден од видовите променлива може да има е во функција. Значи, ако се погледне на пример 4в, она што сум го смени тука е var додадете наместо функција додаток. И сега да е еднакво на функција. Оваа функција тука е анонимен. Тоа нема име, па тоа е само функција, а потоа во заграда. Синтаксата после тоа не се менува, но вие треба да се има предвид дека имате променлива која сте чување на функција во додаток, и променлива што сте чување во висока. Бидејќи додадете и високо се сега променливи и не функционира, нешто се менува. Ова е вообичаена грешка гледам во многу JavaScripts на луѓето, и нешто да се задржи во умот. Кога ќе ја извршите оваа, ајде да видиме што се случува. Јас добиете грешка. Тоа е велејќи недефиниран во овој момент. Така, тоа е тоа велејќи дека не знае што го додадете е. Бидејќи сега да не се функција, додадете е променлива. И да не сте навистина дадени додадете вредност уште кога ќе го користат. Тоа нè доведува до 4г пример, каде што доколку сакате да го користите променливи како функции, вие само треба да бидете сигурни дека тие добие вредност пред тие да се користат. Ајде да се движат на пример пет тогаш. Еве, ние зборуваме за structs во C. Во C, structs имаат оваа фиксна структура за затоа што мора да ги пријават пред да го користите, и ви кажам сум студент, и секој студент има точно едно име, една година, еден род. Таа треба да ги имаат сите од нив. Тоа не може да има никакви други вредности, и тие треба да бидат одредени видови. Тогаш можеме да го иницијализирам struct во овој убав синтакса бидејќи тоа го знае редоследот. Значи таа знае дека Роџер е име. Таа знае дека 2016 е година и М е родово затоа што кажа дека ова Листата е struct студент. И тогаш можете да го испечатите тоа, пристап до s.name. Ајде да видиме како ќе конвертирате дека за да го вклучите Javascript. Забележете дека е сега е променлива, и нема тип. Тоа е само var повторно. Поради тоа не е важно дали Типот на оваа променлива е покажувач, тоа е struct, или нешто друго. Имаме малку поинаков синтакса. Оваа синтакса е објект синтакса. Можеби сте го виделе во JSON. JSON всушност стои за Го вклучите Javascript-Објектно нотација. Ова е како да се дефинира објекти во JavaScript. Имаме клуч, кој е вредноста, како името. И ние го даде вредности на на другата страна на дебелото црево. И една работа да се има предвид е што не треба да има име и една година и родова за објект. Еден објект може да има вредности. Тоа може да има колку што сакате. Ние може да ги користат овие објекти во само ист начин како што ќе се користи struct, s.name. Ние може да го извршите навистина брзо со тоа јазол пример 5.c. Ние, всушност, не може да се води С датотека во јазол. Таа не знае што C е. Таа знае само да го вклучите Javascript. Кога ќе ја стартувате ex5.js, ние се вредноста која што се очекуваше. Ајде да се движат на пример шест. Овде сакам само да се зборува малку малку повеќе за да го вклучите Javascript низи бидејќи тие се малку различно од она што сте се користи во В. низи се нотирана, не со голема заграда како во C, со големи загради, но голема заграда. Можете да имате празен низа, како ТП во согласност четири. Можете да имаат низи со повеќе вредности. И можете да им пристапите само на ист начин во В. До седум линија, сè изгледа прилично јасна. Една мала разлика е тука во линија 10. Начинот на кој ќе се добие должината на низа е само со повик .length. Низа всушност може да биде третира како објект, и овој објект е со должина имот дека ќе се јавите за да се добие на должината на тоа. Забележете дека ова е различно во C, бидејќи во C вас мора да се знае должината на вашиот објект пред време. Значи уште една добра работа во врска со низи е дека може да има различни типови. Ако имате низа во C, таму се низи на одредена вредност, или покажувачот struct или лебди или [нечујни]. Еве, ќе може да има различни вредности. Јас прв пат имаше број со подвижна запирка, тогаш Булова, а потоа друг број. И всушност, можат да го променат видови премногу. Погледни линија 16. Низа две се менува од тоа да биде број, цел број, за да се низа. Друга убава работа во врска со низи е тука на линијата 19, тие имаат бесконечна големина. Вие само може да се каже сакам стоти елемент да биде стринг legit. И ова не чини да се направи смисла бидејќи само низа има простор за три елементи, па на крајот треба да биде два. Но, кога ќе го направите ова, ајде види она што низа три станува. Ние ќе ја извршите оваа брзо со јазол пример six.js. Ние го добивате ова навистина долго низа, и она што се случува е тоа што имаме првите неколку елементи а потоа еден куп празни места додека да добиеме нашите стринг. Го вклучите Javascript-се полни во низа како што е потребно. Ајде конечно да одиме во нашиот последен пример. Тука имаме листа на различни студенти. Сакам да се зборува малку малку за некои убави аспекти на за петелки во JavaScript. Во C, за петелки се вид на ограничен. Тие имаат фиксен структура, каде што имаат променлива, имате состојба, а потоа ќе се направи нешто на крајот од циклусот. И, се разбира тоа функционира во JavaScript, Како што видовме во претходните примери. Но, ние исто така имаат поубави начини го прават тоа во JavaScript. Ова се нарекува foreach циклусот. Жал ми е, да се вратиме на пример седум тука. Ние, исто така, може да се каже дел е на листата. Значи ми го даваат секое I или секој индекс во таа листа. Тогаш ние може да се добие на студентот само со повикување делот на i. Па сите го кодот на поставување з еднакви на нула и правејќи се дека јас е помала од должината и додавање еден да се з секој пат, тоа е се грижи за вас, а убаво со овој foreach циклусот. Не само што foreach јамки работат во листа или низи, тие, исто така, работат во објекти, што е исто така убаво. Можете да го добиете името секој имот од само преземање речник или објект, како студент, а потоа само велејќи ми даде секој клуч. Клучен ќе биде овие својства, име или куќа. Значи она што се случува да се случи тука е дека да печатиме прво името, а потоа куќата на секој ученик. Јас може да се кандидира тоа во Јазол навистина брзо да ви покаже. Ние се добие првиот стилот C за телефонска линија, каде што ние се добие секој објект се печатени надвор. И тогаш имаме да го вклучите Javascript стил, каде што може да се само печати секоја клучна и вредноста поединечно. Во ред. Сега дека ние сме опфатени Node.js, мислам дека ние сме подготвени да започнете со Метеор. Како што реков, Метеор направи одлична работа на пишувањето на некои готови примери за вас дека можете да истражуваат низ ова упатство или во семинарот папка. Но, тука сакам да стартуваат повеќе од нула. Да се ​​создаде едноставно да се направи апликација. Ова е вид на база на тоа што за да се направи апликација што ти го покажав претходно е. Во овој туторијал, ќе ќе видите дека има команда метеор креирате да се се создаде нов метеор проект. Вие треба да се јавите на оваа цел да се кандидира метеор проекти, бидејќи тоа ќе се кандидира на команди да се создаде Метеор додадени фајлови: е потребно за вашиот проект. Ако одите во терминал, можеме да одат во папка наречена првиот чекор. И еден чекор ќе кореспондира со првиот чекор во упатството. Известување постојат папки, чекор еден, два чекор, па се до пет години. И секој од нив одговара на чекор во ова упатство. Одам да го отворите во мојот текст едитор тука па ние може да се види малку од она што беше замислен. Ние забележите дека постојат четири главни делови. Има еден метеор директориум, .meteor. И што обично не треба да се допре. Метеор се грижи за таа папка, и тоа само прави сигурни дека вашата Проектот ќе работи коректно. Ние исто така имаме три датотеки, една HTML датотека, вклучите Javascript-датотека, и CSS датотека. Ајде прво да започнете со HTML датотека. На прв поглед ова изгледа како нормален HTML документ. Но забележите дека постојат неколку разлики. Еден од нив, тоа не е, всушност, целосна HTML документ. Ние сме недостасува на HTML тагови. Тоа е нормално. Во метеор, вие не сте се очекува да се создадат овие HTML тагови. Тоа е направено за вас. Сакате да begin-- ако сакате да се создаде веб-сајт, вие само треба да се почне со главата таг, дефинира тоа, а потоа дефинирање на телото таг. Но, ако забележите во оваа HTML датотека, имаме нова ознака. Имаме дефиниција таг. Ова не е нормален HTML. Ова е специјална верзија на HTML Метеор дека става на располагање на вас. Таа се вика простор барови. Можете да дефинирате шаблони малку, модули, нешто како помошник функции, во вашиот C или JavaScript код. Овој шаблон би имаат име се нарекува задача. И можете да видите тука на линија 13 што ќе може да го нарекуваме овие шаблони. И она метеор ќе направите е само пополнат овие задачи за вас. Друга работа е што може да се забележи е малку поинаква е ова секоја функција. Секој ќе се променливата задачи и вид на оди преку него во кои foreach циклусот ние видовме во примерот седум. Оваа секој може да се земе речник или листа, објект или листа, и тоа само ќе одат низ сите вредности како foreach циклусот би. Значи, ако имаме еден куп на задачи, овој ќе се јавите на дефиниција на секоја задача. Ајде да го води проектот Метеор само за да видам што се случува ова. Трчам на проектот Метеор со само метеор или метеор се кандидира. И сега метеор само ќе треба брзо да подготви проект, започнете база на податоци како што е потребно, а потоа пост на стан на локално ниво. Ние можеме да одиме во нашиот веб прелистувач сега. И ние ќе се види дека ние имаме еден многу едноставен стан. Значи она што го видов беше всушност се појавил на првиот чекор, чекор една датотека. Ајде да се движи кон чекор два само поради Мислам дека тоа ќе служат за истата намена. Јас сум само ќе се смени на чекор два директориум и да ја стартувате метеор повторно, па може да се види дефиниција ние само работено со. Да, едно прашање? ПУБЛИКАТА: Ако ние сме добивање дозвола негира, е that-- што е тоа повика на тоа? ROGER ZURAWICKI: Ако си работи метеор рок, и дека имате дозвола одбиено, некои од вашите датотеки не би можеле да имаат право дозвола сет. Значи мора да се провери каде на дозволи се исклучени. Тие можат да бидат надвор во Метеор вашиот проект, или тие може да се исклучи во Метеор себе датотеки. ПУБЛИКАТА: Ако го симне само сега од вашиот GitHub, тогаш што треба да направите [Нечујни]? ROGER ZURAWICKI: Ако сакате да бидете сигурни дека можете да имате пристап до него, има команда може да се кандидира. Дозволете ми да брзо да го напише надвор така што другите луѓе може да ги види. Одам да се отвори ново ливче тука и да си одат во мојот семинар папка. Chmod е команда да се сменат дозволите, и може да се каже r за да го направи тоа рекурзивно за секоја датотека. И дозволи, можете да се обидете 0755 да бидете сигурни дека имате целосен пристап, и секој друг не може да се прочита. И ако само се кандидира оваа наредба, тоа ќе се направи дека дозволите се во проверете за целиот директориум. Вклучување на ls-l може да ви покаже дозволи во повеќе детали. Ова изгледа ОК. Она што е најбитно е дека ги имате сите три rwx за сите датотеки во На семинарот директориум. Дали тоа го реши проблемот? ПУБЛИКАТА: Таа вели дека недостасува operant [нечујни]. [Нечујни] ROGER ZURAWICKI: Вие мора да бидете сигурни дека имаат точката на крајот на вашата команда. ПУБЛИКАТА: [нечујни]. ROGER ZURAWICKI: Во ред. Ајде брзо да се вратиме на локалниот компјутер, на стан што го имаме. И ќе видите дека имаме неколку работи овде, како што се очекуваше. Ние имаме еден куп на CSS, која не треба да се грижите. Метеорот туториал само дава ова за вас да се направи вашиот да се направи листа изгледот на малку поубав отколку обичен HTML. И ние имаме вклучите Javascript-датотека, која Јас ќе одам во повеќе детали малку подоцна, но тоа само обезбедува овие задачи. Ова е една задача. Ова е задача две. Ова е задача три. Значи ова е за добивање на податоци метеор. Еден од кул работи за Метеор е дека промените може да се случи автоматски. Ако сакав да се промени името на првиот задача, па тоа ќе го кажам ова не е една задача, а јас го спаси, тогаш кога ќе одат на интернет пребарувачот, можете да го освежи, и тој автоматски вели ова не е задача еден. Можете да го прават истото во која било од овие датотеки. Направат промена, наместо да се направи листа, јас ќе го имаат мојот да се направи листа. И едно нешто што само забележав, дека јас дури и не мора да се одмориме. Идејата за освежување е вид на решени за вас со Метеор. Секогаш кога ќе се детектира промените на датотеки, тоа ќе го вчита на промени за вас. Ова работи на сите датотеки, без разлика дали тоа е HTML, CSS, или го вклучите Javascript-. За да ви го покаже она што овој стан ќе изгледа како без CSS, можам да сите го отстраните. И кога тоа е превчита, сега го имате а не како убав за да се направи листа. Да се ​​стави тоа што содржината на грбот. И сигурно е доволно, освежува, а нашите CSS е назад. Велики. Ние сега може да се движи со туториал. Ајде да зборуваме за чекор две, шаблони. Тоа е она што го видоа со различни задачи. Метеор ќе да ви објаснам што шаблони и како таа логика функционира. Но, ајде да се погледне на кодот на види дали може да се направи смисла надвор од неа. Во многу едноставни апликации, како она што го имаме во едноставна да се направи, првиот чекор, чекор два, чекор три, четири чекор, чекор пет, ние не се имате било какви папки. Ние немаме на серверот папката што ги спомнав. Ние немаме на клиентот папката каде што беше споменато. Значи метеор ќе се кандидира сите датотеки. Тоа ќе го прави и работи на клиент, како на серверот. И ако сакате делови на вашиот вклучите Javascript- кодот да се кандидира само на клиентот, тие треба да бидете сигурни дека ги имате АКО изјава, вид на, како што имаме во нашиот JavaScript датотека тука. Значи метеор, само ако тоа е на клиентот, тогаш јас сакаме да ја дефинираме дефиниција помошник наречен задачи. Што е ова навистина кодот не е тоа вели дека има на објектот наречен дефиниција дека метеор обезбедува. И ние ќе треба да додадете помошник. Помошници се овие задачи, овие работи, како на задачи. Ќе видите дека ако ние одиме назад до HTML датотека, ние се довикувале на задачи. Задачи не е дефинирана во HTML. Тоа е дефинирано во JavaScript. И метеор треба да знае што работи е кога ќе одиме во вклучите Javascript тука. Задачи е ова помошник. Помошник, можете да замислите го како дефиниција променлива. И она што не работи направам? Па, таа се враќа на листата на вредности. Затоа што тоа е на листата, можеме да го наречеме секоја во неа. Значи тоа е зошто ние го нарекуваме секоја од задачите. И сега имаме задача. Што значи задача направам? Па, тоа е тоа стрелка тука по кадрави загради. Тоа значи дека задачата е дефиниција. Тоа не е помошник, како она што го видоа. Тоа е дефиниција сме дефинирани. И каде што ние го дефинира? Ние го дефинирано подолу во право тука. Сето ова е дефиниција не даде листата на објекти, повикува на текст. Сега, текстот се чини дека е помошник, но јас ќе ви покажам дека ова е всушност уште член на податоци на задачите. Кога ќе се јавите секој, тоа оди во податоците структура малку. Како foreach циклусот, сега само изгледа на првиот елемент во нашиот објект. Гледаме дека текстот е дефиниран овде во нашиот објект. Значи Метеор е паметни да знаат дека ние зборуваме за овој текст, не помошник нарекува текст. Тоа само добива вредноста на овој текст тука и го прикажува како HTML, и тоа е начинот на податоците оди од JavaScript за да HTML. Премина сепак, во овој пример ние хард кодирани тие вредности. Метеор прави две навистина убави работи за нас. Покрај живо освежување дека ние покажа, тоа исто така управува со нашата база на податоци. Ако требаше да работи со PHP, ти мораше да го конфигурирате phpMyAdmin. Ти мораше да бидете сигурни дека вашата маси, сите беа во чек. Што требаше да направи многу работа да се направи сигурни дека вашите податоци е форматирана правилно, и PHP за да се комуницира со неа. Сега, метеор користи нова парадигма. Ова е помодерен начин на ракување со база на податоци. Тоа е технологија наречена MongoDB. Исто како и во JavaScript, видовме дека тоа не е важно она што типови на податоци имал. Сè беше на var. Тоа не беше charstar. Тоа не беше цел број. Тоа не беше struct. Тоа беше само var ова, var тоа. MongoDB вид на работи на ист начин. Вие не треба да се дефинира вашиот маси. Вие не треба да се каже на маса има име, која има int. Тоа е, јас не знам, доларот, што е децималниот. Тоа е само овие вклучите Javascript-објекти, сите овие предавања, во суштина. И ова е навистина моќна начин за прототип вашиот стан. И тоа е причината зошто метеор се предностите на ова. Ако одиме во чекор три, Да видиме што се променило. Ако се погледне на Todos HTML, не многу. CSS не се променила. Но, на мала промена гледаме во HTML е што сум се промени начинот задачи е дефинирано. Задачи сега функција. Тоа значи дека секој време сакаме да го добиете задачи, ние сме случува да се кандидира на оваа функција. Тоа не ја врати функција како вредност. Метеор е паметен да всушност работат на функцијата, за да се види она што излезе. И тоа се враќа оваа работа наречена задачи. Ние сме дефинирани задачи на линија еден, и тоа е збирка Mongo. Mongo се однесува на база на податоци метеор користи, и овој нов едноставно значи ајде да се направи нова колекција, го нарекуваат задачи. Во MySQL, ова ќе биде еквивалент на во потрага по маса наречена задачи. Mongo има наплати, не маси. Значи ова само изгледа за задачите. Сега, дефиниција во нашата помошник во дефиниција, на сите ние треба да направите за да ги добиете сите задачи на оваа функција, се најде и овој празен подготвуваат. Ова е повеќе особено за Mongo синтакса. Има многу документација на интернет, за тоа како може да се направи ефикасна и навистина корисни Mongo пребарувања. Но, нешто како ова е добар доволно за само наоѓање на сите податоци. Сега, едно од прашањата што можете да видите е дека ние всушност никогаш не го додадете податоци. Значи она што се случува кога ќе всушност работат чекор три? Ајде брзо одат во Трет чекор и да ја стартувате метеор. Забележете дека имав уште Метеор Проектот работи некаде на друго место, па метеор не му се допаѓа тоа. Јас сум само ќе брзо блиску до Од друга Метеор со контрола на C, одат во чекор три, и да ја стартувате метеор повторно. Напомена тоа е почнуваат MongoDB бидејќи MongoDB е дел од секој метеор проект. Тоа што го кажува моето барање има грешки. Тоа е убаво функција метеор има. Тоа го прави сигурни дека вашата HTML-от е добро потврдена. Ајде брзо погледнеме зошто ова може да биде. Се чини дека имам случајно копирани погрешна HTML код. Ако го зачувате, Метеор автоматски се рестартира серверот, и сега на стан работи како што се очекуваше. Напомена да го надминете овој, само може да се кандидира исто HTML датотека од чекор две, го копирате во чекор три. Ние можеме да се вратиме на локалниот компјутер. И сега гледаме дека имаме да се направи листа. Велики, но тоа е празна. Ние всушност не имате било какви задачите во нашата Mongo база на податоци. Па ајде да зборуваме за Неколку начини да го направите тоа. Ако се вратиме на терминалот, ние може да се затвори и да ја стартувате метеор Mongo. Ако сте запознаени со тоа како метеор работи, ова всушност ви дава пристап до целосна MongoDB за Метеор. Забележете дека треба да се работи Метеор прво за ова да работи. Значи, ако јас ја извршите оваа во нов таб, јас да се вратам на истиот директориум. И сега метеор работи само парична казна. Ова е брза. Дозволете ми да се направи тоа малку поголеми, па ние може да се види. Ова изгледа малку поинаку отколку она што може да се користи за да ви навистина не треба да се користи Mongo. Целата поента на мене тука е така што ќе може да се користи JavaScript. Но, ако сте љубопитни, на Mongo API не го користите SQL, на Структурно јазик за пребарување. Таа го користи својот јазик кој изгледа многу како JavaScript. Многу брзо, може да се најде маса преку db.tasks. И тоа е ми кажуваше Излегува ако трчаме најде, вид на слични на она што го имавме со Метеор, ние може да се вчита сите елементи. Проблемот е во тоа, ние не всушност имате било какви задачи дефинирани. Значи, тоа не може да ги добие. Ние може да се вметне, иако. Значи можеме да се кандидира вметнете со командата Вметни. А ние само го даде објект, а ние само бидете сигурни дека форматот е она што го очекуваме. Ако ние погледна во чекор две, видовме дека секоја задача беше предмет со текст како клуч и што да се направи вашата точка беше како променлива. Значи можеме да направиме нешто тука. Ние може да го вметнете задача наречен Јас доаѓам од Mongo. И ние притиснете Enter, и бега. Ние може да работи најдете повторно, и ние види дека постои објект тука. Mongo го доделува проект, кој ќе навистина не треба да се грижите. Она што е важно за вас е на податоци ќе се стави во, е податоците да се излезе. Да се ​​вратиме на нашата веб страница, И еј, нашата задача вчитан. И може да се види дека бидејќи метеор е многу паметен и секогаш се освежува за тебе, не треба да се допре на страната. Се вчитуваат автоматски. Ајде да се кандидира на некои код во Го вклучите Javascript иако да го направите тоа. Како ние треба Јазол во грбот крај за извршување на JavaScript, ние, исто така, може да работи да го вклучите Javascript директно во нашите пребарувачи. Можете да го направите ова со функција наречен Увид Елемент. Ако јас кликнете со десното копче на дел од страницата, има опција наречен Увид Елемент. Ако сте водење на како Safari прелистувач, вие можеби ќе треба да им овозможи на вашиот инвеститорот алатки пред да ја добие оваа функција. Она што ние се грижиме само за конзола. Па ние само ќе одат на конзола на дното. Сега можеме да го стартувате некој го вклучите Javascript- овде, како да го вклучите Javascript- додадени фајлови: Дојдов во js пример. Но, сега ајде да погледнеме на задачи. Ние можеме да се кандидира на нашите команда. И се надевам дека ќе бидете во можност да се направи тоа е малку поголем, така што можеме да видиме сите. Ако трчаме tasks.find, и ќе види дека ова е точно истиот код дека датотеката вклучите употреба во чекор три, оваа task.find. Ние може да работи за иста работа, и Сега ние се добијат некои чудни работи. Како да ние всушност на податоци? Па, ние треба да ја извршите оваа команда наречен цена. Ова е многу корисно за дебагирање. Што добивате тука е курсорот, и ова е убав начин метеор има оптимизиран за преземање на податоците. Ова курсорот ги има сите карактеристики за во живо ажурирање и да ја освежите страницата кога нешто ќе се смени. Но, тоа не ќе ни се добијат податоци. Ние може да се добијат податоци преку добра цена. И гледаш имаме објект, и тоа е исто како она што го имавме во Mongo, со лична карта, а текстот го ставаме во. Така како ние да вметнете некој објект во метеор? Па, ние само треба задачи. И тогаш можеме да се кандидира на исто вметнете команда, давање речник или објект со ист формат, текст и тогаш ќе дојде од конзола. Погледнете погоре, бидејќи кога јас го направите ова, се појавува на веб-сајтот автоматски. Забележете дека може да се стави нешто што го сакате во овие ставки. Тоа не мора да имаат фиксен структура. Јас би можеле да имаат еднаков на бројот три и б еднаква на лажни. И сето тоа работи. Јас дури и да изберете да не вклучуваат текст на сите. Ова е само не се препорачува иако, бидејќи тогаш Метеор не ќе знае што да се прикаже. Но, во секој случај, добие лична карта, а тоа е проект на објектот можете да го користите. Како ќе продолжиме со Чекор четири и пет чекор, туторијал ќе ви покаже начини на кои можете да креирате UI елементи користење HTML кодот знаете за креирање на различни задачи. Ајде да погледнеме во чекор четири навистина брзо. Ќе видиме што додадовме делот за настаните. Шаблони може да има помагачи, кои ни се добијат податоци. Но, тоа, исто така, може да се јавите настани. И ова е местото каде што работи станува корисни, бидејќи настаните се она што се случи кога ќе кликнете на различни нешта на вашиот веб-сајт. Еве, нашиот код, зборува ни да го додадете овој настан. Додади го кога сте спонзор нешто со класа на нова задача. Она што го имаме тука е селектор на CSS. Значи ова само изгледа за HTML елемент кој има класа нова задача. И тоа изгледа за настанот, како достават. Други настани вклучуваат клик, лебди, двоен клик, слично на она што го добивате во нормален HTML. Она што го даде тука е сега во функција. И можете да имате код со тоа, што функција. Оваа функција е она што завршува до добивање на вика кога ќе ја посетите оваа нова задача. Да ги погледнеме на HTML само така ние се разбере она што оваа нова задача. Додадовме форма тука со класа нова задача. И има влез што се текст. И ова е местото каде што ние ќе додадете на нашите нови задачи. Ајде да се кандидира чекор четири во веб-страница за да ја видите она што изгледа како. Ние може да се повлече од првиот на MongoDB моравме од нашите претходни пример со контрола на В. И ајде да се промени во чекор четири директориум. Ние ќе се кандидира метеор повторно да започнете на серверот. И за жал, морав Метеор работи во друг терминал. Па јас сум само ќе бидете сигурни дека ова е затворена. Ајде да се откажете од оваа и промени на дел од четири, чекор четири години. OK. Сега нашата метеор кодот е вклучен. И може да се види дека тоа се ажурираат, без нас, дури и да се освежи страница. Што се промени тука е сега дека ние не се имате било какви задачи, но ние имаме форма тука, ова поле за текст, да додадете нашите нови задачи. И ние може да внесувате нашата задача тука. Доаѓам од HTML страница. Кога ќе притиснете Enter, го доби поднесе. Ние може да се види она што се случи како дефинирани од страна на JavaScript код. Она што оваа функција не беше земе текстот од формата, а потоа само се нарекува tasks.insert, како што правевме во конзола. Тие, исто така, избра да додадете датум createdAt. Ова е како ќе се наведете го тековното време. После тоа, се отвора форма, со тоа што дека вредноста е празен стринг. И тогаш го нарекува return false да бидете сигурни дека ништо друго не се случува. Кога ќе се вратите лажни од форма настанот, со што се запира извршувањето. Кажи форма има акција, како да ги поднесат до страница на PHP. Ако не сте се вратиле лажни, ќе се врати вистина. Тоа ќе заврши со што тоа барање. Лажни оската тоа и го запира право таму. Па тоа беше малку демо за како метеор работи, и ние се следниве туториал за некое време. И можете да Ве молиме слободно да продолжиме да работиме ова. Постојат голем број на ресурси, и туториал е всушност само многу добар за објаснување она што се случува. Јас сакам да ви покажам сега, во на неколку минути сме го оставиле, Кои се некои од кулер карактеристики на метеор, и она што се некои од повеќе корисни пакети. Една од големите нешта за Метеор е дека имате пакет систем. Можете лесно може да се вклучат код дека многу илјадници програмери имаат напишано во светот Метеор во вашиот проект. Еден пример за ова е тоа што може да направи во чекор девет од туториал, каде ќе се обидуваат да додадете сметки на вашиот метеор проект. Ако имаме CS50 PHP Проектот, ќе имаме да се потпре на рамка или нашите сопствени кодот да се направи дека можеме безбедно да се справи со лозинки и кориснички имиња и чување на податоци и сето тоа. Излегува метеор има некои пакети за да го направи тоа за вас, и да го направи тоа многу лесно. Она што може да направите е да додадете неколку пакети. Значи, да се направи тоа право сега во нашиот конзола. Одам да се повлече од проектот и сега оди во едноставен Todos. Сега, едноставен е-Todos проектот што ќе ќе имаат по извршената со чекор 11 или чекор 12, на крајот на ова упатство. И ајде брзо се погледне во него за да ја видите Кои се различните функции што ги имаме. Ајде само бидете сигурни дека тоа е водење. Понекогаш е потребно подолго време да се одмориме, но тука е. Ние имаме можност да се сокрие извршување на задачите, а ние може да се пријавите. И тоа беше направено со Метеорот пакет. Тоа е одлично. Имаме сега корисничко име и лозинка знак. Но, што ако сакавме да додадете друг вид на логирање механизам? Да речеме дека јас сакав да се логирате со моите метеор сметка. Одам да се кандидира метеор додаток, и тоа е синтакса за додавање на пакети. Можам да кажам сметки, и accounts.meteor. Тоа се случува да се најде сега пакетот и оптоварување. Можете да видите дека не сум на вистинското име на пакет. Па, како да се дознае за пакети? Па, има голем веб-сајт, направени на располагање од страна на метеор луѓе, наречен atmospherejs.com. Atmospherejs, со еден збор, точка Com, е одличен складиште за наоѓање на сите на метеор пакети во складиштето. Јас може да пребарувате сметки, а потоа тоа ќе ми ги покаже сите релевантни работи, сите пакети со името на профилот. Иако тоа товари, можеме да се обидеме додавање на некои други пакети. Можеби метеор пакет не работи во моментов, но можам да додадете на Фејсбук. Можам да додадете сметка, а потоа го води проектот метеор повторно. Откако ова започнува, ајде да видиме што се промени на сајтот. Можете да see-- би можел да Мора да го обновите тука. Имам само едно копче конфигурирате Фејсбук логирање. И овде, имам сите инструкции Метеор има подготвено за вас за поставување на Фејсбук стан. И можете да го користите информации за да додадете вашиот лични карти. Откако тоа е направено, ќе имате Фејсбук Влези работат во вашиот стан. Јас сум само се случува да се добие еден стан проект и една тајна, само за да ви покажеме како може ова да работи. Ќе ви треба сметка на Фејсбук да го користат Фејсбук инвеститорот опции. Дозволете ми само брзо наоѓање на Метеор клучеви кои се неопходни. Имам уште еден метеор проект што јас ќе одам да се користи, и јас сум само се случува да се земе клучевите од таа датотека. И еднаш го најде, јас само ќе бидат во можност да го копирате овие клучеви во мојот Фејсбук. Значи тука е клучот. И ова е тајна. Вие не треба да биде споделување на ова со луѓе. И тогаш ќе му ја дадете вашата апликација тајна. И ова е толку Фејсбук знае дека си ти. И ќе ја зачувате вашата конфигурација. Мислам дека во процесот можам престанаа да ми метеор стан. Па јас само сакаат да направат дека тоа е уште таму. Добро, ајде да се осигураме дека нашите метеор сервер се извршува така на веб страната се извршува. Напомена ако се запре Метеор сервер, на страницата се уште е таму. Тоа едноставно не ќе се ажурира повеќе. Метеорот серверот е потребно за што си сигурен страната е во живо. Добро, јас сум го поднесе, а сега Можам да Пријавете се со Фејсбук. Сега тоа е само прашање на Фејсбук има pop-up и ставање во вашиот профил информации и најавување. Откако ќе го направите тоа, Фејсбук би можеле да ти дават за некои повеќе безбедност. Па ние само ќе престане да постои. Поентата е во тоа што кога ќе завршиш со тоа, ќе имаат Фејсбук логирање. Метеор има еден куп на други пакети, како и. Можете да се најавите со Google +. Можете да се најавите со GitHub. Можете да се најавите со Твитер. Или, ако ја барате, ќе најдете многу други работи како Meetup, Скопје, Метеор и програмери. Значи метеор програмери беше пакет јас го барав. метеор додадете сметки-метеор-развивач. Во меѓувреме, Исто така, сакам да предложам некои други пакети за вашите проекти. Тоа би можело да биде корисно да вклучуваат jQuery пакет. Ова ви дозволува да користите jQuery во Вашите клиенти. Вие само може да го направи со една линија, и Метеор ќе бидете сигурни дека сте во тек на jQuery. Јас, исто така препорачуваат Хјустон: admin. Ова е вид на како phpMyAdmin вид на алатка за вашата MongoDB. Ова ви овозможува да ги уредувате вашите податоци многу лесно без да мора да оди на Mongo школка, како да сум сторил претходно во текот на семинарот. Па сега дека тоа е по ред, ајде да се кандидира Метеор повторно и да видиме што можеме да направиме. Ќе забележите дека додавање на некои пакети можеби ќе треба да ги презентираат некои предупредувања. Вие нема да мора да се грижите за тоа со Хјустон. Значи, ние сега може да имаат опција за да го конфигурирате метеор админ. И тие ви даде насоки Ако сакате да ја постави таа нагоре. Ние исто така можеме сега одам да / админ. Ова е доведена до вас од страна на Хјустон пакет. И ова е метеор админ интерфејс. Вие само се создаде администратор сметка, како и толку. И ако го обновите страницата, можеби има некои колекции прикажани. Тоа е многу корисна алатка, и јас силно го препорачувам. Можете да се види дека Хјустон беше давање на некои грешки, ние немаме колекции прикажани во моментов. Начинот на кој ќе се користи Хјустон е правејќи се дека оваа функција добива наречен во вашиот едноставен Todos. Значи Хјустон не знам што ми задачи. Ние формира Mongo колекција наречена задачи. Ајде да одиме во едноставни и само-Todos бидете сигурни дека го вклучите Javascript-, додадовме задачи на нашите колекции. Сега сме спасени, а тоа е изградба апликацијата, освежувачки. И ајде да видиме. Сега имаме некои задачи. И ние може да додадете некои нови задачи. Но, ако сакаме да додадете задачи, ајде да го направи тоа со стан себе. Сега можеме да додадете некои податоци. Здраво, ова е задача. Се чини вид на чудно што ние не гледате сите задачи. Ние би можеле да сакате да проверите дали добивме никакви грешки овде, или можеби некаде на друго место. Ако одиме во админ, кој се чини чудно. Ако се повлече на складиштето по овој семинар, Јас ќе бидете сигурни дека едноставен Todos работи со Хјустон. За жал, тоа не чини да се да се работи во овој момент. Дали постојат било какви други прашања? Хјустон вообичаено е алатка која работи многу добро. Хјустон конкретно е малку buggier од другите, но јас не го препорачувам кога таа работи. Да. ПУБЛИКАТА: Што можете да направите со Фејсбук пакет Откако на корисникот е најавен со своите Фејсбук? ROGER ZURAWICKI: Откако корисникот е најавен, можете да направите повици на Фејсбук API. Многу од тоа лежи повеќе во како Фејсбук отвора нивните API. Метеор, бидете сигурни дека имаат врска. Но, сè што после тоа е прашање на учење како да се користи Фејсбук API. ПУБЛИКАТА: [нечујни]. ROGER ZURAWICKI: Во ред. Ви благодарам многу за ова CS50 семинар во метеор. Ако имате било какви прашања, можете да ми мејл на мојата е-маил адреса наведени подолу семинарот. И јас ќе бидам среќен да одговори на вашите прашања. Јас исто така ќе бидат во CS50 Hackathon треба ви треба помош со вашиот метеор проекти. Ви благодариме за гледање.