JASON Hirschhorn: Добре дошли, всички, за 10-та седмица. Това е една вълнуваща седмица, защото утре е Quiz 1, което ние ще се в секунда. Днес в раздел, ние ще отидем над някои ресурси за теста, и тогава аз ще отговоря на всеки и всички въпроси, вие имате. И ние най-накрая ще завърши с някои проблеми практика. Ние можем да прекараме целия участък отговаряне на въпроси. Ние можем да прекараме целия участък преминавате проблеми практика. Ние просто ще се разшири, за да запълни пространството и времето, което имаме. Така че сложих този списък на всяка седмица, но това е особено важно тази седмица. За изучаване, ако не сте започва вече, о, момче. Но се надяваме, че сте започнали вече. И вие ще чрез материалите и ресурси, изброени тук. Бих силно препоръчвам Някои от тях. По-специално, записки от лекции са изключително важно и полезно. The study.cs50.net осигурява голям грунд за много темите, обхванати. Тя също има някои големи практика проблеми. И след това, Google е страхотно, също. Аз не знам какво ще го използвате за. Но използвам Google, както добре. Протегнете ръка към мен, ако имате някакви въпроси, коментари или притеснения. Погледни през сесия за преглед слайдове от снощи. Или, ако имате малко време, гледате видеото. Те осигуряват много полезно материали и информация. И се опита да покрие, ако не всички, много от темите, които сме обхванати и че сте може да видите на теста. Говорейки за теста, че ще бъде утре. То е дълго 75 минути игра. Много от вас са го приемате по една часа, а някои от вас са да го приемате в 5:30. За времето, което да го приемате и място, което да го приемате, се уверете, че да проверите на документа на началната страница CS50.net. Не забравяйте, че можете да получите един 8 1/2 от 11 лист, за да вземете със себе си. Много пъти, хората не използват този лист на всички по време на теста. Но наистина, това е невероятно полезно проучване инструмент. Така че пускането заедно този лист е това, което Прекарах вероятно три или четири часа прави, когато аз учех за CS50, и че е лесно най-полезни начин да учат за теста. Така че, дори и ако имате някои други хора проучване ръководства да разгледаме и използвате като препратки, аз силно препоръчвам създавате свои собствени проучване ръководство, поставяйки тези неща заедно. Това наистина помага да се научат всички на материала. Последно, но не на последно място в този раздел, След утрешния викторината има едно повече лекция - следващия понеделник. Има и още един раздел, а не следващата Вторник преди Деня на благодарността, но Вторник, след това. Ние ще се срещне заедно за окончателното сбогом страна и също така прави някои готини неща, за да ви накара момчета развълнувани нататъшни изследвания в областта на компютърните науки. Има и още един проект, по един справедлива, по един Hackathon. Ние сме почти на края на CS50, което е вълнуващо - но също така, ако сте като ме, малко тъжно. Преди да се премине, не всеки има всякакви въпроси за това какво ние сме обхванати досега? ОК, нека да отидем на някои въпроси че имате за теста и теми ние може да покрие. Така че това е списък, че аз, взети заедно. Тя в никакъв случай не е изчерпателен, но надяваме се, ще бутам паметта си, ако има някои въпроси за някое от тези теми, или ако имате въпроси относно практически проблеми от викторини през последните години. Имах няколко въпроса, които са били изпращана към мен, но аз искам да се държат на разстояние на тези за секунда. Дали някой има някакви въпроси, проблеми, които не разбират, отговори, че не разбират за да ни започна? Ави. ПУБЛИКАТА: Може ли да отидем DOM и Ajax наистина бързо? Подобно на това, което трябва да се знае или би трябвало разбере за тях? JASON Hirschhorn: Отивам да се отговори обикновено този въпрос, това, което правя трябва да знаете за дадена тема х? Защото имам чувството, че много от вас Ще ме попитате това, или са любопитни за това. Така че, до степен, че темата е била покрит с лекция, или раздел, или на study.cs50.net, проблем зададена, трябва да е запознат с него. Така че не е нужно да се знае всеки тип на маркер, който е на разположение в HTML или всеки тип атрибут или имущество можете да дадете нещо в CSS. Но ако го видя в един пример лекция, ако го видя в проблем набор, вероятно ще трябва да бъдат запознати с него, особено неща, които видях в лекция. Така че ние обсъдихме документа Object Model малко в раздел, още повече, че в лекция. Вие трябва да сте запознати с тази част от него. И трябва да сте запознати с Аякс в същата степен. Никога не сме виждали изключително напреднал или сложни примери на Ajax, така че Вие няма да бъдете помолени направя нещо невероятно сложно. Но може да бъдете помолени, как да направя извършване на спешно повикване, използвайки Jquery Ajax? Което е нещо, което съм виждал номер пъти преди, както в преглед на сесията и в лекция, и това е само два-ина реда код. Така че това е нещо, което трябва да е запознат с. Но отново, за всички тези теми, ако сте го виждали и преди, това е честна игра. И ние може да ви попитам - Очевидно е, че ние сме Ще попитате ли си, че нещата не сте виждали преди. Кодиране на нещо, което не трябва виждали преди. Което не означава, че не сте виждал инструментите за решаване този проблем преди. Вие сте виждали тези инструменти. За пример, на Quiz 1, ако , което трябва да се кодира strlen. Ние не са кодирани strlen преди. Но знаете ли как да се използва за линия, Знаете ли как да се използва, ако условия. Знаеш ли как да пиша променливи в C. Това ще бъде едно и също нещо тук. Вие няма да бъдете помолени да направите нещо, което не сте виждали преди, но може да бъдете помолени да, като, сложи нещо заедно по нов начин, или решаване на различен тип проблем. Съжаляваме, че не е специфичен за вашия въпрос, но аз не мога да отговоря за всяка една тема какво правят или не трябва да знаеш. Но също така, съжалявам, последно нещо по този въпрос. Ние са прекарали значително повече време за връзка списъци, отколкото имаме на Аякс. Вие не сте използвали Ajax в проблем набор. Една от основните функции на тази проблем, който беше определен линк списъци. И ние прекарахме много време в лекция и раздел да го използвате. Така, шансовете са списък връзка ще излезе по- често на теста от Ajax воля. Или въпросите, които имат общо с връзка списък ще бъде на стойност повече точки. Така че със сигурност може да се фокусира и тесен в за неща, които са по- вероятно да излезе, защото имаме прекарал повече време в тях. ОК ли други въпроси? Да. ПУБЛИКАТА: Може ли да отидем при използването на анонимни функции в JavaScript? Аз съм си малко объркан за това. JASON Hirschhorn: Така че в JavaScript - Опитвам се да мисля как съм би могъл да напише това на - така че нека действително се отвори този код. Така че това е код, който направихме миналата седмица. И сте виждали това и преди, ако бяха тук, в раздел миналата седмица. Или сте виждали нещо подобно на това преди. Но вие можете да погледнете тази първа линия. Това е как да започнете - всеки е виждал преди. Ако искате да се въведе някакъв JavaScript кода, да я поставите вътре в този, приемайки използвате JQuery. Това се казва, не прави нищо докато бъдат натоварени на документа. И тогава, Кърт, ще видите точно тук правим нещо подобно - функционални отворени Paren, затворени Paren. Така че ние не даваме тази функционира име. Ние няма да се дефинира тази функция е трябвало да се движи и след това го наричат ​​няколко пъти. Просто казваме този документ вече се функция. Няколко неща за вършене. И ние не искаме да прекарват времето придавайки му име или да го запишете за за вечни времена. Ние просто искаме да направим някои неща. Така анонимен функция сортиране на обслужва тази цел. Когато няма да използвате нещо отново и отново, така че не е нужно да му се даде име - просто искам да го използвам веднъж - вие просто ще кажа, функция, за Например, в този случай, и вие сте просто определяне нещо, което бихте могли да дадете име. Например, ние може да тегли тази функция се и да му дадете име и след това да се обади, че функционира тук. Но ние не трябва да, защото ние не правим искате да губите време, което му име или губиш нещо в името ни пространство. И ще видите, че много. Например, ние виждаме, че много в тази код, но сте го виждали преди, когато щракнете върху нещо - стартирате този вид код. Бихме могли да се определи кодът, който искаме да тече, когато щракнете върху него, в този случай, това ID, като отделна функция и след това да изпълните тази функция. Но в този случай, ние просто прескочите тази стъпка и да го преместите в тук и само до определяне на всичко че искаме да се случи и не му даде име. Това все още не може да се наложи отговори на въпроса ви. ПУБЛИКАТА: Не, това е така. Искам да кажа, мисля, че просто наистина не разбирам защо това би било функционира на всички, все пак. Защото това не е наистина се обади. Това няма да има име. JASON Hirschhorn: Това е функция в смисъл, че това е поредица от стъпки, като теб ще поставя във функция. И тогава това е защо ние наричаме тя анонимна функция. Ние няма да му се даде име. Ние няма да губим опитвам да го наречете, но можехме. Анонимни функции, вие винаги може да се даде име. Така например, този код точно тук, бихме могли да поставите този код във вътрешността на функция и след това се обадете тази функция тук. Вместо това, ние казваме, ние не отиваме да се занимавам с това. Ние просто ще напиша всичко точно тук. Това е като понякога, когато пишете четиригодишен цикъл в C - момчета съм виждал това и преди - може би си итерации чрез forloop в I е равна на 0. I е по-малко от strlen. Или, което става чрез някои масив, можете да спестите масив индекс и в някои променлива. А вие използвате тази променлива. Така че не е нужно да се пренапише масив скоба аз отново и отново и отново. И това е нещо като сляпо променлива. Това не е много, обслужващи цел, различна от за да направите вашия код е малко по-чист и по-лесно да се чете. Подобна функция тук. Просто го прави малко по-лесно, но функционално няма разлика. Това отговаря ли на въпроса ти? Публика: Да. JASON Hirschhorn: ОК .. Марио? ПУБЛИКАТА: Вчера те често поставят функция скоби събитие. Това означава ли нещо? Или това е за неща като че ще направят document.ready функция събитие. JASON Hirschhorn: Виждали сме това и отново, те са по-малки неща Аз може би не искате да прекарват твърде много време в. Защото понякога не искам хората се откачи, че те не са Чух за тези неща, които много. Но ние говорихме малко за обработчици на събития. Така че нещо се случва, и след това тази функция се изпълнява. И след това ние също искаме да знаем някои подробности за това какво се е случило в този случай. Така че мисля, че обратно към определен проблем 4. Това е може би най-лесният начин да се Разбирам, че в избухне. Имаше някакъв код - подобно събитие ще се случи, но събитие може да означава много неща. Ако би могло да означава се кликне, той може да означава ви удари клавиш със стрелка, et прочие, и прочие. Но всичко това е записан в този родов нещо, наречено събития. И тогава можем да кажем, е това събитие това нещо? Или това е събитие, това нещо? Или, какъв вид е случило с това събитие? Така че това е защо се създаде тази променлива там, за да спаси това допълнително информация за това какво точно се е случило, че вие ще искате да използва във функцията. Но отново, това е може би един от по-малко важни неща, за да бъде супер запознати. OK, какви други въпроси да има хора е имал или е препъни блокове те срещани, докато се преразглежда? Ние ще подкрепи в този списък. Ами по време на тренировка викторини, ако хора са взели тези, които вече? Какви са някои проблеми, които спъна вие нагоре? Знам със сигурност, че от миналата година викторина беше наистина трудно. ПУБЛИКАТА: Можете ли да обясните какво SQL инжекция атака на е? JASON Hirschhorn: Добре, чудесно. Така че ние говорихме за това след малко. Има една лекция на тема сигурност. И пак, както споменах по-рано, това е настрана. Но вие ще бъдете разочаровани от викторината когато четете някои малки две точка въпрос, и вие сте като, когато изобщо ти научи това? Всички тези неща в тези лекции че не си мислиш, че е необходимо да се знам, или бихте могли да замаже защото те не са имали общо с проблем набор, тези, най-вероятно ще излезе отново на теста. Така че, готини, забавни неща, които просто Мислех Дейвид разказваше за вас да ползват, той ви казвах, за да насладите и да ви накара да бъде само супер развълнуван за учене всичко там е да се научите за компютърни науки. Тези неща също идват на викторини. Така че, дори и тези малки неща, които не сте са пряко свързани с проблема си настроен, тъй като вие сте запознати с от Quiz 0, най-вероятно ще излезе. И това е добър пример на нещо. Така атаки на SQL инжекция е, когато получите някаква информация от потребителя и искате да го вмъкнете в таблицата, използвайки на SQL вложка изявление, но ви не се санира входа преди време. Така че, очевидно сме виждали SQL отчети. Аз просто ще се отвори - да вървим - ние ще отидем на преглед - Мисля, които го покриват? Мисля Samala направих. Така че можем да вземем - ПУБЛИКАТА: Къде го намери това? JASON Hirschhorn: Така че, ако отидете на CS50.net, викторини, и след това можете да превъртете отново и да получите пързалки от заседанието за преразглеждане. Но можете да видите това е добър пример на инжектиране атака SQL. Ние приемаме някаква информация от страна на потребителя и те ни дават един низ и след това ние искате да вмъкнете, че низ в база данни. Като цяло ние ще се санира, че въвеждане, което означава, че има някои символи, които са опасни. Така например, в SQL низове, тези цитати - апострофи или двойни кавички - означава нещо. Те означават край на това низ тук. И така, ако потребителят дава един-единствен или двойна оферта, те могат да бъдат се опитва да препъне вашия SQL заявка и вмъкнете някои лоши неща в него. И ако го направят това, те биха могли да получат контрол на вашата база данни, или се направят някои неща, които не искат да направят. Така че това е защо, когато ние се SQL заявки, ние хигиенизирам входа преди поставяйки я в базата данни, която означава, че ние избяга тези знаци. Ще говорим за това в секунда. Но дълга история накратко, SQL инжекция атака е, ако не направим това - ако не се грижим за вход те ви даде преди пускането си база данни, те могат, както виждате надолу тук, изпълнение на заявка, че в действителност - те поставят в кода си тук и това изберете линия тук ще избере всичко от масата, независимо на което е дадено на паролата. Защото вие имате една или равен на 1. Така че това е основно, дълга история кратко, начин да поеме базата данни. Въпросът, тогава, за вас, момчета, е където в р комплекта 7 ли дезинфекцирайте всички входовете на вашите SQL заявки? Когато се случи тази стъпка? Къде ви попречи SQL инжекция атаки от случва в определени стр. 7? Да. ПУБЛИКАТА: Crypt? JASON Hirschhorn: Така че това не е крипта. Ние не ви накара да направите това за тази Особен проблем настроен, но това се случва във функцията на заявки. Ние всъщност го е написал за теб, и ние се грижи за саниране входове за вас. Но през последните години, учениците са имали да въведете входовете на техните собствени. В стр. набор 7, много от вас - позволете ми да се отворят един друг файл. Така че, вие ще забележите, тук много хора, в проблем определила 7, не се обаждат тази функция на струни. Тази функция, htmlspecialchars, отново - този низ може да има някои неща, че в HTML означава нещо друго. Като презрамки, квадрат, или под ъгъл скоба да кажа нещо в HTML. И така, ако първо разпечатате, че чак до екрана или ако просто приемете, че и отпечатате, че, за да ви HTML, това може направя нещо, което не очакваме. Така htmlspecialchars отива над всички онези, символи, които имат специално среща и им убягва. Така той получава отпечатан, тъй като текстът искате да видите, а не завинтване на вашия HTML. Обадихме се на тази функция в заглавната си част. И много хора, забравих да наричаме това функция в код, който се пише. Така, например, ако името на склад имаше ъглова скоба в него и сте забравили да се обадя на тази функция, този ъгъл скоба може да са отхвърлили това, което Вашата HTML приличаше. Но обажда тази функция ще избяга че така тя всъщност отпечатва като ъглова скоба и не хвърлят Свали си HTML код. Поради същата причина сме виждали, понякога, наклонени черти преди двойни кавички в ФОРМАТ линия, защото ние не искаме двойни кавички надолу низа. Искаме да ги отпечатате до екрана. Така че всичко това е една и съща идея. Това отговаря ли на въпроса ти? ПУБЛИКАТА: Нещо такова. JASON Hirschhorn: ли има последващи действия? ПУБЛИКАТА: Предполагам, че SQL инжекция атака има нещо общо с това? Аз не разбирам как двете са свързани. Защо ще правят specialchars? JASON Hirschhorn: ОК, така че SQL инжекция атака е, когато се инжектира някои злонамерени струни в нечий програма, и те просто го вземе и да тичам на SQL заявка с низ Ти ги даде. Както можете да видите тук, че може да бъде проблематично. Така че начина, по който се предотврати срещу които е вземете им низ, че те дават вие - така че този низ точно тук - и ти го правя по-приемлив. Можете избягат всички неща, които са потенциално проблематични. Така че не ги интерпретира като нещо това означава нещо. И пример за това с HTML е тази функция. Така че това е една и съща идея тук. И аз просто ви показва друг примери за когато сте виждал тази идея преди. От бягство въвеждане на потребителя преди печат тя излиза към екран или пускането вътре изявление SQL. ПУБЛИКАТА: Така че в този случай, потребителят е каша с програматора. JASON Hirschhorn: Да. С всички тези атаки на сигурността, това е винаги по принцип на потребителя, или някой се опитва да се забъркваш с вас, програмист. И това са начини, можете да предотврати срещу тях. ПУБЛИКАТА: Така че аз имам един въпрос за хеш функции. В Quiz 1 от 2011 г., има две въпроси за едностранни хешове. И аз просто се чудех какво означава това. JASON Hirschhorn: OK, които викторина? 2011 г.? Публика: Да. ПУБЛИКАТА: Quiz 1? ПУБЛИКАТА: [недоловим]. Това е все едно хеширане парола. Това не е удар неща - JASON Hirschhorn: Какво страница беше? ПУБЛИКАТА: Мисля, че беше 9 или 10, или и двете. JASON Hirschhorn: Добре, давай, Кърт. Можете да отговорите, докато ние с нетърпение. ПУБЛИКАТА: Мисля, че това говори за хеширане парола. Например, когато някой влиза с парола, можете да го превърне в криптирана нещо. Това е хеш парола, която е различен от разбъркващата функция, че слага нещо в хеш таблица. JASON Hirschhorn: Да видим. Позволете ми да спра това, което те даде като отговор. И тогава ние ще минеш през нея. Така че Кърт даде чудесен пример на еднопосочна хеш. Когато сме виждали това и преди, ние вземат паролата и да се обърнат - Спомням си, в комплект стр. 7, някой може има парола, която е само с парола, но след това той получава кодирано в някои наистина дълго нещо. The еднопосочна хеш означава, че е много лесно да се премине от един начин на другия, но това е много трудно да се премине от по друг начин обратно. И така, вие знаете, когато сте били проверка пароли на хората в проблем определила 7, вие ще си вземат - така че, например, казват, че искат да променят своята парола, можете да ги помолите за старата си парола. Ти взе старата си парола. Можете да го кодирано. И след това сравнение на двете криптиране отколкото unencrypting оригинала едно, защото това е наистина трудно да се отиде по този начин. Да. ПУБЛИКАТА: Как в дълбочина прави нашия разбиране на Telnet трябва да бъде? JASON Hirschhorn: Ако беше споменато накратко в лекция, само на кратко разбиране. Отново, обратно към отговора на въпрос на AVI - колкото повече неща се появяват, толкова по-вероятно това е, което трябва да бъде супер запознат с тях. Ако те идват само в лекция, това е само едно място. Но ако те идват в лекция, секция, и проблем, зададен, тогава вие вероятно ще трябва да бъде супер запознат с тях. Така че аз имах един въпрос от по-рано около - т.е. беше есен 2010 - Quiz 1, нека да спра - този въпрос на стекове и опашки, които ние не прекарват справедлива част от времето говори в лекция, дори въпреки че ние всъщност не някога го удари в раздел. Така че този въпрос ви дава серия от команди, и ви питам какво материал се отпечатва в този случай. Така че това е един напълно логичен въпрос че може да бъде поискано от вас момчета, и тогава вие трябва да да бъде в състояние да му отговори. Така че, защо не и да го погледнеш за 30 секунди, а след това, ако някой иска да предложи отговорите на мен, и След това ние ще минеш през нея. Добре, кой има отговор на въпрос 27? Да. ПУБЛИКАТА: Дали е 1, 2, 3, 3? JASON Hirschhorn: Точно така. 27 е 1, 2, 3, 3. Така че нека да погледнем как сме стигнали това. Първо, ние казваме, ако S е опашка, това, което се отпечатва? Така че р е първи влязъл, първи излязъл. Виждали сме това и преди. Видяхме картина на хората чака на Apple Магазин, за да купя някои продукти. Първите хора в са първите хора навън. Първите неща в режим на изчакване са първите неща навън. Така че, ако ние прокара нещо в опашка, натискане на един, а след това ние се появи на 1. Поп просто означава извади. В този случай, просто приемете нещо. Ние извадете първата нещо, това е едно. Така че ние ще постави нещата ние печат надолу тук. Това вече не е в нашата опашка. Тогава натиснете върху 2 и 3, и ние гърмя първото нещо. Отново, защото това е една опашка. Така че ние поведат с 2, а след това ще се постави върху друг 3 и се обадете отново поп. Нашата 3 е на първо място. И тогава имахме цял куп други неща и разговор поп. Но отново, тъй като това е опашката, първи влязъл, първи излязъл. Ние извади първото нещо, че е някога е бил извеждан инча Това е нашият 3. И в този случай, ние не се притеснявайте за всички тези други неща. Така че това е, ако това е опашка. Всякакви въпроси за опашката? A стак е различно. Какво е акроним имаме за разбирането на комин? ПУБЛИКАТА: Последно влязъл, първи излязъл. JASON Hirschhorn: LIFO, мисля. Последен вътре, първи излязъл. Така видяхме пример за комин на тави в зала за хранене. Каквото и тава е на върха получава качват нагоре. И след това, ако нови тави идват в, те се поставят на върха. И след всичко, което е на отгоре получава качват нагоре. Така че тези тави на долния мощта остане там за известно време. В този случай, отново, ние ще изготви това. Ние тласък на един, така че един е първи по ред. И ние се появи нещо на разстояние. И има само едно нещо, там, така че ние се движат една тук долу. След това ще се постави на 2 и 3 и ние изскочи нещо на разстояние. Но отново, тъй като това е опашка - или това е една купчина, по-скоро - вземаме каквото беше в последния. Каквото и да е, в последно излиза на първо място. И 3 е в последен. Така че ние поставяме на три там, а след това ще се постави върху друга три и ние изскочи нещо отново. И накрая, ние поставяме на 4, 5, 6 и 7, и тук ние поп. И тъй като това е един комин, ние се каквото и да е пусната в последния и пишат че тук долу. Така че ние в крайна сметка с 1, 3, 3, 7. Дали някой има някакви въпроси относно стекове или опашки, или този пример? OK. Нека да се върнем към списъка с теми. Не по този начин, по този начин. Какви други въпроси хората имат? ПУБЛИКАТА: Не знам колко е важно това е, но аз бях объркана от разлика между различните видове езици като маркиране, събират, тълкува. JASON Hirschhorn: Това е Добър въпрос. Мисля, че това е много важен, така че нека да го прегледаме бързо. Големите езици, които сме виждали досега са C, PHP и JavaScript, от гледна точка на езиците за програмиране. HTML, както споменах, не е език за програмиране. Това е език за маркиране. И тогава имаме CSS, който също е не е език за програмиране. Ние също така сме виждали SQL, която не е език за програмиране от двамата. Така SQL ви позволява да пишете заявки за база данни. HTML е език за маркиране. Той определя как нещата са структурирани. И CSS ви позволява да оформите нещата. Това е вероятно, доколкото за това, което трябва да знаете за тези три. Но това е по-интересно да фигура разликите между C, PHP, и JavaScript. Така че един от най-големите разлики, както споменах, е как те са компилиран, или каквото и еквивалент е. Така че C е компилиран. Ние винаги ще тече компилатор. И тогава къде са вашите грешки когато стартирате C компилатор? Къде ли ви шоуто грешки в кода си? Откъде знаеш, че има един грешка в кода в C? ПУБЛИКАТА: Тя ви показва в терминала. JASON Hirschhorn: Тя ви показва на терминал, както сте съставянето. И ако има грешки, той всъщност няма да го компилирате. Така че, вие знаете, че има грешки правилните далеч, преди време, преди да дори и тичам вашия код. Разбира се, вие може да стартирате свой код и получите грешка сегментация, но това беше вероятно защото сте направили някаква глупава логика нещо. Но вашия код с технически всичко правилно и да тичам. Така C код получава съставен преди време. Какво ще кажете за PHP код? Къде бяха грешки в PHP код? Откъде знаеш, че имаш грешки във вашата PHP код? ПУБЛИКАТА: Пусни време? JASON Hirschhorn: Да, когато ще го изпълним, ще изпълнете PHP код в гърба. И тогава ще се покаже на екрана. Може да видите някои неща, които бяха на върха, но след това вие ще видите, като някои оранжево, грозна маса. И това ще ви даде номер на ред и да речем, дрън, дрън, дрън, тези неща не работи. Така че PHP се интерпретира ред по ред и се изпълнява на сървъра. И след това резултатът е изпрати до вас. Чудесно. Изпълнени в сървъра ред по ред и след това се изпраща към вас. И ако има грешка, тя ще изпрати вие грешката, но може да се наложи намерила някои неща преди време. Така че някои от тях може да са обработени, но по-късно, някои неща не може да има не е работил. Ами JavaScript? Къде видяхте грешки джава? В стр. настроите 8, когато получих грешка, как разбрахте? Къде ще го покаже? ПУБЛИКАТА: В конзолата, в дъното. JASON Hirschhorn: В конзола, на дъното. Той също така ще ви дава даде номер на ред, и би се появи на дъното. И JavaScript не е била изпълнена на сървъра. JavaScript е изпратен на вашия компютър, и след това, когато дойде време да изпълните JavaScript, за JavaScript е тичам ред по линия на клиент, на твоя страна. Не на сървъра, от страна на клиента. И също така, че е тичам ред по ред. И тогава, когато вие ще получите съобщение за грешка, тя ще се появи в долната част. Подобно на PHP, част от него може изпълнение, и тогава може да се получи грешка по-късно. Също така, малко за разлика от PHP, ако имаш грешка в JavaScript - Казват, че не съм направил правото код за предупреждение кутия - вие може да продължи да работи вашата програма. Кутията за тревога няма да работи, но Вашата програма ще бъде наред. Просто може би тази функция ще се провали. Така че има някои от най-големите разлика от гледна точка на това как те език, или как програмния код пишете всъщност са оценени. Има и други различия в от гледна точка на - най-голямата разлика сме виждали по отношение на променливи в различните езици. Така че, може ли някой да ми даде разлика между променливите в трите езика? Да. ПУБЛИКАТА: В C, те са стриктно написали. В другите две, те са хлабаво написали. JASON Hirschhorn: И какво означава това? ПУБЛИКАТА: Това в C, трябва да се декларират вида на променливата когато Вие декларирате променлива, като interbool или Чар. JASON Hirschhorn: Отлично. В C, ние винаги трябваше да се примири тип на променлива. И наистина не можем да смесвайте различни типове. Вие не може да направи цяло число плюс низ. Но както сме виждали в тези други езици, всъщност можете да се смесват видове, и никога не сте наистина трябва да се даде нещо тип, никога. Е, как да сме сигурни, че нещата са променливи в PHP и JavaScript? ПУБЛИКАТА: В PHP, те започват със знак за долар. В JavaScript, когато вие декларирате тях, трябва да имаш един бар. JASON Hirschhorn: Точно така. Така че в PHP, те започват със знак за долар. В JavaScript, те трябва да имат бар, въпреки че понякога те всъщност не Трябва да има бар. Но това е вярно. Така че това е голяма разлика между променливите. Мисля, че тези, които са най-вероятно, изключете върха на главата ми, двете най-големи разлики между тези три езика. Но, да. ПУБЛИКАТА: И обхвата на C променливи е ограничен до фигурните скоби, където други такива, това е просто обичат, той умира, ако това е само една функция, но по друг начин, това е. - JASON Hirschhorn: Точно така. Така обхват е малко по-различен в C. Като си спомняте, фигурни скоби определят обхвата на променливи. Така че, ако това се дефинира вътре в ако състояние, което е вътре за линия, променливата съществува само там. В JavaScript, ако променлива е определена ако вътре в състояние - вътре за линия - тя ще съществува за тази функция, но това няма да съществува извън тази функция. Така обхватът е малко по-гъвкава в JavaScript и PHP. Това отговори на въпроса? Добре, някакви други въпроси? Ние можем да направим още четири минути на въпроси, а след това ние ще се потопите в кодиране. ПУБЛИКАТА: Може ли да отидем в Аякс и да поговорим за това какво е това? JASON Hirschhorn: Говорете с Avi след това. Той попита на този въпрос по-рано. ПУБЛИКАТА: My лошо. JASON Hirschhorn: Не се тревожете. ПУБЛИКАТА: Какво точно е JSON? JASON Hirschhorn: Какво е JSON? Какъв е вашият въпрос? ПУБЛИКАТА: Просто наистина бързо, разликата между печат и ехо в PHP. JASON Hirschhorn: Защо не Google разликата между печат и ехо? Малка разлика. Не че кой знае какво. Но определено трябва да го Google, и това ще ви даде по-добър отговор. JSON, вероятно по-голям от една сделка. Стойки за JavaScript Object Notation. И когато видяхме JSON се използва? Когато сте виждали - защо ли изобщо думата JSON? Кога си го виждал? ПУБЛИКАТА: Когато ние получавахме борсови котировки за финансиране. JASON Hirschhorn: Значи сте видели го, когато сте били получаване борсови котировки за финансиране. И защо ли да го видя? ПУБЛИКАТА: Когато бяхме извличане цялата информация, която дойде в този формат. JASON Hirschhorn: Така че вие ​​ще получите - Да. Давай напред. ПУБЛИКАТА: [недоловим] информация от един обект? JASON Hirschhorn: И на тези, взети заедно е отговорът търсим. Вие искате информация от тази друга уеб страница. И се надявам, че когато сте получаване на тази информация, тя ще бъде представени пред вас в някакъв вид на стандартизиран формат. Всеки е вероятно запознати с разделени със запетая стойности. Можете да експортирате таблица в Excel или всякакъв вид на таблица и списък на разделени със запетая стойности. И запетайките разделят всички най-различни области. JavaScript Object Notation - JSON - е друг тип стандартизиран оформление на нещата. И това е често как ние възвръщаме информация от нашите заявки Аякс. Така че в този случай, ще го имаме от сайта Yahoo. Те се връщат неща, за да ни в JSON обект. И тогава ние знаем, защото това е стандарт, какво е ще изглежда така. Така че можем да превъртите през масива че е върнал при нас, масива на предмети, които се връщат при нас. Вероятно е необходимо да знаете ключовете, но те обикновено ви дам документация в сайта, когато сте привлекателен някои JSON нотация за тях. Също така, можете да JSON кодира обект. Така че има функция JSON подчертае кодират. И така, можете да вземете един обект, който сте създали, JSON го кодират, и да го давате на нещо друго, ако искате да. И JSON декодиране също съществува за подобна цел, или за противоположната цел. Публика: Трябва ли да знам за кодиране за хеш таблици и се опитва? Или ние просто трябва да се разбере, как те се използват, концептуално? JASON Hirschhorn: Така че, вдигнете ръката си Ако се направи хеш таблица за р Сет 4 със списък на връзка. Или р комплект 5. Така че това е една огромна част от хората. P комплект 5, 6, кой знае. Преди много време. Така че по-голямата част от вас е направил хеш таблици с линк списъци. И тъй като това е може би още по- общ подход, а защото сме прекарали много време прави връзката списъци и хеш таблици, вероятно ще трябва да бъде доста запознат с това как да се кодира хеш таблица и списък с линкове. И ако мислите, че обратно на този проблем зададена, тя не беше наистина толкова силно, колкото се очакваше. И имаше много по-малко код, отколкото сте очаквали. Бих казал, че трябва да знаеш как да кодира хеш таблица или списък с линкове. Не, че ще бъде поискано, че задължително, но трябва да Със сигурност знаем, че. Също така, ако погледнете през последните викторини, там са били много въпроси за писане на функции на Линк списъци или двойно-свързани списъци. Това изглежда да излезе всяка една година. Right вмъкнете в списък за връзка, нали изтриете от списъка за връзка, нали вмъкнете за двойно свързан списък, и така нататък. Така че, аз се чувствам доста комфортно казваш, че трябва да знаят това. За опит, бих казал, че трябва Със сигурност знаете как тя работи, и може би даде някои pseudocode за това как да го кодират и го изправи. Но това не би било най-лошото нещо в света, ако вие не знаете как да се го код в C. Това би било чудесно, ако можете знаеше как да го код в C, но аз мисля, вероятно pseudocode за опит би да бъде най-много ще ви е необходимо да знаете за да опитате. ПУБЛИКАТА: Екстра кредит? JASON Hirschhorn: И същото с това, ако ние отидете в двоични дървета за търсене, може да се нужда - и вие сте виждали в миналото, ние сме направили много - знаете как двоично търсене дърво работи. Може би трябва да бъде в състояние да зададете една в псевдо код. Но тъй като по-голямата част от хората не направи това по проблема набор, бих казал, че това е може би по-малко важно, че знаете как да се кодира и да се създаде такова дърво. Някакви други въпроси? Също така, ние можем да ги питам целия като минем през някои проблеми. ОК, ние ще продължим напред. Пропусни този слайд за сега. Говорейки на дървета, това е първата Имам въпрос за вас, момчета. Тъй като това е проблем. Бих казал, че е много вероятно ти ще получи проблем като този на вашия викторина Моля те да кодира някакъв вид вложка, изтриване, търсене, за един вид на структурата на данните, които сме виждали. Това идва всяка година и ние прекарахме много време на втората половина на тази семестър става над тези типове данни. Така че точно сега, аз съм определил възел в двоично търсене дърво. И това, което бих искал да направите, е да даде двоично търсене дърво, което започва в този възел звезда корен, изпълнете изпълнение на функцията по-долу, което се случва, да бъде функция находка. И го правя с и без рекурсии. Така че аз искам да пиша две функции. Един прави това с рекурсия, един Правейки това, без рекурсия. И не си мислете, че корен ще бъде непразна. Така че ние не търсим за цялото число и в дървото започва в основата, и имаме нужда от да напиша това рекурсивно и итеративно. Да. ПУБЛИКАТА: Значи вие искате от нас да се върне вярно ако го намерите, и невярно, ако ние не го намери. JASON Hirschhorn: Откъде знаеш? Откъде знаете това? ПУБЛИКАТА: питах първи, но аз бях ако се приеме, защото тя казва, булев в началото на функцията. JASON Hirschhorn: Точно така. Той казва, булев, така че дори не трябва да се да ти кажа това, което аз очаквам да се върне защото тя казва, точно там. Но това е добре. Връщане, вярно или невярно. Така че, преди да започнете, аз бих препоръчал, Ако не сте запознати с двоични дървета за търсене, бързо рисуване снимка на него, за да получите разбиране, нали. Това също ще ви помогне при писане кода си и го проверява. Отново, вие също не са толкова много време на теста да правя всички неща, че ние ви молим да се направи. Така че написването псевдо код е много полезен. И ние по принцип дават около - ако pseudocode е напълно правилно, това е обикновено до 50% на един въпрос. Така че това не е трудно и бързо правило, но ако просто напишете pseudocode и това е правилно, това е обикновено до 50%. Така че аз бих винаги препоръчвам - ако сте натиснат за време, или дори ако вие сте просто се опитва да го разбера - като се започне с pseudocode. И най-накрая, ако бихте могли да напиша тази всичко в C, че ще бъде фантастично. Така че нека да вземе три минути да работят по тази програма. И тогава ние ще напишем pseudocode за него само веднъж, и след това ние ще го кодира рекурсивно и след това итеративно. Ако имате някакви въпроси, не се колебайте безплатно вдигнете ръката си. Честит да се разхожда и да отговори на тях преди да започнем като група. Нека да го възобновите, и ние ще се pseudocode рекурсивната версия на това, и след това ние ще го кодира. Така рекурсивно функция се нуждае от две неща. Това може да е въпрос, който бихте могли да бъдат задавани. Има нужда от две неща. Кой може да вдигне ръка и да ми кажете какви са двете неща, рекурсивно функция се нуждае? По дефиниция тя има две неща. Какви са тези две неща? Нови ръце. Да, Алдън. ПУБЛИКАТА: Така че аз не съм съвсем сигурен дали това е терминологията, но - JASON Hirschhorn: Радвам се, че сте вдигане на ръка. ПУБЛИКАТА: Тя се нуждае от базов модел, и тя се нуждае от рекурсивни стъпка. JASON Hirschhorn: Perfect. Тя се нуждае от базов и рекурсивно стъпка. Така че това, което е нашата база случай тук? ПУБЛИКАТА: F корен равнява равнява нула. За съжаление, само в pseudocode, ако това е нищожна. Ако корен е нищожна. JASON Hirschhorn: Ако корен е нищожна. Това е отлична. Това е нашата база случай. Това е, което ние ще да се провери всеки път. И базов модел е първото нещо, което правите. Ако ви удари основния случай, сте готови. Сега имаме нужда от нашия рекурсивно повикване, и бих да бъдат готови да се обзаложим, ние се нуждаем от няколко рекурсивни призовава тук. Защото това е едно дърво, и ние може да отиде много начини. Така че, ако корен е нищожна, ние сме добре. Какво предлагаш? И сега, аз ще започна да вика на вас, защото знам, че вие ​​момчета Всички знаем това. Но Ани, какво трябва на следващия ред да бъде? Ами ако ние го намери? Какво ще правим? ПУБЛИКАТА: Ако ние го намери? JASON Hirschhorn: Или какво би трябвало да бъде - дай ми pseudocode за на линия, където го намерихме. ПУБЛИКАТА: Ако аз се равнява на корен аз? JASON Hirschhorn: И тогава какво ще правим? ПУБЛИКАТА: Завръщане вярно. JASON Hirschhorn: Great. Така че, ако аз е, аз - О, те платиха аз. Това става объркващо. Но ако аз е да се върна вярно. Това е най-вероятно следващата нещо, което можем да направим. Има смисъл. ОК, сега не сме направили нашия рекурсивни Все още се обадя, все пак, защото рекурсивно повикване ще се обадя отново тази функция. Така че това, което трябва на следващия линия на pseudocode бъде? Anna. ПУБЛИКАТА: отляво. JASON Hirschhorn: Бъдете конкретни, все пак. Това е двоично търсене дърво, така че това, което прави проверка на лявата страна води? ПУБЛИКАТА: Така възел - Съжалявам, корен. И след това с лявата стрелка. Node, възел, съжалявам. Аз не съм го прочете правилно. Тя се нарича възел, нали? JASON Hirschhorn: Тя ще се нарича корен в тази функция, но така или иначе. От лявата страна - Така ли? ПУБЛИКАТА: Ако това не стане равно аз, след това отиваме да се обадя отново функцията? JASON Hirschhorn: Точно така. Ако това не стане равно аз, отиваме да се обадя отново функцията. Но от коя страна на дървото отиваме да се обадя отново на функцията? ПУБЛИКАТА: От лявата страна. JASON Hirschhorn: Ние не винаги сме Ще го наричаме ляво, ако тя не го равни. ПУБЛИКАТА: О, съжалявам. Обадете се на правото. JASON Hirschhorn: Искаме да знаем специално, все пак - не забравяйте, в двоично търсене дърво, всичко, за да лявата страна е по-малък. Всичко в дясно страна е по-голяма. Така че това просто не е - да, давай напред. ПУБЛИКАТА: Ако е по-малко, отколкото аз, след това - ако това е в ляво - JASON Hirschhorn: Така че, ако ри е по-малко от - така че ако ни брой е по-малко, отколкото аз, коя страна искаме да отидем, за да? ПУБЛИКАТА: Искаме да отидем от дясната страна. JASON Hirschhorn: Искаме да отида - позволете ми да насоча бърз дърво. Ако това е 5, това ще бъде 3. Така че, ако ри е по-малко от пет, какво страна искаме да отидем, за да? ПУБЛИКАТА: Съжалявам, какво? JASON Hirschhorn: Нашият номер е по-малко от броя сме търси в момента. ПУБЛИКАТА: О, тогава ние искаме за да отидете на левия фланг. Да. Извинете. JASON Hirschhorn: Точно така. Не се притеснявай. В двоично търсене дърво, всичко по-ниска е отляво, по-голяма е вдясно. Така че, ако ни брой е по-малък от Аза ние проверяваме - защото вие виждате в възел, той има и - след това искате да отидете в ляво. И това е лесен. Какво е другата линия на pseudocode ние трябва да пиша? Карлос? ПУБЛИКАТА: Същото нещо, просто превключвате да има повече от знак и отидете на правото. JASON Hirschhorn: Можете ли да го кажа още един път? ПУБЛИКАТА: Ако нашето число е по-голямо отколкото аз, отидете на правото. JASON Hirschhorn: Отлично работа на pseudocode. Нека да направим това в реалния код. И отново, това ще pseudocode вероятно можете да получите, защото това е вярна, 50% по този въпрос. Но това pseudocode също един превежда един, по същество, в код. Така че нека да направим това в C. Кой може да даде ме на първия ред на кода? Всъщност, на първо място, преди да го направя че, позволете ми да спра - ПУБЛИКАТА: Аз имам един въпрос. Защо тире Онлайн ти дадох? JASON Hirschhorn: Защото Не можех да пиша. Не знам. Прав си. Тази линия трябва да бъде там. Добре, тук е нашата функция. И нека да отбиеш, също така, нашата дефиниция на възел. Какво се случва, ако не го направихме напиши typedef? Знае ли някой? ПУБЛИКАТА: Не би компилирате. JASON Hirschhorn: Това би събира, да. ПУБЛИКАТА: Бихте тя просто декларира едно Например, вместо да го нова тип сте може да декларира, множествена случаи на? JASON Hirschhorn: така че не би знам - това не би просто декларира един тип. Вие все още може да се направи много възли. ПУБЛИКАТА: Но не би ние трябва да напиши структура възел всеки път? JASON Hirschhorn: Точно така. Може би трябва да се напише структура възел всеки път, вместо просто възел. Но с typedef, може просто да напиши възел всеки път. Добре, кой не е дал - да, Avica. ПУБЛИКАТА: Ако корен равнява равни нищожна, връщане фалшиви. JASON Hirschhorn: Great, и това е нашата база случай. Следващия ред код. Някой, който не е дал ме линия на код Все още? Да. ПУБЛИКАТА: Root стрелка аз е равна равна и. След това се върнете вярно. JASON Hirschhorn: Great. Следващия ред? Да. Някой друг? И тогава може да се върви напред. ПУБЛИКАТА: Else ако корен стрелка аз е по-малко, отколкото да се върна функция, наречена находка корен - JASON Hirschhorn: Съжалявам. ПУБЛИКАТА: Върни находка корен изтъква наляво запетая аз. JASON Hirschhorn: Така че, ако ри е по-голяма отколкото нещо на дървото, ние искаме да отидете в ляво? ПУБЛИКАТА: Не, имах, че включен. JASON Hirschhorn: Кое? ПУБЛИКАТА: Не, да. Имам по-малко от подпише там. JASON Hirschhorn: Добре, ако РИ е по-малко от това, което е в основата - сегашната ни корен - тогава ние Искам да отида в ляво. И това, което е на последния ред, нали? ПУБЛИКАТА: По принцип едно и също нещо, освен превключите в по-голяма или равнява на по-малко от и отляво надясно. JASON Hirschhorn: Отлично. Дали някой има някакви въпроси за това? Така някои други неща, които биха са били правилно е, че може да бъде-ltiff. Предполагам, технически, нито един от тях наистина да се наложи да бъде-ltiff. Също така, там е може би само един случай тук. Така че това е може би последния си случай. Ти дори не се нуждаят от това-ltiff. Но може би е добре да напиша това, за да бъде ясно. Да. ПУБЛИКАТА: Значи не смятате, че теста - ако ние правим грешки, например, в синтаксиса - малки грешки в синтаксиса - как това се взема в теста? JASON Hirschhorn: По принцип на теста, малък синтактични грешки или малък грешки стил не губят точки. Така че, ако сте забравили точка и запетая тук, би било OK. Ако сте забравили да затворите тази скоба, че ще бъде ОК. Огромни грешки в синтаксиса, които променят функционален смисъл на вашия код драстично, може да получите излетяло точки. Или като цяло, просто ви класификация от това дали или не си кодови функции, дори - не си дизайн толкова много, и не му стил. Нека сега да кодира един повтарящ версия на находка. Така че това ще бъде доста сходни, но има със сигурност щеше да бъде някои ключови различия. Въпреки това, нашата pseudocode вероятно може да отиде - Все още можем да вземем една линия на pseudocode и да разбера какво, по линия е в този случай. Така че в един повтарящ се версия, какво мислиш ли, Джулия, трябва На първо място се? ПУБЛИКАТА: Отново в повтарящ булев, , което трябва да се създаде за линия, нали? JASON Hirschhorn: OK. ПУБЛИКАТА: Така че за подобно, к, за х е равна на 0, х е по-малко, отколкото аз. Или не, х е по-малко от размер на дървото. JASON Hirschhorn: Дървото. Така че ние наистина не знаем размера на дърво, и ние наистина не знаем за Колко пъти можем да отидем, така че какво е различен вид на линия, която може да бъде по-добре в този случай? ПУБЛИКАТА: Ако друго? JASON Hirschhorn: Ако друго не може да бъде примка. Така че това, което е един вид контур можем просто отидете до някои случай е изпълнено? Какво е единственият друг вид контур в C освен за цикъл? ПУБЛИКАТА: Докато. JASON Hirschhorn: Макар, точно така. В една линия, докато не се направи Трябва да знаете как - една линия, докато и за линия може да направи точно същото нещо, но хубавото около една линия, докато е, че ние не се нуждаят от да знаете колко голям е нашето дърво. Така че ние ще отидем до какво? ПУБЛИКАТА: До той е равен размера на - JASON Hirschhorn: Е, това е много подобен на нашия рекурсивни случай. Така че - ПУБЛИКАТА: Докато корен Не е равно аз. JASON Hirschhorn: Това е наистина близо. Докато корен I - нека да го опитам. Не мисля, че [недоловим] където корен и не е равно аз. Ние може да се наложи да го промените в малко малко, но това звучи като тя е доста добре, за сега. Така че ние ще направим това. Също така, не забравяйте, че не можем да приемем, на въпроса. Не си мислете, че корен ще бъде непразна. И така, какво мислите, че самото Първото нещо, което трябва да направим е? ПУБЛИКАТА: Just направи същото нещо, както преди. Ако основата е равна на равни нищожна, връщане фалшиви. JASON Hirschhorn: Great. Така че това може да се счита за невалидно. Така че ние искаме да се отървем от него веднага. И тогава ние ще проверява дали корен и не е равно аз. Така че, да кажем, ние сме в търсене на това дърво за 3, корен аз не съм равен, сега ние сме в нашата линия, докато. Какво искаме да направим? И отново, това ще бъде доста подобен на нашия рекурсивни версия. Да. ПУБЛИКАТА: Значи вие ще искате да повторите, или продължавай надолу по дървото, толкова дълго, колкото основата не е равна на нула. JASON Hirschhorn: толкова дълго, колкото корен не е равна на нула? ПУБЛИКАТА: корен таблото АЗ не е равно на нула. Просто корена, да. Като докато основата е не е равно на нула. JASON Hirschhorn: Значи вие искате да промените това в корена не е равно на нула? Публика: Да. ПУБЛИКАТА: Можем да комбинираме те, нали? Ние не се нуждаем от, ако първоначално. JASON Hirschhorn: ОК, така че ако ние не - ако ги комбинирате, така че ние ще направим докато корен не е равно на нула, и ако коренът се случва да бъде нула в започваща, какво правим тук? ПУБЛИКАТА: връщане фалшиви. JASON Hirschhorn: Great. Така че и в двете посоки вероятно би работил. Това е друг начин, и това го съчетава. Но пак, ако го направиш така или иначе, ние сме Няма да свалиш дизайн точки на теста. Но това изглежда добре. Така че, докато корен не е равно нищожна, каква е първата нещо, което искате да проверите? Някой друг? Null, какво е първото нещо? ПУБЛИКАТА: Ако РИ е по-малко от - О, предполагам, ако ние вече Намерих го в корена. Така че, ако корен стрелка и е равна на I - JASON Hirschhorn: Моля? ПУБЛИКАТА: Ако корен стрелка и е равно равнява I - JASON Hirschhorn: Какво ще правим? ПУБЛИКАТА: Завръщане вярно. JASON Hirschhorn: Great. И какво следва? Jeff, каква е следващата линия на код? ПУБЛИКАТА: Ако аз е по-малко от корен стрелка аз, след това се равнява на корен корен лява стрелка. JASON Hirschhorn: корен равни корен стрелка наляво. Така че това е може би най-големият разлика тук, в този повтарящ се версия за разлика от рекурсивно версия. Рекурсивният версия, ние обадите отново функцията. Ние ще се актуализира, когато корен ние наричаме новата функция. Тук не се обаждате на нова функция. Ние сме просто само актуализиране корен в тази функция. Това е отлична. И това, което е последната линия на код? Да, Марио? ПУБЛИКАТА: Else корен равни корен с дясна стрелка. JASON Hirschhorn: Моля? ПУБЛИКАТА: Root равни корен с дясна стрелка. JASON Hirschhorn: Бихте ли също напиша нещо подобно? ПУБЛИКАТА: Нямам представа. JASON Hirschhorn: Не можеш. Не можеш да направиш плюс равни. ОК, така че това изглежда добре. Защо просто не го направиш за да го почисти. Това изглежда страхотно, а това ще проработи. И ние ще избухне. Ако корен лявата е нула или корен полето е нищожна, ние ще дойде до тук. Root ще бъде равна на нула. Ние ще се измъкнат от нашата верига, и ние ще се върне фалшиви. Така че, когато ние избягаме от контур, ние връщане фалшиви. И отново, за известно време примката беше перфектна тук, защото ние не знаем как големия ни дърво е. Опитахме се да пишем за линия, но ние Осъзнах, че трябва да разбера как голям, че е по-напред от време. Да. ПУБЛИКАТА: Ако това не беше двоичен търсене дърво, би било реално математика-у да го напиша итеративно, нали? Например, ако това е дърво, но не задължително - така че това не беше всичко по-малки в ляво, и всички по-голяма отдясно. Това ще бъде наистина трудно да превъртите над него, нали? Ние ще трябва да спаси това, което е по-рано на в дървото и да се върнеш, и подобни неща. JASON Hirschhorn: Ако не беше двоичен търсене дърво, ако това е просто дърво и неща, които не са били подредени по този начин - и ние осъзнахме по-рано, когато Анна ни помагаше, че правейки сортирани ни помага много - ние ще трябва да, да, винаги спаси където бяхме преди. Но може да има много където бяхме previouslys. Може да има много възли майки. Вероятно най-добрият начин да направите това би бъде да продължаваш да се бориш неща върху някои тип комин или опашка. Вие никога не ще трябва да се кодира тази защото е трудно проблем. Но те бутна някои неща, върху купчина или опашка и след това да ги гърмя, и след това да ги оцени. И след това има нещо друго, където вие всъщност извеждайки възли, и след това да създадете това, а после търси чрез това. Това може да бъде най-добрият начин да го направя. ОК, някакви въпроси относно този проблем? ПУБЛИКАТА: Това е на свързан нота. Ще трябва да сравним манш пъти за хеш таблици, двоичен търсене на дървета, и т.н.? JASON Hirschhorn: Вероятно. Така че нека да направим това много бързо. Пусни време за хеш таблица - какви са другите? Binary дърво? ПУБЛИКАТА: списъци Линк. JASON Hirschhorn: Добре, нека да направим вложка. Какво е най-голям О от вложка на хеш таблица? Какви са предположенията че правиш? Публика: Ти си поставяте в в началото на списъка с линк. JASON Hirschhorn: Вероятно първото предположение е, че няма сблъсъци. Ако няма сблъсъци, след това време на вмъкване е един. Ако има сблъсъци, а ти си прави отделен верижното и вмъкване в началото на списъка на връзка, след това вмъкване е също постоянна. Ако правиш хеш таблица, но вие има различен метод за справяне със сблъсъци, какво е различен метод? Какво е различен метод за справяне с сблъсък в хеш таблица? ПУБЛИКАТА: Linear програмиране. JASON Hirschhorn: Linear програмиране. Така че ние ще продължим да търсим за следващия отворен място. Това не е константно време вмъкване. Може да се наложи да мине през цялата таблица, така че може да бъде голям О п. Да. ПУБЛИКАТА: В противен случай просто верижното? JASON Hirschhorn: Направихме отделна верижното. Това беше първата. Това е, което списъкът на връзката. Привлекателният името е отделна верижното. Тя може да бъде всякакъв вид списък структура ние се случи да се направи в списъка за връзка. Така че отново, поставяне върху маса хеш може да бъде постоянно време. Какво ще кажете за вмъкване на теглич опашка? ПУБЛИКАТА: Не е ли това постоянно? JASON Hirschhorn: Това е константно време. Ти просто го натискате. OK. Insertion, какви са тези други? На пробвам? Какво е голям O на вмъкване на пробвам? ПУБЛИКАТА: Дължина е постоянна. Дължина на най-дългият - дължината на думата вие поставяте. JASON Hirschhorn: Моля? Изчакайте, така че това, което съм чул? Ти каза - това, което казахте? Какъв беше отговорът ти, Маркъс? ПУБЛИКАТА: Дължината на думата вие поставяте в герои, ако приемем, че това е опит характер. JASON Hirschhorn: ОК, така че дължината на думата. Ще се направи предположение, че това е низ от символи. Ти каза нещо по-различно, все пак. Ти каза, че дължината на най-дългата дума. ПУБЛИКАТА: Това е просто константа, нали? JASON Hirschhorn: Защо тя е постоянна? ПУБЛИКАТА: Например, ако използвате голям O нотация, а след това тя не се различават в зависимост от броя на нещата, които вече сме в опит. JASON Hirschhorn: Така че ние ще Казват, че е константно време. Това е постоянна вмъкване, и че е така, защото тази идея - кажем, че имаме една дума, която е на 45 г. или дума, която е 60, има постоянен брой. И тя просто ще бъде поставена в константно време. На практика обаче, това не би било Очевидно е, че се случи в една милисекунда, например. Но бихме казали голяма O е константа за да опитате. И това е един от неговите най-големите предимства. Какво ще кажете за вмъкване в списък за връзка? Само генеричен, сортиран връзка? Да. ПУБЛИКАТА: Имах въпрос. На теста, ще те някога ни е да зададете вмъкване на време, че е четири стъпки, или нещо друго? Или това е просто - когато ти казват време вмъкване е едно, това просто означава, константно време? JASON Hirschhorn: Да, те биха винаги питам, той е голям O на п? Big O на лог н? N квадрат постоянна. Това са наистина единственият такива, които трябва да знаете. Какво ще кажете за поставяне върху сортирано списък връзка? ПУБЛИКАТА: Имах въпрос - въпрос - JASON Hirschhorn: Какъв е отговорът на този въпрос, все пак? ПУБЛИКАТА: Чакай, какво те питам? JASON Hirschhorn: Какво е голям O на вмъкване в списък с подредени връзка? ПУБЛИКАТА: One? Не, чакайте, Не, чакайте, п. JASON Hirschhorn: N. Освен Списъкът на връзката. И това, което е на вашия въпрос? ПУБЛИКАТА: Значи ще ти пиша о на к о или на 1, за - JASON Hirschhorn: Oh. Аз ще напиша о на един, най-вероятно. Имаше една друга структура на данните че би било добре. Tree, двоично търсене дърво. Какво е вмъкване на двоично дърво за търсене? ПУБЛИКАТА: Вход. JASON Hirschhorn: И така, какво е най-лошото случай в двоично търсене дърво? Така че, ако ние се случи да започне на 5, и на всеки брой е по-голяма от 5, тогава имаме 5, 7, 9, 11, и така нататък. В този случай, това е основно само една връзка списък, а ние трябва да поставите всички Между другото в края. Така че това е голяма O от п. Това би могло да бъде най-лошото нашия случай на двоично търсене дърво. Очевидно е, че никога няма да се конструира двоично търсене дърво с 5 в средна, знаейки, 5 ще е най-малък брой. Но тя може да бъде, ако сте като се започне от нулата. Всякакви въпроси за тази преди I преминете към друг въпрос? Това е добър въпрос. Аз ще знам голям O на - ПУБЛИКАТА: Какво ще кажете за търсене за тези четири? JASON Hirschhorn: Определено сме е търсене и сортиране. Ние направихме всички тези алгоритми, нали. Чакай, бе, че за Quiz 1? Е, която покриваше - Имахте ли вече, че въпрос на Quiz 1? Големият O време на работа на двоично търсене, вмъкване на сортиране, сортиране балон? Публика: Да. JASON Hirschhorn: Ако сте имали, че въпрос на Quiz 0, шансовете са, няма да го направиш получите същото точна въпроса за тест 1. Може би все още е добре да се знае тези. Надяваме се, трябва да знаете, GH вече. Но други логаритмични Runtimes са може би добре да се знае. Неща, които не са били обхванати от Quiz 0. Подобно на всички тези оператори на тези абстрактни типове данни. ОК, нека продължим. Този човек трябва да е доста бърз. И това е един нов език, ние не трябва всъщност кодирани в преди. Това е въпрос, офертна за кодиране в PHP. Така че помислете за PHP масив-долу. Напиши PHP и / или HTML кодове, така че тя извежда таблица с две колони с TFS имена и къщи. Никога не съм правил това и преди, този конкретен проблем. Но това трябва да бъде много добре запознат с какво си направил в проблем определила 7. Така че аз ще бъда готов да се обзаложи, ще бъде помолени да кодира нещо в PHP, че е много подобен на това, което Направих в проблем определила 7. Първо, масив не е толкова специфични. Какъв тип масив е това? ПУБЛИКАТА: асоциативен. JASON Hirschhorn: Това е асоциативен масив. И каква е разликата между асоциативен масив и обект? ПУБЛИКАТА: Един обект масив има индекс от цели числа, и асоциативен масив е индекс на низ, или нещо подобно. JASON Hirschhorn: Така масив от обекти ще имат индекси на числа, но обект има полета. Той има тези имена области като име, къща, студент. Имате ли идея? ПУБЛИКАТА: Е, асоциативен масив е в PHP, нали? И обект е в JavaScript? JASON Hirschhorn: Честно казано, няма реална разлика между двете. И двете имат струни като ключовете, и да имат основно нещо като стойност. Различни езици наричат ​​един нещо асоциативен масив, едно нещо, което един обект. Така че, честно казано, не е реално разлика, но там със сигурност е известно синтактични разлики между двете. Да. ПУБЛИКАТА: Така е обект също кодирани под качулката като хеш таблица, а след това? JASON Hirschhorn: Това, което правиш означава, кодирани под капака? ПУБЛИКАТА: Казаха ни, че асоциативен масив е технически по- хеш таблица. Така че е обект също е технически хеш таблица? JASON Hirschhorn: Аз не отивам да се отговори на този въпрос. Ще се свържем с вас по този въпрос. Но аз не мисля, че би било от на тези, които по този начин. Но, по никакъв начин, асоциативен масив и обект, като цяло, хората използват тези термини като взаимозаменяеми. В този случай, на хладно част е можете да използвате ключове. Strings като ключове, а не само прости числа. Така че аз съм бил говорим за това за известно време. Надяваме се, че някои хора имат намерила започна по този въпрос. Отиваме да пиша някакъв PHP и HTML код, така че ние се две колони маса с TFS имена и къщи. ОК, аз също бих искал глава ред на тази таблица. Така че аз отивам да получите направо в това. Отиваме да подаде, нов, и ние ще - OK. Как да започна една маса? Какво е етикет, Michael, за да започне една маса? ПУБЛИКАТА: Таблица. JASON Hirschhorn: Таблица. И ако отворите маркер, какво друго ми трябва? Аудитория: A главата? Или, аз предполагам, клас. JASON Hirschhorn: Така че, съжалявам. Да приемем, че вече съм писал doctab, HTML, всички тези неща. Но ако отворите тази таблица тагове, какво друго трябва да пиша? за валидиране на HTML? ПУБЛИКАТА: Затворете го. JASON Hirschhorn: Затворете етикет. Как да напиша тагове близък маса? ПУБЛИКАТА: Dot наклонена черта маса. JASON Hirschhorn: Slash маса, чудесно. Вероятно има смисъл да пиша и двете на тези, които заедно, защото сте се погрижили да го направя. OK, ако искам заглавен ред, как Аз пиша заглавен ред с титли? ПУБЛИКАТА: тя е по-малко от 10 часа в близост - TR, да. JASON Hirschhorn: TR? ПУБЛИКАТА: След едно и също нещо, наклонената черта, да. JASON Hirschhorn: OK, и ми даде две колони. ПУБЛИКАТА: T D? JASON Hirschhorn: OK. Искам две колони. Означава ли това да ми даде две колони? Колко колони е това? One. Така че нека да копирате и поставите този. Така че, всъщност, на теста, всичко това код че съм писал досега беше всъщност дава на вас. Но ти трябва вероятно все още знам как да го напиша. Да. ПУБЛИКАТА: Вашата къща е между двете. JASON Hirschhorn: Boom. Тя трябва да отиде точно там, нали? Добър избор. Така че отново, всичко това кодът е всъщност който ви е даден от действителното викторина. Но е забавно да го напиша, а вие Трябва да знаете как да го напиша. Така че това е мястото, където трябва да започнат свой код. Какво ни е нужно да пиша тук? Съжалявам, че трябва да променя името на този файл. Така че ние го записва в. HTML файл, не в PHP файл.. Тези неща биха означавали нищо в PHP файл.. Така че ние сме в една. HTML файл. Какво е първото нещо, Имам нужда да пиша? Искам да се въведе някакъв PHP код в HTML. ПУБЛИКАТА: PHP, като друг морков и въпросителен знак PHP, нали? JASON Hirschhorn: Great. И как мога да свърши това? Аудитория: С въпросителен знак. JASON Hirschhorn: Това е страхотно. Това е първото нещо, което ми трябва, ако искам да се въведе някакъв PHP код в тук. ПУБЛИКАТА:. Мислех, че PHP файл може да отнеме HTML. JASON Hirschhorn: Да. A. PHP файл може да отнеме известно HTML и да се покаже. Това ми беше лошо. Просто се опитвах да имитират това, което беше на теста. OK, съжалявам да ви обърка. Да, practice.HTML. Сега отиваме да се сложи някои PHP код инча Какво е на първа линия на PHP код трябва да напиша? Отивам да мине през този масив и да го направи в таблица. Да. ПУБЛИКАТА: Можете да използвате А за H линия или за линия. JASON Hirschhorn: Добре, какво искаш да се използва? ПУБЛИКАТА: Бих се използва за линия. За, и след това да направите знака за долар I е равна на 0 и запетая долар знакът, по-малко от 2. И тогава аз и запетая долар знакът, плюс плюс. JASON Hirschhorn: Как да Знаете ли, че да се използва 2? ПУБЛИКАТА: Защото имаше два асоциативни масиви в рамките на по-голям асоциативен масив. JASON Hirschhorn: Така че големият нещото не представлява асоциативен масив. Голямото нещо е просто един нормален масив. Но ти си прав, има две асоциативни масиви вътре в нашия по-голям масив. Ето защо можете да използвате два. Чувствам се неудобно, ако се приеме, че те са две, така че това, което е начин да се пишат това, без да се предположи, че те са две? ПУБЛИКАТА: [недоловим]? JASON Hirschhorn: Добре, как пишеш това? ПУБЛИКАТА: Foreach знака за долар TFS или като знак за долар TF. JASON Hirschhorn: ОК, така че за всеки TFS като TFS, аз искам да, сега отново, имате моята маса. Така че, който може да ми даде следващия ред код? ПУБЛИКАТА: Print, а след това в цитати, край скоба TR скоба, край цитат. Крайните скоби, точка и запетая. JASON Hirschhorn: OK, и Какво е това смяташ да правиш? ПУБЛИКАТА: Ще кажа, нов ред. Това ще постави таг за нов ред. JASON Hirschhorn: Точно така, това PHP, като ние говорихме по-рано - това PHP ще бъдат оценени, а след това то се случва да разпечатате до този файл маса за теглене, а след това, че HTML ще бъде оценена. Ние просто копиране на този HTML имахме тук. Да. ПУБЛИКАТА: [недоловим]? JASON Hirschhorn: Моля? Това е точно тук. Есен 2012. Не гледайте отговорите, нека да го решим заедно. Така че ние отпечатате ред от таблица. Така че, вие вероятно сте на люлка на нещата. Каква е следващата линия на код трябва да пиша? Асам, дай ми на следващия ред на код. Публика: Трябва името на TF-те години. Tf отворени скоби кавички назовем затворени скоби. JASON Hirschhorn: Дайте ми името си. Публика: Трябва да отпечатате това. [вмъкване VOICES] JASON Hirschhorn: OK, как мога да го отпечатате? [вмъкване VOICES] JASON Hirschhorn: Аз съм липсва нещо сега. Какво липсва? ПУБЛИКАТА: Имате нужда от знак за долар. JASON Hirschhorn: Какво иначе аз съм липсва? Всички сме отпечатани досега е TR. ПУБЛИКАТА: Затворете TR след него. JASON Hirschhorn: Така че ние трябва , за да затворите след TR. Който вижда какво ни липсва по линия 16? Да, Anna. ПУБЛИКАТА: Вие трябва да отворите на ТД и фигурни скоби. JASON Hirschhorn: И къде да вложим фигурни скоби? ПУБЛИКАТА: Около името на TF. JASON Hirschhorn: Харесвам това? Публика: Да. И след това затворете ТД. JASON Hirschhorn: Така ли? ПУБЛИКАТА: Имате ли нужда от двойни кавички марка в непосредствена близост до фигурните скоби? JASON Hirschhorn: Точно тук? Не, не е така. Така че това е точно така. Да. ПУБЛИКАТА: Така разликата между тази и encatenating с точки е, ако използвате точки, ще трябва да имат двойни кавички, тогава една точка, след точката - JASON Hirschhorn: Правилно. Значи казваш, че има един последен начин на писане на тази така. Какво оператора на конкатенация в JavaScript? Аудитория: A знак плюс. Забравили сте да поставите къдрава подпре гърба. JASON Hirschhorn: Great. И има още един ред на код липсва. Кой може да ми даде последния ред на код ни липсва? ПУБЛИКАТА: Just точно същото нещо, само с къща вместо име. Голям JASON Hirschhorn: Great. И си синтаксис е точно така за все неща в асоциирано масив. Така че по отношение на реалното викторина, вие сте всъщност се отказали, докато тук. Така че този код е дал. Всичко, което трябваше да се напише бяха тези четири линии и не забравяйте да затворите тага на маса. Вие, момчета, всъщност направиха всичко това и още. Да. ПУБЛИКАТА: Така че би било функционално същото, ако просто трябваше, че всички в един голям печат разговор, нали? И след това просто долепват го на, и така нататък? JASON Hirschhorn: Така ли? Публика: Да. Това просто няма да изглежда добре, ако бяхте гледам го, когато сте проверка елементът на вашия сайт, нали? JASON Hirschhorn: Съгласен съм. Ако бях натоварен тази уеб страница, щях да бъда можете да видите този PHP код, някога? Публиката: Не. JASON Hirschhorn: Не. И всъщност, аз не бих. ПУБЛИКАТА: Това не е HTML, нали? Така че може да бъде в състояние да - JASON Hirschhorn: Така че това би PHP бъдат оценени от страна на сървъра. PHP е винаги оценени от страна на сървъра, така че Вие никога не сте в състояние да видите PHP код. ПУБЛИКАТА: Но вие ще бъдете в състояние да видите резултата от отпечатъците. JASON Hirschhorn: Точно така. И честно казано не може я тури всички на линия. Тя може да го форматирате добре за вас, или може да го постави на една линия. Неясно. Но да, добра точка. ПУБЛИКАТА: Как така има без текст Отбелязването за някоя от командите за PHP? Защото си спомням, виждайки, че. JASON Hirschhorn: Защото това е . HTML файл тук на върха. Ето ти. ПУБЛИКАТА: Ако сме направили първоначалния метод с за примки, нали, ако ние Исках да получите достъп до TFS, ще можем направи TFS скоба 0 скоба, след това [Недоловим]? JASON Hirschhorn: Може би - значи казваш за на линия за, вие би направил в знак за долар TFS скоба 1 или аз, нали. Или знак за долар затворя скобата и след това квадратна скоба двойни кавички, да. OK, отлично. Имаме още един бърз милион. Седем минути, така че аз искам да отидат през този един. Това е друг пример. Сега сме съвсем друг език. Ние имаме някои HTML код. Това е вид на малки на екрана, но Искам да гледам през него наистина бързо, и може някой да ми каже, ако трябва да заредите този уеб страница, какво ще видя? Опишете всичко за тази уеб страница. Ной? Какво щях да видя? ПУБЛИКАТА: Code в предния край на Google с усещане за текст и бутона Публикувай. JASON Hirschhorn: И това, което бих казал бутона? ПУБЛИКАТА: Изпращане. О, търсене. Съжалявам. JASON Hirschhorn: Ще кажа търсене. Не забравяйте, че името. Какво да използваме за име? Това име атрибут, какво е че се използват за? [вмъкване VOICES] ПУБЛИКАТА: Това е името му за когато е кликнал? JASON Hirschhorn: Това би могло да бъде. Но какво ние обикновено виж - защо са даваме това име опашка? Защо ние виждаме, че? Да. ПУБЛИКАТА: Не, че се превърне форум на супер глобалната променлива? JASON Hirschhorn: Да, по принцип, когато тази форма ще представи, и след това, когато би това представя? Какво страница? Ной, коя страница ще представя това? ПУБЛИКАТА: Аз не съм сигурен. JASON Hirschhorn: Къде бихме могли да го намерите? Къде да намерите това, което страница го представя? Каква линия на код? ПУБЛИКАТА: действие Form. JASON Hirschhorn: Точно така. Action. Така го представя на страницата за търсене. Обратно наклонена черта търсене. Така че това е точно така. Какъв метод? ПУБЛИКАТА: Get. JASON Hirschhorn: Get. Точно така. Така че ние четем това. Това ще бъде един вид. Ти си точно така. Две неща за формата, наименованието на страница и на върха ще бъде Google. Така че тук са два въпроса трябва да да бъде в състояние да отговори за тази страница. Ако този HTML живее в този уеб сайт и потребителят въвежда бъг в този текст поле точно тук, какво ще URL потребителят се озове при подаване на формуляра? Така че ние имаме това право тук. Отивам да се върнем към тази страница, все пак. Ще напиша тази първа част. Всеки ли може да видите тук? OK, Mario, мислиш ли, че? Какво страница? ПУБЛИКАТА: търсене Обратно наклонена черта. JASON Hirschhorn: Отивам да се премести тук. OK, наклонена черта търсене въпрос марка Q е равно на бъг. Някой да има различно предложение? Да. И как ще се получи това? Е, ние сме виждали това и преди. И ти дойде с това по-рано. Ти беше прав, Ной, че действията ни казва какво страница ние ще. Ние също така знаем, какъв метод. Правим получите. И разликата между GET и пост е, че се показва в URL адреса и пост не го прави. Така че, ако аз написах пост точно там в метод, какво би било по-различно? ПУБЛИКАТА: Това би просто бъде търсене наклонена черта. JASON Hirschhorn: Това би просто да се намали търсенето. Нищо тук няма да се случи. Но тъй като това е, толкова по-URL се показва, както следва. Първо виждаме въпросителен знак и ние виждаме името и стойността. Кажете имаше едно друго текстово поле и Дадох го на името на г и аз въведете стойност, гъсеница. Какво би това сега изглежда? Имам още едно текстово поле, давам име на г и стойност на гъсеница. ПУБЛИКАТА: След бар ще имате Амперсант гъсеницата. JASON Hirschhorn: Това е не амперсанд. ПУБЛИКАТА: Или просто каквото и и символ. JASON Hirschhorn: Да, не. Ти беше прав, не съм бил прав. Това е все едно един грам. ПУБЛИКАТА: Caterpillar. R е равна на гъсеница, съжалявам. JASON Hirschhorn: Има ли не R там? ПУБЛИКАТА: Не, има. JASON Hirschhorn: Ще говорим за това след края на тренировката. Това е точно така. Така че и е вярна. И тогава може да има много от тях, и всички те ще бъдат съединявани заедно с това и. Така че това е точно така. Има и още един въпрос. Скица този HTML е DOM, като се започне с документ. Можем да го направим, че след две минути. Ние ще го направя тук. Ще се върнем към тази уеб страница. Добре, да започнем с документ. Каква е следващата? Така че, когато четете чрез - ПУБЛИКАТА: HTML. JASON Hirschhorn: HTML е следващия. Ние ще отидем етикет по етикет. Какво след HTML? ПУБЛИКАТА: Head. JASON Hirschhorn: Head. Какво става, след като главата? ПУБЛИКАТА: дял. JASON Hirschhorn: дял. И заглавието е на стойност от Google, но аз няма да пишат, че в за сега. OK, къде тялото отидете? ПУБЛИКАТА: Също така излиза на HTML. JASON Hirschhorn: Точно така. Body идва на разстояние от тук. Всички ли виждам защо това е така? Може би трябва да бъде в състояние да разбера това, твърде, дори ако не са имали тази хубава вдлъбнатина. Вдлъбнатината вид го подарява, но можете да видите, че главата маркер има е затворен, което означава, вероятно Не можем да слезем тук. Ние трябва да се върнем до каквото и да Беше точно преди главата тагове, или под това. Ние сме дори с главата маркер. И под тялото отива форма. Под форма, има два входа. OK. Това е всичко, което имам. Quiz 1 е утре. Толкова съм развълнувана за вас, момчета. Това ще бъде взрив. Ако имате - ПУБЛИКАТА: [APPLAUSE] JASON Hirschhorn: О, спрете, спрете. Но не, че се шегувам. Ако имате някакви въпроси, нали След раздел, аз ще бъда отвън. Ако имате някакви въпроси, тази вечер, Чувствайте се свободни да се обадя, електронна поща, Gchat, носител ми гълъби. Успех утре. Имате прекрасна почивка на благодарността, ако не те видя преди това. И аз ще ви видя след Деня на благодарността във вторник за нашата крайна раздел партия някога. ПУБЛИКАТА: [недоловим]. JASON Hirschhorn: Great. Добре, ще се видим следващия седмица, или две седмици. И късмет утре.