[Музички] Дејвид MALAN: Ова е CS 50, и ова е почеток на неделата девет. И она што сме мислеле дека би го сторила денес не е само затвори поглавјето за минатата недела материјал каде што ние се фокусиравме на серверот страна веб програмирање со PHP и SQL, некои база на податоци работи. Ќе зборуваме за малку безбедност денес и тогаш транзиција кон клиентот од страна на програмирање јазик познат како JavaScript. Но, прво, некои откуп. Може да се потсетиме дека на Среда, тргнав да се напише веб-сајт кој зеде во влез корисникот со HTML форма која потоа се чуваат дека корисникот влез имиња, телефонски броеви и мобилен телефон превозници во базата на податоци. И потоа морав малку команда линија скрипта напишана во PHP што требаше да iterate во текот на редови во базата на податоци и испрати на текстуални пораки. И покрај неколку, неколку обиди, ние не се добие таа работа до крајот. Па јас помина целиот оваа недела работат на тој код да ни се добие минатото на точка каде што застанавте, при што сите Добив до крајот на Среда беше овој текст порака од Марго како што јас се бореше, проследено со текстуална порака од друг соученик, Имаш овој Давид. Проследено со овој, прекрасно охрабрувачки. Чуваат за да навлегуваме, многу трогателна. Јас скоро го добив до then-- и тоа е белешка ние заврши во средата. И тогаш, всушност, можеби моите омилени, Во еден момент подоцна, ова дојде во. Проклето живо поток. Така, денес, ние го надминете овој со брз се погледне во она што го направив, бидејќи. Така што сите на овој код е достапен онлајн од минатата недела, недела осум, изворниот код. И ќе видите дека отидов преку, и јас всушност исчистени работите малку. Јас воведе неколку други карактеристики на SQL база на податоци. На пример, наместо само бидете носител на var знак како што мислам дека го направив во лет минатата недела. Јас наместо тоа се дефинира како она што се нарекува еден enum. И некои од вас може да го виделе ова како ние ја испитавме В. Вариант за парт е, всушност, функција на C каде што можете да наведеме целиот куп на константи и да им доделите автоматски вредности, како еден, два, три, четири без да тешко код броеви. Па SQL поддржува истиот, при што доколку имате база на податоци областа што само сакаат да ги преземат на еден од конечни вредности, вие буквално може да го наведете како што јас го направиле таму за четири популарни САД мобилен телефон превозници. Па јас направив тоа. И јас направив голем број на промени како добро, од кои најважни е да се е-мејл работи, бидејќи се потсетиме, дека оваа програма се потпира на кој обично се нарекува е-маил до SMS портал, што е само фенси начин да се каже дека Веризон, и AT & T и други луѓе поддршка на сервер, при што доколку го добива е-пошта, го претвора во СМС и испраќа текст порака во нечиј телефон. Значи, ако јас го направи ова правилно, тука е нова и подобрена форма што се случува да се зборува за нови и подобрени код, што ја можете да играте со интернет. И се надевам дека ќе ја направам мојата телефон ѕвонче за само еден миг. Значи прво, јас ќе одам да напишеш во мое име. Второ, јас не одам да го направите тоа овој пат. Одам да се Увид Елемент. И ова е само еден мала работа, па јас не создаде часа на пост производство работат како што го направив минатиот пат. Таму сега е мојот телефонски број. Ќе изберете Веризон. И тука, ајде да го вклучите овој микрофон тука, и имаат за цел ова на мојот телефон тука. Одам да кликнете регистар, што треба да се надевам го стави во базата на податоци. Сега ќе одам да се оди на командната линија програма, која потсетиме беше наречен точка коса црта текст, и крос прстите. Еве ќе одиме. [ТЕЛЕФОН dings] [Аплауз] Дејвид MALAN: Значи повеќе забава отколку this-- тоа е забавно, се разбира, ако се влезе во неа. Но, тоа е повеќе да се забавуваат, си помислив, ако ние создаде еден од оние филмски моменти каде што како нешто навистина лошо се случило во светот, и како и сите зимскиот луѓето на мобилни телефони почне beeping со текстуални пораки алармирање на нив да овој факт. Па мислев дека ние ќе се обидеме да се рекреираат на истиот тука, при што не се користи базата на податоци, Јас наместо однапред напиша една програма која изгледа вака. Ова е index.php-- и да го ставам овој код на интернет како well-- дека очигледно само прави form.php, користење на MVC стил парадигма дека ние зборува за подетално во проблемот сет седум. Таа форма е прилично едноставна. Тоа се случува да ги достават до фајл наречен here.php по пошта. И тоа е очигледно случува да побараат за име и телефонски број, а потоа преку на т.н. Одберете ја изборната, тоа е ќе ви даде најмалку четири популарни САД мобилен телефон превозници, а потоа ви овозможи ефикасно на присуство со кликнување тука. И тука, во меѓувреме, се случува да се позајмат на кодот од минатиот пат. И ако само обезмаслен ова, ќе видите дека има целиот куп на грешка проверка. Но убавината на крајот е дека ние не сме пишување на база на податоци денес. Ние сме го држи едноставно и само испраќа надевам текстуална порака преку функцијата јас напиша во текот на изминатите неколку дена повик Текст, кој е во функција. PHP, што повторно е достапна на интернет. Значи, ако сакате да се причестуваат во ова. Ние нема да се чување на ништо. Одете на овој URL тука во реално време. Не го достават само уште, но ајде да види дали може да има еден од овие филм моменти кога мобилниот телефон на сите започнува beeping, се надевам само за разлика од еднаш оваа година во 2011 година каде што тоа отиде ужасно криво. И штом еднаш ќе одам на таа адреса, треба да го видите супер едноставна форма дека ако имате име, мобилен телефон број и мобилен телефон превозникот дека совпаѓа со листа таму, одат напред и пополнете го формуларот. Но не го погоди достават само уште. Форма се случува да изгледа вака. Оди напред и да внесете Вашето име, телефонски број. OOP, некој се случува пред крива. Тоа е во ред. Добро, секој се пополнети формуларот. Ова треба да работат на телефон, исто така, ако сакате. Сите права, на вашиот марки, се постави, одиме. Хит овде. Што? Број Се колнам на Бога, јас тестирани ова повеќе пати денес. Ти ја доби? [Ставање ГЛАСОВИ] Дејвид MALAN: Океј, корисник грешка можеби. Тоа е два. Се работи за две од еден неколку стотици, три, четири. Добро, тоа е добро. Четири од пет за коректност како за. Така што едноставно се случи? Па веројатно, без гледање на вашиот екрани, зошто тоа би можело да errored? Тоа е веројатно дека бевме само се обидуваат да направат премногу врски да Харвард mail серверот сите во еднаш од иста IP адреса. Јас сум само погодување, бидејќи јас не имаат луксузот на тестирање овој код со некои 300 луѓе во однапред но сега за сега сфаќаат дека дека најмалку треба добиле на работа тоа време. Сите права, па зошто е ова сите повеќе соодветен на она што се случува? Па прво, брзо неколку најави. Значи еден, ако сакате да се приклучат на Чанг, и Ник, и други на ручек овој петок, направи RSVP во вообичаеното URL таму. Ако се размислува за концентрирање или правење на средно во CS, без разлика дали сте сафомор, или бруцош, или дури и помлад или постар во овој момент и се уште може да стискаш во курсеви, сфатат дека инженеринг училиште собира за бесплатно Бен и Џери сладолед и совети оваа среда кратко време по класа на 04:00 во зградата CS на Максвел Дворкин. Ако ова е пребрзо на екранот, само оди да cs50.harvard.edu за линк до Фејсбук настан каде што можете да видите повеќе детали. Во меѓувреме, јас мислев дека ќе се поправи една друга работа јас goofed во средата. Излегува дека проект Марко на Фејсбук не беше три. Тоа беше четири. Излегува тој имал повеќе тест сметки отколку што се сеќавам. Но, она што овој чувствував како можност да направите е да се повлече до URL-то како оваа. Значи излегува дека Фејсбук има API, апликација Програмирање интерфејс, која е механизам со кој ќе може да бара податоци програмски на Фејсбук и да се вратам машина читливи информации, а не на веб страници но само сурови текст, нешто наречен вклучите Javascript-Објектно нотација. И всушност, ако го посетите ова URL-то, и зумирате, по дифолт, ова е Марко јавно достапни информации. И интересни детали тука е само дека неговиот проект навистина, бројот четири, што јас реализира веднаш штом го направив тоа. Можете да го направите тоа сами, ако знаете Фејсбук корисничко име ако го имате. Само да го напишеш до врвот таму. И ништо од тоа не е приватна. Јас сум само го прават тоа дури и во режим инкогнито. Па јас не сум дури и најавени. И гледате дека јас очигледно беше кориснички број 6454 на Фејсбук, што не е Штета овие денови. Значи во секој случај, исто така, ќе видиме дополнителни информации таму. И корисни аспект на тоа е дека би можеле да напишете своја сопствена софтвер кој некако интегрира податоци како овој во вашата апликација. Можете да ги поттикне корисниците да влезете во вашиот веб-сајт, не користење на нивните сопствени корисничко име и лозинка но можеби своите Фејсбук Влези и да добијат информации, дури и за нивните пријатели, ако тие го одобруваат такви, или слично. Значи имајте во предвид дека CS50, исто така, има некои свои API-јата, една за текот каталог на податоци, некои за прегратки менија во трпезаријата сали, сите објекти и локации на кампусот имаме API за, како и што ќе може да се пребарува на сличен начин и да се назад текстуални податоци кои можете да се интегрираат во PHP, или JavaScript, или дури, иако поретко, на С врз конечниот проект. Навистина напред за финалето Проектот се неколку пресвртници. Имаш е-маил од нас пред некој ден. Сфатат дека предлогот се должи ова доаѓа во понеделник. Тоа не е мора да е обврзувачка, но вие треба да го добиете вашиот наставата соработници одобрување пред да било потоа промени. А потоа пред се број на други пресвртници. Па да ви закачам, исто така, со некои можности, ние имаме еден куп на овие боја светилки. И некои од вас момци сега имаат некои на овие во вашиот dorm соба, како и. И тие исто така имаат API. Значи се потсетиме оние бинарни светилки недели пред тоа Дан Бредли и Ansel Даф создадена за нас. Тие користеле софтвер интерфејс ова сијалица, која во моментот е вклучен во струја а потоа преку безжична е поврзан со малку работа наречен мост долу тука, како мало рутер сопственички на овој особено уред. Но излегува ако знам како да се испрати на HTTP пораки, како што сите ние сега се направи, Јас може да се испрати порака како оваа за ова сијалица за да го вклучите или исклучите или направи било кој број на други операции на неа. Забележите дека тоа не е да се добие, тоа не е објавите. Има уште еден вика стави. Има всушност неколку други такви глаголи. Но забележите има пат таму, намалување на API, коса црта нови инвеститорот, намалување на светлината, коса црта еден, коса црта држава. Тоа е очигледно само на пат дека компанијата, Филипс, одлучи што треба да ја погоди со HTTP барање Ако сакате да го смените на државата на сијалица користејќи HTTP 1.1. Потоа забележите празно линија. А потоа на крај што личи вид на низа на некој вид, ова повторно се случува да се нарече Го вклучите Javascript-Објектно нотација, или Џејсон. И она што го гледате тука е дека постојат три клучни вредност парови. Еден клуч се повика. И неговата вредност очигледно се случува да биде вистина. Осветлувањето е 128, што е некој вид на INT. А потоа транзицијата време е нула, што е очигледно колку долго тоа ќе ги преземат за да го претвори ова нешто на. Па сега ова сијалица е исклучено. Но, ако јас го прават токму this-- нека ми се оди на малку измамник лист дека Дан формирана во advance-- и јас одам да се оди напред и да ја копирате на следнава команда. Навивам, како што некои од вас би можеле да имаат собрани на CS50 Дискутираат е алатка како Телнет како што може да се симулираат HTTP барања, посебно става. Јас може да испрати овие податоци, конкретно она што ние само видов еден момент пред конкретно до овој URL овде. А потоа Curl се случува да се справи со сите потребните заглавија и парсирање има на. Така што сите што треба да направите е да ја копирате на оваа во терминален прозорец, а потоа притиснете Ентер. И сијалица продолжува. И тоа е сè минува низ мојот компјутер безжично некако се сведува на мостот, која потоа се зборува за ова сијалица. Јас може да се направи нешто друго. Јас може да направи оваа работа одат црвено, на пример. Можам да на пример да ова нешто одат зелени. Јас може да се направи тоа оди сина. И известување во секоја од овие случаи, сето она што јас сум се менува е т.н. нијансата вредност на всушност го даде некои боја. Значи, дозволете ми залепите ова во, како и. Сега е сино. И што можете да направите дури и познавач работи where-- ајде да одиме на зелена боја. И јас би можеле да го направите тоа на се разбира со мојот сопствен код. Но, дури и на API себе поддржува фанки операции како овој, кој сега ќе се мачи ни во наредните 30 секунди. Значи тоа е еден вкусот на она што може да стори со API-то, овојпат се работеше светилки. Имајте на ум дека CS50 има неколку парови на Google стакло Ако сакате како да се справи со нешто заедно тие линии, Arduino Unos, која се малечки компјутери, во суштина, за малку коло дека можете да се поврзете жици и други работи да и всушност контрола вашата реалниот свет животната средина. И тогаш постојат неколку на нови играчки кои ги имаме. Оваа буквално само што пристигнале на друг ден по пошта, на Myo лента за на рака. И мислев дека тоа е начин да се да ви возбудени за проекти кои може да се користи со овој хардвер би биде да се игра овој краток клип кои тие ги користат за да се закачам луѓе дека ние сме сега живеат во иднина. [Музички] Дејвид MALAN: Значи во само неколку недели, исто така може да биде дека се излади на саемот CS50. Друг уред што ние имаат еден куп, дека ние сме среќен да се изнајмуваат за проекти се нарекува движење контролер. Ова е малку USB уред ќе се поврзете на компјутер кој Ви овозможува да комуницирате со Вашиот лаптоп, Mac или PC, како да сте имале како на Xbox Kinect и всушност направи физички движења многу како што гледаме во оваа визија за иднината. [Музички] Дејвид MALAN: Значи дури и ако имате немаат идеја како нешто слично би можел да се измисли или работа на хардвер ниво, без разлика. Дури и по само неколку месеци од CS50, и разбирање на програмирање поопшто, и веб програмирање повеќе неодамна, а потоа, исто така, API-јата, и HTTP, ќе имаат пристап преку софтвер API-јата, ако сакаат да позајми еден од овие уреди за да всушност разговара со него и не мора да се грижите за основните имплементација детали, што е во целосна во согласност со овој поим на раслојување апстракција дека ние сме види во текот на семестарот. Значи, исто така, во текот на викендот, видов неколку парчиња на вестите. Оди прв, одете на семинари, ако би сакале да научат нешто повеќе за било кој број на теми. Види URL таму. А овој беше испратен до мене од страна на Чанг, кој што знаете, кој печатењето на нашата армија на слоновите. И тоа беше насловот како што следи. Јас сум преплашена на мојот нов ТВ. Зошто јас сум исплашена да го вклучите оваа нешто и ти би да биде премногу. Па ние сме сега на точка во семестар, исто така, каде што дури и ако имате најмала за разбирање за тоа како веб работи, и HTTP, и безбедноста, вакви работи треба да започне да се фати окото. Но, исто така, ќе се разбере дали овие работи се или не се тековни закани. Земав неколку извадоци од овој член тука. И приказната е како што следува. Јас сум сега на сопственикот на нов паметен телевизор, кој ветува дека ќе го испорача стриминг мултимедијални содржини, игри, стан, социјалните медиуми и интернет прелистување, ох и ТВ премногу. Единствениот проблем е тоа што јас сум сега плашат да го користат, вели авторот. Ќе биде, исто така, ако се чита преку 46 страница политика на приватност за вашиот телевизор. Износот на податоци ова нешто собира е запрепастувачки. Тоа се најавува каде, кога, како, и колку долго ќе го користите на ТВ. Се поставува СЛЕДЕЊЕ колачиња, како што ние си дискутира, и светилници дизајниран да се открие кога ќе имаат видени особено содржина или одреден e-mail порака ако сакате да се провери е-мејл на вашиот телевизор. За снимање на апликации ќе употреба, веб-сајтови кои ги посетувате, и како можете да комуницирате со содржината, прави сето тоа преку вашиот паметен телевизија. Таа, исто така, creepier yet-- тоа е мојот addition-- има вграден во камерата со препознавање на лицето. Целта е да се обезбедат гест контрола за телевизор и ви овозможи да се логирате за да персоналните сметка со помош на лицето. На главата, сликите се зачувани на ТВ, наместо на поставени на корпоративниот сервер. Во надолна линија, на интернет врска ја прави целата ТВ ранливи на хакери кои покажаа способност да преземе целосна контрола на машината. Повеќе вознемирувачки, како тоа да не беше доволно паметни, е микрофон. ТВ може да се пофали еден глас признавање функција кој им овозможува на гледачите да се контролира на екранот со гласовни команди. Но услугата доаѓа со прилично застрашувачки предупредување. Ве молиме да се свесни дека ако вашиот изговорените зборови вклучуваат лични или други чувствителни информации, тие информации ќе биде меѓу податоците заробени и пренесе на трети лица. Разбра? Не велат лични или чувствителни работи во предниот дел на вашиот телевизор. Значи ова е всушност вистина. И тоа е тешко да се види дали може одат на Најдобри купува или слично за телевизори овие денови. Сите тие се паметни на некој начин. И тие се добива попаметни и creepier. И тие се едноставно собирање на податоци на начини кои ние разговаравме за а потоа го испратите преку HTTP или некои други протокол на даден сервер. Значи ова беше од забавен член во оваа онлајн веб-страница тука, што зборуваше за особено бубачка или заблуда код дека ние всушност може да се врзуваат во дискусија минатата недела. Па овој наслов беше како на следниов начин, оди приказната тука, Џош Breckman работел за компанија која слета договор да се развие за управување со содржини систем, или CMS како што тие се нарекува, за прилично голем влада веб-сајт. Голем дел од проектот се вклучени развивање на систем за управување со содржини така што вработените ќе биде можност да се изгради и одржува постојано менување на содржина за нивниот веб-сајт. Работите отиде прилично добро за неколку дена по замине во живо. Но, за шест дена, работите не отиде толку добро. Сите на содржината на веб-страница се целосно исчезна. И сите страници доведе до стандардно, Ве молиме внесете содржината на веб страница. Whoops. Џош беше повикан да испита и забележав дека еден особено проблематично надворешна IP адреса имаше отиде во и избришани сите содржината на системот. IP адреса не припаѓаат со некои во странство хакер свиткани за уништување на корисни владини информации. Таа реши да googlebot.com, Многу сопствени веб индексирање пајакот на Google. Whoops. По малку на истражување и scrambling околу да се најде noncorrupt резерви, Џош најде на проблемот. Корисникот го копираат и пејст некоја содржина од еден до друга страница, вклучувајќи ги и уредување на хиперврските за уредување на содржината на страната. Нормално ова не би било прашање од надвор корисникот ќе ќе треба да внесете име и лозинка, но на CMS проверка на системот, на најавите на системот, не се земат предвид софистицирани хакирање техники на Google пајакот. Whoops. Како што се испоставува, на Google Пајакот не користи колачиња, што значи дека може да лесно да се заобиколат на проверка за е најавен за колаче во собата да биде лажна. Исто така, не се обрне внимание на JavaScript, кои нормално би брза и пренасочување на корисниците кои не се најавени. Тоа го прави сепак го следат секој Линкот на секоја страница се наоѓа, вклучувајќи ги и оние со Избришете страница во насловот. Whoops. Па што значи ова во повеќе технички, но прилично достапни термини? Тоа само значи дека во текот на нивниот веб-сајт, тие имаа адреси не за разлика од ова што можете да видите во проблемот постави седум. Потсетиме во проблемот постави седум или знаат во проблемот постави седум дека сте соочат со предизвикот, меѓу другото, да го продаде акциите во име на корисниците. Но спроведување на таа функција по пат на се преку линк на вашиот кориснички интерфејс, веројатно не најпаметните идеја затоа што ако вашиот сајт е некако достапни или од страна на човекот кој кликнување околу или купи бот како Google или пајакова како што тие се нарекува, тоа е само индексирање на интернет се обидува да индекс веб, како пребарувач, тие би можеле многу лесно хит преку добие овој вид на URL-то. И тоа е функционално еквивалентно на, во овој случај, продажба на сите акции на Google. Сега искрено, тоа е сосема упорит дека СМС користени JavaScript и колачиња да ја спроведе својата логин систем и не го прават тоа на страна на серверот, како вие момци се направи и ќе во PSet 7-- има login.php file-- секогаш, секогаш, секогаш безбедност треба да биде направи на страната на серверот, не на клиентската страна, бидејќи, како што тоа статијата сугерира и може да се види во одреден момент, тоа е тривијални за корисникот, добри или лоши, само исклучи го вклучите Javascript- да не зборуваме за колачиња. Па тоа е вашата дневна ММЕ Кој прв. Има уште една, која е само вид на страшно, па јас ќе го спомене, ако само како живот лекција. Секогаш кога ќе користиме апликација наречен како Snapchat или слично кој вели дека овие фотографии само трае пет секунди, десет секунди, или какво ли не. Тие се ефемерни Тоа е апсолутно не е случај. Како не постои начин, дигитално, да се спроведе некоја форма на видео, или слика, или текстуалната споделувањето на тие дека примачот на другиот крај не може некако да ги зачувате податоците. Во повеќето наивна начин, некој може да ги преземе своите телефон. И тие имаат 10 секунди прозорец додека гледа во некои предвремените само да се земе некој друг телефон и тоа се фотографираат, очигледно. Па може да се зачува нешто дигитално тој начин. Некои од вас знаат како да ги искористат screenshot-и на вашиот телефон. Всушност, ако не знаете ова, сфатат дека најмалку Snapchat, и мислам дека другите апликации, овие денови, барем ако се каже примачот, всушност, донесена на екранот на вашиот имиџ. Но, уште полошо но сепак, ова беше snappening, како што некој го измислил неодамна, каде што некои 100,000 прилепува беа ослободени во она што се нарекува порој датотека на различни веб сајтови на крајот. И овие се содржани целиот куп на приватни пораки и мислења. Излегува повеќето од нив бенигни, па не е она што би очекувале. Но, бидејќи луѓето имале користи трета страна веб-сајт, најавување со нивните Snapchat корисничко име и лозинка и потоа заштеда на сите на нивните Snaps на оваа трета страна веб-сајт. И тоа беше тоа трето лице веб-сајт кој беше пробиени, кои само значеше некој сфатиле како да ги добиете сите 100.000 плус на овие слики во свои хард диск за следните споделување. Искрено, и тука, тоа е вид на упорит дека Snapchat се спроведува во таков начин што трета страна да ги сортирате на пресекот податоци и дека тоа не е поврзано со вашиот сопствена апликација се извршува на телефон. Но, тука, исто така, сфати дека овие работите не треба да се фати со изненадување, или барем треба да биде живот лекција тука. Ако сакате техничката детали, оди на тоа URL таму тоа е во денешниот слајдови. Сите права, било какви прашања на живот денес лекции во CS? Се претвори дека надвор. Нешто воопшто? Нешто воопшто? Јас имам многу луѓе проверка нивните Snapchat или нешто сега. Сите права, па SQL, Структурно јазик за пребарување. Ајде да заврши ова. И, исто така, иако ние сме само гребење површината на оваа јазик, ние ќе ви даде доволно на јазик во форма на PSet 7 така што ќе може да се справи со некои прилично заедничка функционалност. Но сфати постојат неколку работи што не бараат од вас, но тие се случува да биде важно доаѓаат конечниот проекти и, секако, доаѓаат прави вистински веб-страниците со вистинските корисници е овој дизајн одлука. Излегува дека во MySQL база на податоци, можете имаат гроздовете на избор како типови на податоци за вашиот колони и други работи, но вие исто така имаат изборот на т.н. складирање мотор за сите на вашите податоци, вид на датотечниот систем, ако сте запознаени, за сите на вашите податоци. Каков формат е тоа на крајот се чуваат во? И најчестиот, можеби, е MyISAM и InnoDB, технички термини дека ние ќе се грижат за само до степен до кој се има и не мора следниве функција. Да претпоставиме дека имате малку дом фрижидер. И да претпоставиме дека вие и вашиот цимер, кои го делат тоа фрижидер, се навистина убави за да речеме млеко. И ова е, всушност, како Приказната беше кажано да ми пат назад во текот на денот, кога отидов на курсот наречен CS 161 оперативни системи, кои слично истражува оваа тема. Значи имаш овој фрижидер. Сте надвор на млеко. И ќе се врати дома, вашиот цимер е уште е во класа или што, и да одлучите, ќе одам да излезе и да добијат некои млеко. Па ќе го затворите фрижидер, притвор на dorm соба, одат низ улица да CVS или каде и да се добие во ред за да купат млеко. Во меѓувреме, вашиот цимер добива дома од класа, се впушта во dorm соба, отвора фрижидерот, исто така, сфаќа ooph, ние сме надвор од млеко. Па тој или таа ја затвора фрижидер, а потоа се случува да одат на други CVS, кој се случува да биде еден блок далеку од другите CVS на плоштадот, и добива во согласност таму да се добијат некои млеко. Сега, се разбира, неколку минути подоцна, и двајцата се вратам, и најлошото од сите можни резултати се случило. Двата имате млеко. И навистина не е како млеко тоа многу. Па еден од нив е само ќе се влошат во некоја точка. Така, сега имате прекумерна количина млеко во фрижидер бидејќи сите зошто? [Нечујни] Дејвид MALAN: Да, не сте некако комуницираат едни со други дека сте биле добивање на млеко. Значи во наједноставните начини на човечкиот свет, како може да се избегне ова глупо сценарио се случи како што само се заокружи со една. Текст да, да добро. Но, како друго? Пост-тоа белешки. Дејвид MALAN: пост-тоа белешка. Било каква форма на комуникација кој му кажува вашиот цимер не одат во фрижидер за млеко. Одам да се оди restock на моето. Така некако треба да го заклучите овој ресурс. Па ние може да направи this-- можеме вид на уништи приказната и се претвори во CS приказна при што мислам на тоа како само како променлива, што е складирање на некои вредност. И во моментов, вредност на млеко е нула, кои вие не сакате вашите цимер да ја испита таа променлива а потоа да донесе одлука себеси врз основа на состојбата на таа променлива ако сте во процесот на промена на состојба на таа променлива. Па една од линиите на SQL дека ние ви даде во PSet 7 спецификација е ова тука. И ние не поминуваат огромни износот на време зборува за тоа. Но, што се испоставува, ако се обидуваат да купам акции во CS50 финансии дека веќе го имате некои акции на, можете сакаат да бидат во можност да се направи голем број работи веднаш заедно. Вие сакате да бидете во можност да ефикасно, на високо ниво, провери сите во право, ако сакам да купат повеќе акции за бесплатен, денар акции се зборува за во спецификации, Сакам прво да се провери колку акции имам. И претпоставувам дека тоа е пет. И претпоставиме дека сакам да купи 10 повеќе, јас на крајот сакате да имате 15 акции на акции. Па морам да прашам две прашања. Што е состојбата на променлива? Што е состојбата на ред? Колку акции се во моментов имам? Тогаш ќе сакате да се оди напред и надградба на тоа. Значи тоа е аналогно на млеко во кој ќе проверите ред, а потоа сакате да го ажурирате затоа што ако сакате да се купи 10 акции, вие не сакате да се промени редот на 10, што сакате да ја промените до 5 плус 10 или, се разбира, 15. Оваа линија на кодот гарантира дека овие две концептуални идеи се случи заедно или не на сите. Никој, вклучувајќи некој друг корисник кој е најавен во истиот веб-сајт, некако може да се прекине проверка на ред и ажурирање на ред, одберете и ажурирање ако сакате. И синтаксата не е супер очигледно, но оваа линија, долго е тоа е, обезбедува дека овие две операции провери променлива или проверка на ред и ажурирање на ред да се случи atomically. Ох тука ќе одиме повторно. Текстуална порака на мојот телефон. Значи, да се направи овој малку поконкретни. Да претпоставиме дека не сте спроведување на фрижидер, и вие не сте спроведување PSet 7 но вистински банка, или банкомат, автоматски Телер Машина, со која на некој начин сакаат да бидат во можност да ги поттикне корисници за трансфер на пари од една сметка на друга. Добро, се откажам од. Одам да го исклучите ова сега, ви благодарам. Значи, сакаме да се движат пари од еден број на сметка во различен профил број, посебно 100 долари. Значи ова е вид на произволен пример, при вас, банкомат, можеби ќе сакате да се изврши две SQL прашања, одземе од една сметка, и да додадете на друга сметка. Но сакате да се осигура дека овие две линии и се случи или не на сите. Вие не сакате нешто добивање прекината. Вие не направите некои паметни лошо момче некако стои на Банката на Америка со два банкомати пред од него и некако вид на впишување на командува во исто време, се надевам дека се обидува да го одбие $ 200, наместо од $ 100 и со само $ 100 кредитираат. На кратко, вие сакате тоа да се однесуваме точно како што очекувате. И начинот на кој ќе го направите ова во SQL база на податоци е го заврши во она што е наречен трансакција. Буквално во SQL, можете да се јавите CS50 е пребарување функција со цитат unquote почеток трансакција. Тогаш може да се изврши било кој број на следните SQL queries, но ниту еден од нив се ефект на базата на податоци додека ти се јавам пребарување цитат unquote изврши, ако повторно користење на PHP. И на овој начин, можете да се осигура дека дури и ако имате 1000 корисници сите притискање на вашата база на податоци во исто време, SQL ќе ветуваат дека овие две прашања ќе бидат спроведува еден веднаш по друга. Така да не заврши со вишокот на млеко или погрешен износ, во крајна линија, на пари. Па имајте го ова на ум, не толку многу за PSet 7 но за конечниот проекти ако сте всушност обидувајќи се да се движат податоците околу низ маси како што може тука. Но, можеби уште поедноставно и повеќе Очигледно да се разбере со пример е ова тука. И некој ни е-маил за ова само пред некој ден кога видел нешто слично на интернет. Па според моите сознанија, иглата систем не е подложен на овој напад. И јас немам идеја, ако тоа дури и употреба SQL база на податоци под хауба. Но, ајде да ја користите за доброто на дискусијата. Тука е екранот кој Харвард луѓе имаат тенденција за да ја видите кога ќе се најавите во со нивните Харвард матичен број и нивната игла. И да претпоставиме дека игла систем беа спроведува во PHP и со MySQL, база на податоци, кодот го дека некој пред можеби имаат напишано години може да изгледа вака. Прво, прогласи променлива наречена корисничко име. И само се дека од на пост superglobal. Потоа да се друга променлива наречен лозинка и го стори истото. А потоа само се изврши ова долго пребарување овде, изберете ѕвезда од корисници каде корисничко име е еднаква на такви и такви и лозинка еднаква на такви и такви. Забележите дека кадрава загради Јас сум користел тука само значи во PHP, одете напред и замена вредноста на овие две променливи право таму. Тие не се строго неопходни, но тие имаат тенденција да се избегне суптилна синтаксички грешки. Така што ова изгледа сосема точно на прв поглед. И тоа е. Вие би можеле да се спроведе игла систем на овој начин. Но, претпоставувам дека супер паметни и малициозни студент влез ова како неговиот или нејзиниот игла. Па јас отстрани куршумот знаци тука во потсмеваат, и јас сум всушност откри она што тој или таа може да биде пишување. И тоа е малку чудно. Но, она што скока на тебе на потенцијално загрижувачки за внес на корисникот, дури и ако немате идеја што SQL инјекција напад значи. Зошто таа се погледне малку риби? Што е тоа? [Нечујни] Дејвид MALAN: На или е малку сомнително. Всушност, тоа е клучниот збор од SQL. Така што не создава добри предуслови. На фактот дека има сите овие единечен наводник there-- всушност, еден од најлесните начини да се пробие некои бази на податоци е со впишување на името како О'Рајли кој има апостроф во него затоа што ако човекот кој ја напишал кодот зад сцената не се земе во предвид дека може да биде единечен наводник во на корисникот влез, и тој или таа го користат единечен наводник во нивниот код, лоши работи може да се случи. Всушност, уште полошо но сепак, сметаат дека ова. Ако ова беше повторно го кодот дека некој на Харвард години Пред напиша за пин систем, се забележи она што е за да се замени за корисничко име и лозинка ако корисникот видови во повторно skroob како и нивните име а потоа еден, два, три, четири, пет, понуда или понуда unquote еден еднаквите цитирам еден. И ќе забележите што е клучот тука е корисникот не започнаа својата лозинка или нивните игла со цитат. И тие не се заврши со цитат бидејќи тој или таа е да се претпостави дека ако програмер не беше толку остар, тие се случува да имаат оние единечен наводник во нивниот код. Па еве кодот. И замена дека сега може да се случи е тоа. И јас сум нагласи она што корисникот внесе во. Значи пред, после. И ќе забележите што е благо загрижувачки сега за десната половина на оваа SQL код? Тоа е малку покомплексен, очигледно, од прашања сме виделе. Но, ова не е можно да да биде добра работа, ако сте велејќи изберете ѕвезда, што е изберете сè, од масата на корисникот каде корисничко име е еднаква на skroob и лозинка е еднакво на еден, два, три, четири, пет или еден е еднаков на една. Што е логична импликација на таа последната клаузула веројатно? Тоа е само секогаш точно. И бидејќи ние сме вид на претпоставам или сфатиле преку обиди и грешки дека на програмерот кој напиша овој код не предвиди човек или лоша личност пишување во еден наводници, како и, можеме да синтаксички завршување на SQL пребарување со нешто бесмислен туку нешто што е синтаксички неточни дека секогаш оценува е точно. Значи, ако овој код се користи за да се одговори на прашањето точно или неточно треба овој корисник им биде дозволено да помине, Одговорот е секогаш очигледно оди за да биде вистина, бидејќи тоа е секогаш ќе за да изберете нешто од базата на податоци затоа што еден разбира, секогаш е еднаков на една. Значи она што е решението? Па во PSet 7, ние, всушност, избегне ова, сите заедно. Ние ви даде пребарување функција, а ние охрабруваме да ги користите прашалници како местата за чување, слично во духот на printf е% s, но она што е клучот за прашалници тука е, ако навистина се чита преку functions.php, каде што нашите пребарување функција се спроведува, оние прашалници се избегале, при што ништо потенцијално опасни како еден цитат е вклучен во избегна една понуда. Значи ова е она што е навистина се случува ако користат CS50 е пребарување функција или било кој број на трети лица без библиотеки кои го стори истото. Не е важно во овој случај, во зелена, ако корисникот ја внеле во една понуда затоа што го бараш функција која ние напиша е случува да додадете backslashes пред сите такви опасни понуда. Значи ова не е, Всушност, ќе биде legit. Ова е како пишување во луд потрага лозинка, тоа е, се разбира, не се случува да се биде вистински лозинка skroob е. Па готова брза за CS50 е еден, апсолутно секогаш се користи нешто како пребарување функција CS50 е или основната библиотека, која се случува да се нарече ЗНП. Но, никогаш, никогаш, никогаш го кодот како овој без да избега или чистењето како што велат вашите влезови. И ќе во некоја точка, најверојатно, се среќаваме со некои веб-сајт како овој. Всушност, се чини дека да се биде случај како на аеродромите и хотелите во места каде што тие имаат бесплатен Wi-Fi пристап, кој што треба да се најавите за да, овие веб-сајтови се секогаш ужасно имплементирани. И така еден вид на забава дома вежбање, не за злонамерни цели или повеќе на забава на патот вежба, е само да напишеш апостроф, една понуда, во форма на некои веб-страница и да видиме што се случува. И ако серверот се урна или дава ти некој вид на порака за грешка, тоа многу добро може да биде дека некој не очекуваше ова. А потоа ќе треба да ги алармира правилно власти и да се продолжи понатаму. Па сега вие момци треба да се надевам се разбере малку повеќе geek хумор тука. [Смеа] Дејвид MALAN: Вие знаете дека сте на geek. За следните неколку години, ќе се сеќавам кои малку Боби Табели е затоа што на овој цртан филм тука. Па задржи дека во умот, како што контекст прекинувач за последен пат денес да го вклучите Javascript-. Ние си трошат релативно малку време на синтаксата на PHP поради тоа што е, всушност, супер слични на В. И убаво е доволно, го вклучите Javascript-премногу е супер слична синтакса на C како и како што ќе видиме во само еден момент и како што ќе види подоцна оваа недела, а особено. Што можете да направите со овој јазик, сепак, е сè повеќе и повеќе моќни, особено со API-јата. Но, прво брз турнеја. Значи еден, во JavaScript, има без главна функција, што е убаво. Како со PHP, можете само да се напише кодот. Услови да изгледа вака. И Булова изрази би можеле изгледа вака или вака. Прекинувачи постојат, и тие може да изгледа вака. Четири рунди изгледа вака. Додека петелки да изгледа вака. Дали whiles да изгледа вака. А потоа низи изгледа ова, многу сличен на PHP. Но, забележи, дека во вклучите Javascript-ти прогласи променлива не со еден долар потпише, а не со типот податоци, но буквално велејќи var за варијабилен пред него. Тоа не е премногу е лабаво отчукува со тоа што има видови, но не експлицитно ги прогласи. А потоа стринг, за На пример, може да изгледа вака, дека низа се нарекува во овој случај. А потоа објектот. И овие ќе видите повеќе пред долго. И објектот е можеби една од најчесто се гледа структури на податоци во вклучите Javascript-базирани програма, бидејќи тоа им овозможува на можете да се дружат произволни клучните вредност парови само како PHP е асоцијативни низи и исто како свој хаш табелата или обидете се како што спроведува неколку недели назад. Па ајде да видиме што всушност можеме да направиме со вклучите Javascript-. А особено, ова е перење листа на карактеристики дека прелистувачи имаат тоа ни овозможи да се кука вклучите Javascript- во веб-сајт на следниов начин. JavaScript е често се користи како клиентската страна скриптен јазик. Тоа не е составена. Тоа не е премногу се толкува. Но, за разлика PHP, кој се одржува на серверот, во веб сервер, или длабоко во внатрешноста на клиенти, го вклучите Javascript- е различен со тоа, што обично работи во прелистувачот. Па секоја JavaScript код ќе почнете да пишување за PSet 8, или на твојот последен проект, или во реалниот свет е генерално се случува да се зачувуваат на серверот, апсолутно во точка HTML или точка ЈС за JavaScript датотека. Но на пребарувачот се случува да ја преземете дека го вклучите Javascript- кодот на вашата инстанца на Хром, или IE или Firefox, или whatever. И кодот е, всушност, се случува да се добие извршени во внатрешноста на вашиот сопствен прелистувач. Само да се направи овој пореално, ајде да видиме ова во конкретна форма. Немаме поим што овој код го прави без навистина читање преку неа. Но, дозволете ми да оди на Facebook.com без влезете во. Дозволете ми да одат во Увид елемент и да одат, да речеме, мрежа и вчитување на страната. И ние ќе see-- дозволете ми да се префрлат Освежи ја на Страница за да ги добиете сите барања за нови. И првиот датотека гледам е CSS, CSS. Тука е првиот Го вклучите Javascript-датотека, и имам не знам што е ова го прави тоа, но тука некои на JavaScript код кој вози на Фејсбук. Тоа не е дури и навистина дека откривајќи зумирате. Тоа е сепак само како бесмислен. Но ќе се види дури и долу, има дури и повеќе од овие вклучите Javascript-датотеки. Whoops. Тоа е пинг. Ајде да одиме долу малку понатаму, понатаму, понатаму. Има една. Има една. Има една. Значи иако Фејсбук, зад сцени, пишува во дел во PHP и сопствена верзија на Фејсбук од него, има огромно количество на JavaScript. Всушност, било која од разговор што го правите на Фејсбук, било кој од РЕГИСТРАЦИЈА временска рамка надградби што се случуваат во реално време, сето тоа е управувано од страна JavaScript. Да? ПУБЛИКАТА: Не сум сигурен ако ова е Фејсбук, но мислев дека Фејсбук развиени свој во куќата кодот јазик? Дејвид MALAN: Тие направија. Па затоа велам варијансата PHP се нарекува Хип Хоп дека тие, всушност, додадени карактеристики да така што кога Означи прв спроведува Фејсбук, е напишана во PHP. И тој вид на останала вид на предниот крај јазик кои тие ги користат за многу на нивните кодирање, но тоа не е јазик кој е Вага особено добро милијарди на луѓето. И така тие се додаде свои подобрувања зад сцената. И тие ги користат било кој број на други јазици за различни парчиња нивната инфраструктура. Така да, тоа е варијансата она што ние сега знаеме што се PHP. Па ајде да ги разгледаме на неколку примери за тоа како ние би можеле да се користи JavaScript тука. Во денешниот изворниот код, имаме куп на датотеки, од кои првиот, ајде да се нарекува ДОМ нула. Па ДОМ нула изгледа како што следува. Дозволете ми да одат во овој директориум и ќе отвори domzero.html, на врвот на кој има тип doc изјава, велејќи дека тука доаѓа HTML 5. И сега тука е HTML таг. Еве главата таг. И тука е она што е ново и денес. Сега имаме скрипта таг во внатрешноста на главата на страната. И ова очигледно не многу малку, но најава дека јас сум дефинирано сценариото, го вклучите Javascript-. И како настрана, бидејќи ова е честа заблуда, Го вклучите Javascript-има апсолутно ништо да се направи со Java, јазикот дека некои од вас може го научиле во оклопни транспортери. Тоа беше повеќе од маркетинг нешто од ништо, јава на coattails на Јава години. Но го вклучите Javascript-, ништо да се направи со Јава, само слично на тоа, и annoyingly, збунувачки име. Па овде е како ќе се изјасни функција во JavaScript, буквално велат функција, тогаш името на функцијата, тогаш никакви аргументи тоа може да потрае, исто како во PHP. Излегува во JavaScript, еден од најпознатите досадни функции кои постојат е сигнализација. Ова е малку прозорецот што ќе pop-up и да ве предупредат за некои парче на информации. Тоа е генерално се намуртен врз. Но, ние ќе го користат како нашата Првата вежба тука. Забележите неколку карактеристики на JavaScript. Единечен наводник и двојни наводници всушност не е важно повеќе. Единечен наводник и двојно цитати може да се interchanged, додека во Ц, мора да се користат двојни наводници за жици, и имаш две еднокреветни понуди за карактери. Во вклучите Javascript-светот, многу луѓе, повеќето луѓе го користите еден наводници околу жиците само затоа што е стилски работа. Но, она што е плус оператор овде, што не сме виделе пред тоа? ПУБЛИКАТА: Конкатенација. Дејвид MALAN: Конкатенација. Значи Ц дури и не мора ова. PHP има операторот точка, што го прави ова. Го вклучите Javascript-има плус оператор, кој збунувачки е исто како Јава. Сега што се случува овде? Па еве каде основен разбирање на таа слика ние фрли до неколку пред дена стапува на сцена. Се сеќавам кога имавме едноставен верзија на HTML page-- тоа само рече: Здраво светот. А потоа ние привлече дрво на правото, која имаше еден куп на правоаголници и линии поврзувајќи ги како семејно стебло. Значи тоа е т.н. ДОМ или документ Object Model. И излегува дека можете да пристапите правоаголници во тоа дрво со синтаксата како следново. Вие буквално велат документ, кој е специјални глобалната променлива во вклучите Javascript- програма која има функција поврзани со неа дека можете да пристапите сличен на struct, но вие едноставно велат точка, а потоа името на функцијата, добие елемент по проект. Елементот сакам да се добие е очигледно цитирам unquote име. А потоа сакам да ја добие својата вредност. Сега ние сме добивање понапред од нас. Не сум сигурен дека дури и она што сето ова е за. Ајде брзо напред на HTML на на страница, која е супер едноставен. Известување дека сум дефинирани форма овде. Забележите Сум го даде уникатна Проект, иако не сум користел овој атрибут порано. Но, тоа постои во HTML. Вие уникатно може да се идентификуваат некои парче на HTML со идентификатор вака. Известување сега this-- излезе HTML поддржува, по што перење листа пред еден миг, во целина куп на настанот ракувачи. И овој настан управувачот вели на достават. На корисникот поднесување на оваа форма, јавете се на следниов код. И кодот кој се случува да се нарече или погубен е токму ова, грчкиот функција проследено со враќање лажни. Сè друго треба биде прилично познато. Тука е влез на тип на текст, чија Проект, во овој случај, ќе биде името. Ние немаме вистински името на атрибутот ова time-- и достават копче. Па како резултат на страница изгледа вака. И како резултат на однесување, ќе видите, изгледа вака. Страницата што локалните домаќин вели, здраво Давид, тешко дека ќе биде естетски префинета начин да го поздрават на корисникот. Но, она што всушност се случува? Па, сметаат дека она што е оваа. Ова е полето за текст. И во согласност со HTML тука, јас сум го дал единствен идентификатор наречен цитат unquote име. Во меѓувреме, јас сум рече дека кога корисникот поднесува оваа форма со притискање Enter или кликнете на Прати копчето, јавете се на функција наречена Поздравете а потоа се врати лажни. Ајде да се разгледа оние во обратна насока. Забележите кога ќе кликнете на Прати, на URL-то на оваа страница не се менува. Иконата на прелистувачот не почне да се врти. Јас не одам никаде, и тоа е буквално затоа реков return false. Return false краток спој или запира стандардно однесување на форма. Така што потоа ни остава со оваа конечното прашање. Што значи Поздравете направам? Па, очигледно Поздравете повикува функција наречена Алармирање, поминува во една долго аргумент дека е резултат на concatenating заедно куп на поднизи, здраво простор запирка, тогаш што и овој се враќа. Значи документ е како глобален променливата на која корен на тоа стебло, повикувајќи посебна функција, поинаку сега познат како метод. Функција која е во внатрешноста на променлива е наречен метод наместо на функција. Па се елемент по проект. Што елемент мислите сакате да се добие од страна на неговиот проект? Цитат unquote име и тогаш посебно го ценат. Значи со други зборови, дека кодот едноставно наоѓа полето за текст чиј проект е името а потоа добива својата вредност. Значи, ако јас се да го промените ова и велат Davin наместо Давид, и кликнете на Прати, сега ние имаат поздрав за Davin. Добро, така што сите фини и добри. Но, ајде да видиме дали можеме да направиме ова малку почиста, бидејќи само пишување код како оваа е генерално ќе биде намуртен врз. Ова се случува да се погледне пострашен. Но, она што е прв разлика што ќе се напомене тука во оваа верзија, покрај името се менува за да ДОМ еден? Што структурно изгледа различно за овој наспроти други? Да? ПУБЛИКАТА: Дали форма на врвот на сценариото сега? Дејвид MALAN: Да, формата е на врвот на сценариото за некои љубопитни причина. Значи тоа е првото нешто што јурнува нанадвор во мене, исто така. И за среќа во најмала рака, овој дел е идентична. Значи единственото нешто што се чини дека да се биде различен е ова. Значи тука е она што е уредни за да го вклучите Javascript 2. И тоа го прави тешко да се се разбере на прв поглед, особено за конечниот проекти, доколку сте во потрага на примерок кодот интернет, но тоа се сведува на некои основните синтаксички функции. Тука повторно е во тоа што глобалната променлива документ. Тука повторно е тој метод или функција кој вели дека го добиете елемент по проект. Овој пат сакам да добиете проект наречен демонстрација. Каде е тоа? Тоа е очигледно во право тука, формата себе. И сега се забележи дека очигледно ако јас се врати тој јазол од дрвото кои го претставува форма сама по себе, не е поле за текст, излегува дека форма, јазол или правоаголник од дрво, има она што ќе го наречеме имот, многу, многу, многу слични во духот на struct во C. Тоа е само член податоци во внатрешноста на оваа правоаголник. Па имам форма тука, и јас сум со приложување, или јас сум давање, на неговите На Поднесе управувачот или поточно На Прати имот следниве функција. И ова е, од далеку, најлудите нешто досега синтаксички. Излезе во вклучите Javascript-и во PHP, и искрено, за тоа прашање во C, иако ние не го прават тоа, можете да додадете безимени, анонимни, или АКА ламбда функции кои немаат име но може да се нарече сеедно. Значи она што го правам тука е јас сум давање овој На Прати сопственост, која е внатре на овој јазол од моите ДОМ дрво, функција, функција покажувачот ако сакате. Таа функција нема името, но тоа не го прави тоа важно, бидејќи ние ќе се види во еден момент како да го нарекуваат. Кога оваа функција се нарекува, овој код добива погубен, а потоа лажно се враќа исто како порано. Но, забележи она што го направив. Во овој момент во приказна, имам форма. Тоа доби единствен број наречен демонстрација. Овде, имам скрипта таг што ги врши следниве код. Ја придава на тој јазол во дрвото на тоа е На Поднесе имотот оваа функција овде. И само со природата на тоа како пребарувачите работа, кога јас сега кликнете Submit или притиснете Enter, таа функција се случува да се нарече. Тоа не треба име, бидејќи кој грижам се грижи што се вика. Единствениот пат тоа е некогаш ќе се добие наречена е кога ќе ги достави форма. Нема потреба за мене, човечкиот инвеститорот, за да всушност го нарекуваат никаде на друго место. Сега само како вовед, како што не биле умот свиткување доволно, ние дури и може да направи овој изгледа повеќе криптичната користење супер популарни библиотека наречена jQuery. Всушност jQuery и го вклучите Javascript- се често поврзани. И она што ние ќе направиме во средата е почеток со користење на овој јазик и овие библиотеки да се изгради повеќе асинхрони и динамичен апликации како мапа добивање апликации, апликации кој се ажурира на веб страница во реално време, слично како Фејсбук или Gchat се направи, и повеќе не се задржиме во рамки Удирањето Поднесе од GET или само пост сам. Па јас ќе се видиме во средата. [Музички]