[За възпроизвеждане на музика] DAVID J Malan: Добре, добре дошъл отново. Това е CS50. Това е краят на седмицата седем. И това е края на този чистач лов от проблем определя четири че може да се припомни. След като се възстановява всички тези JPEG снимки на персонала, сте се оспорва, ако искате, да се снимам с най-много на тези хора, колкото можете. Имаме цял куп изявления през последните няколко седмици, Наистина, доста точно преди обяд днес, някои от които са тези тук, уловени тук in-- изглежда like-- Annenberg Hall в работно време, един тук в Lowell House с Ник. Тук е Ramon се хванал на телефона. Това беше по-CS50 обяд. Това беше Джейсън Skyping с по-творчески съученик, който му се обади по този начин. Ние не знаем какво е това. [Смях] DAVID J Malan: Но че си струва да гигабайт. Ето Чанг, който буквално избяга от сцената за да не бъде снимана една ден, но в крайна сметка беше заловен. Тук е Ник. Тук е Ник. Тук е Ник. И тук е Алисън по полетата. И Zamyla дори е намерен на конкуренцията бални. Така че ние ще мине през тези снимки, да разбера който е представил най- най-ранната и награда една страхотна награда, тъй като обеща в спец. И ние също ще следи за пространството, което е участвал. Няколко announcements-- така обяд е, отново, този петък в 13:15. Ако искате да се присъедините към нас, RSVP в този URL тук. Джейсън се появи отново тук от един от разделите на няколко години обратно, което се е случило да падне на Хелоуин. И наистина, той облечен като тиква съответната година. Ако гледате този раздел си от 2011 г., раздел осем, ако сте любопитни, в CS50.tv, мисля, това е годината, в която въздух му помпа работи. Ако вие гледате подобен раздел през 2012 г., вие ще видите това Джейсън много изпразнен тъй като костюмът вече не функционира, който е само да се каже този петък, ако искате искал да извая тиква с Daven и Гейб и други, RSVP на главите в cs50.harvard.edu адрес. Тя обещава да бъде много забавно. Daven, ни се казва, има издълбани тикви през целия си живот. Gabriel от Бразилия никога не е издълбана тиква за Хелоуин. Така че да има с тях, тъй като той се учи. Семинари, meanwhile-- така че вие ​​ще научите скоро за това, нашите очаквания са за окончателния проект, който по същество ще се свеждат до проектиране и изпълнение Най-всеки проект от интерес за вас, макар и подлежи на одобрение и насоки от учението си колега. Към края на семестър, ще се въведе редица на семинари, които не са задължителни класове водена от учебни сътрудници и Харвард на служители, приятели на курса в цяла колежа, на различни теми, които са допирателна към основната учебна програма, разбира се но въпреки това е приложимо, забавно и различно за потенциални крайни проекти. Така например, на първо място, ако искате да се регистрирате, главата на този URL там. И това е състав за Само през тази година в семинари. Но осъзнавам имаме десетки семинари от минали години, всички от които са свързани в менюто Семинари вариант на сайта на курса. Така че, ако си мислиш за излиза извън зоната си на комфорт или бране на някои нови умения, например, програмиране iPhone приложения с Swift, нов език от Apple или Objective-C или Android приложения или програмиране [? реплика?] крушки, или към някоя от темите тук и повече, поради проверка на страницата за регистрация. Така че ние започнахме и сключено на Понеделник търсите в HTTP. Така бързо refresher-- HTTP, HyperText Transfer Protocol. Но какво значи това наистина означава? Какво означава, че наистина означава? Е, че на ръка? Знам, че сте просто чесане главата си. Но вие искате да предложи какво HTTP е? АУДИТОРИЯ: Как компютри общуват с [недоловим]. DAVID J Malan: Изпуснах последната част. Как компютрите да комуникират with-- АУДИТОРИЯ: интернет сървъри. DAVID J Malan: Good-- с интернет сървъри, и по-специално, уеб сървъри. Тъй като отзоваване, има един куп услуги в интернет, някои от които използвате вероятно ежедневно между чат и съобщение, чат и уеб и имейл, и други подобни. И HTTP е само протокол, уеб браузъри говори, когато общуват с уеб сървъри, както и обратното. И аналог в човешки свят може да бъде, Отправям ръката ми, за да се разклаща някои друг човек и той или тя признава чрез разширяване си или ръката си, както добре. Така че това е просто един протокол, набор от конвенции. И това, което наистина са тези конвенции? Е, това просто се свежда до изпращане на съобщения назад и напред, както е показано тук. И има няколко начина, по които можете да изпращате тези съобщения. И може би най- Обща е известен като получите. И ние ще видим контраст за това, преди дълго време. Но заявка получите от браузъра със сървъра просто изглежда по този начин. Това е един куп текст, който го поставя вътре на виртуален пакет. От външната страна на този пакет отида няколко парчета на информация. Какво трябва да отиде на плик, така да се каже, за да получите искане като това от мен за уеб сървър? Да. АУДИТОРИЯ: Вашият IP адрес. DAVID J Malan: My IP адрес в полето От, така да се каже, и разбира се, IP адрес на получателя. Но в случай на уеб пакет, ние се нуждаем от малко по-подробно Това не е достатъчно просто да се изпрати плик към сървър, защото този сървър може да бъде слушане на различни видове на интернет трафик. Така че какво друго имаме нужда освен IP на получателя? Така ли? АУДИТОРИЯ: Е то TCP? DAVID J Malan: Добре. TCP-- АУДИТОРИЯ: Адрес. DAVID J Malan: Адрес, или пристанище, както се нарича. Близо, но номерът на TCP порт. И има един куп от тях. Но със сигурност най- запознат трябва в крайна сметка е 80, което е по подразбиране което се използва за уеб трафик. И още един познат един скоро ще бъде 443, който се използва за сигурен интернет трафик, URL адреси, които започват с HTTPS. Така че това е, което се случва вътре в този пакет. И се получи / просто означава, даде ми уеб страница по подразбиране. Дай ми корена на твърдия шофиране на този уеб сървър. И се надяваме, че в интернет сървъра ще отговори с ОК и броя 200, което е просто конвенция казва, да, всички наистина е OK. Ето страницата. Видът на уеб страницата ще се се текст, но по-специално, HTML, които ние сме на път да се потопите обратно в. И точка точка точка, просто средства, тук е HTML. И това е мястото, където ние вземете историята днес всъщност писмено HTML, HyperText Markup Language, което е езикът, на който уеб страници са написани. Това не е език за програмиране. Няма по функции или примки или условия. Това е език за маркиране, както и отново виждаме днес, който ви позволява да определите как да се структурира и стилизирам естетически уеб страница. Така че това е един и само на страницата, което наистина погледна, ако за кратко в понеделник. И забележите няколко характерните особености. Има много отворен ъгъл скоба и близо ъглова скоба. Между тези, ъглова скоби са думи. И ние отиваме, за да започнете призовава тези думи тагове. Така отворена скоба главата и затворена скоба главата са отворени и затворени тагове, или начални и крайни тагове съответно, на HTML елемент, както ще го наричаме, наречена глава. И прилага същото жаргон към тялото на HTML и така нататък. И това, което е хубаво е HTML-- и наистина, ние ще прекарват ужасно малко време върху него, защото вие ще най-вече просто разбера това, което той предлага е, когато всъщност има конкретен проблем да solve-- ще откриете, че браузър е доста тъпо. Това е просто ще do-- не за разлика от на computer-- каквото му казвате да прави. И така, когато имате отворен скоба HTML най-отгоре там, че по същество просто означава, хей, браузър, тук идва една уеб страница, написани на HTML. Когато го вижда отворена скоба главата, че просто означава, хей, браузър, тук идва на главата, или най-горната част на моята уеб страница. Когато го вижда затворена скоба главата, че просто означава, хей, че става дума за главата. Готовност за нещо друго. И това нещо е очевидно ще бъде на тялото. И когато не разполагате с маркер, като имате само здравей, запетая, свят, това е просто щеше да бъде сурова текст в крайна сметка се появява на екрана. Сега, вие ще забележите, твърде вдлъбнатината тук. Вероятно можете да заключим, как ние сме го stylizing. Всеки път, когато отворите маркер, така да се каже, аз отстъп. И всеки път, когато затворите етикет, аз не-тире, подобни по дух на фигурни скоби. И след това, аз съм един вид за използване на моята преценка. Забележете, че аз не си направих труда да удря Въведете вътре на това заглавие маркер. Защо? Ами, аз просто реших, че изглеждаше малко по-чисти ми, човекът, просто не се притеснява да направим това. Така че, отново, има някои решение изисква само като има в C или всеки език. Но забележете също, че ако тази вдлъбнатина се поддава на мисловен модел, да не прекалите го усложняват. Но едно дърво, нали? Ако мислите, че на уеб страница, очевидно написана по този начин, като добре разчленена по този начин, Почти можеш да се сетиш на отворения скоба HTML затворена скоба таг разграничаване основата на една възлова точка, родословно дърво стил възел в стила на дърветата разгледахме миналия петък. И наистина, ние имаме на правото тук това, което ние ще наричаме DOM, D-O-M, документ обектен модел, един луксозен начин на казвайки: едно дърво, което представлява, че HTML. И забележете, че HTML е, ние ще кажем, като родословно дърво, с две деца. В ляво е на главата. От дясно е тяло. И точно като безсмислено упражнение мисъл, главата, разбира се, има, колко деца съгласно тази структура? Така че, само един, title-- и това е защо ние имаме стрелката става от главата до титлата. Така че това е все едно, че човек в родословно дърво имаше само едно поколение. И тогава самата титла може се казва, че имат дете също. Спомнете си, че HTML е имал Здравейте, запетая, свят под него. И аз просто го изготвя в рамките на овална вместо правоъгълник просто да предадат семантично, че въпреки че това е един възел в дървото, така да се каже, Това е нещо коренно различно. Това не е етикет. Или по-точно, не е елемент. Това е просто един текстов възел, ако щете. Но те са напълно произволни човешки конвенции. Това е само сега моят начин на представляващ какво ще като съвкупност обадете се на документ. И като настрана, нещо, което най- супер горния ъгъл лява ръка, отворена скоба удивителен знак док тип HTML, това изглежда като маркер, но това е глупаво случай ъгъл, където това е само там, копирани и поставили да се посочат браузъри това е HTML версия 5. Светът продължава да се променя това, което на първа линия на код в страницата трябва да бъде. Това просто означава, версия 5. Така че това не съвсем прилича на останалите. Добре, така че с това каза, сега ще оцените това сравнително тази глупава татуировка някой е получил. [Смях] DAVID J Malan: Добре, а сега нека действително гмуркане в това нещо с това. Ще припомним, че за последен път Отворих на CS50 Appliance и аз направих нещо като просто отваряне на текстовия редактор. И аз спасих файла дори ми desktop-- никъде special-- като hello.html. Така че позволете ми да направя това again-- hello.html Enter. И сега, в този файл, аз ще давай напред и да се възпроизведе това, което току-що saw-- док тип HTML Тогава аз отивам да направя отворена скоба HTML затворена скоба. И тогава аз ще изпреварващо отваряне и затваряне на тага. Защо? Точно затова не забравяйте по-късно. Това е просто добра практика, както и отваряне и затваряне на фигурни скоби всички наведнъж. И тогава какво ще последва? Можете да мислите за татуировката. АУДИТОРИЯ: Главата. DAVID J Malan: Главата. И след това тук, I имал титлата, мисля. И заглавието е произволно, Здравей, свят близо заглавие. И след това тук, на тялото, на course-- тогава ние затваряме тялото маркер. И след това просто малко досадно, Имах същото нещо тук. Така че аз твърдя, че това е уеб страница. Това е нещо, което сега може да живее в интернет, въпреки че, разбира се, това е буквално живеещи на компютъра си точно сега. Но наистина, ако минимизирам Gedit, Ще видя на моя десктоп неговата икона. Въпреки че това е уреда можете да направите това на Mac OS без TextEdit или Windows с Notepad дори. И ако отида напред и да кликнете два пъти че дори и изберете-- добре, нека Не избирайте това, защото Chrome не се отваря. Да вървим напред и да отворите Chrome. И след това направи Command-O за отворен И отидете на компютъра си и да отвори този файл. Ето как браузър интерпретира HTML, отгоре до долу, от ляво на дясно. Хей, тук е браузър HTML. Ето главата. Ето титлата. Ето тялото. И наистина, това е как това прави тази уеб страница. Но забележете адреса. Никой от вас не може да тегли до този специфичен страница за вашите лаптопи точно сега, дори вътре си уред, чрез който URL, защото файл: // показва, че тя е всъщност на моя файлова система, моя твърд диск, не е твоя. Така че това не е всичко, което полезно. Нека сега се движи към използване на действителната уеб сървър. И се оказва, че на CS50 Appliance е повече от просто една среда, в която можете да напишете C код и съставяне и да го ползвате като сте били прави. Тя също е била конфигурирана от персонал, който да представлява типичен уеб сървър, който е на интернет, един, който може да плати за или този, който е в така наречената облака. И той се движи стандарт безплатен отворен код софтуер, например, нещо наречена Apache, който е може би все още е най-популярната интернет сървърен софтуер в света че хиляди уеб сайтове използват днес. И тя също има дори софтуер като MySQL, който е на сървъра на базата данни че ние в крайна сметка ще стигнем до, който е само да се каже Мога да започна лечение ми уред като пълноправен сървър че аз не плащам за другаде. Той просто живее на моя собствен лаптоп за развитие и удобство цели. Така че нека да вървим напред и да да се възползва от това. Аз ще отида напред и да отваряне на прозорец на терминала. И аз ще отида напред и да move-- всъщност, първо аз съм Ще отидете на компютъра си. Ако го направя ли, има hello.html. И аз ще отида напред и да започнете да използвате нова директория ние сме не е използван преди днес. hello.html-- Отивам да се движат да ../vhosts за виртуална hosts-- повече за това в future-- и след това в директория, наречена Localhost, което е псевдоним дава почти всеки компютър, независимо дали е Mac, PC, или Linux компютър, а след това специално в директория, че ние, персонала вече е създадена за вас, когато сте изтеглили уреда, наречен публично. И тъй като името му подсказва, нищо Сложих в тази папка, на теория, ще бъде сега публично, поне на хората които имат пряко свързване към компютъра ми. Така че сега ме пусна напред и направя CD към същата директория за да мога да видя какво е става и тип LS. И наистина, това е Единственото нещо там. Аз твърдя, че сега, защото сложих този подаде hello.html вътре в директорията нарича обществен вътре в директорията наречен Localhost вътре директория наречени vhosts, които благодарение на персонал CS50 е предварително конфигуриран да бъде корена на вашия уеб сървър, Сега може да се надяваме да направите това. Отивам да се отвори нов раздел. И аз ще отида да не се подаде: //. Отивам да се използва действителната HTTP / Localhost, което отново, е псевдоним за моя собствен сървър. И тогава аз ще отида с това, което името на файла, само за да бъде ясно? Къде е тази история вероятно отиваш? hello.html. Така че с други думи, искам да сега това е моя компютър, моя собствен уред, като че ли е действително сървър. Неговият псевдоним е Localhost. Но мисля, че на Localhost както като Facebook.com google.com, независимо. Това е просто моята местна име. И след това на финала, което искам е в корен на твърдия диск, така да се каже, или на основата на уеб сървъра, Ergo наклонената черта и след това на hello.html името на файла. Позволете ми да намалите и натиснете Enter. И наистина, сега е моята уеб страница. Така че това е малко по-различна. И това е точно както underwhelming. Това е старата версия. Позволете ми да се свие на шрифта назад. Това е най-старата. Това е новото. Но това, което е фундаментално случва сега е, че HTTP се използва. Нека да направим това малко по-ясно или, ако щете, малко по-сложно. Позволете ми да отида до долния десен ъгъл ъгъл на моя уред. И забележете, че всичко това време, е имало редица. Това е уникален адрес на вашия CS50 техника. Това е частен адрес, като подразбиращи се от 172,16, което просто означава само да ви физически да получите достъп до този уеб сървър. Всичко е защитна стена и добре защитен от останалите на света поради това адресиране. И сега забележи, макар че ако отида в този адрес, а не в моя уред, но в Mac OS-- Отивам да се върна тук. Това е моят Mac сега. И сега аз отивам да се отворят тази версия на Chrome тук. И аз ще отида да HTTP: //172.16.25 / И аз да забравя rest-- 133. Така че аз отивам да посетите от моя Mac че IP адрес /hello.html Enter. И сега виждам от моя Mac че моята CS50 техника, който е IP адрес е, че номер, е наистина държи като уеб сървър в интернет. Тя не разполага с хубав лесен за помня име като Facebook.com, но това е с помощта на HTTP Очевидно, въпреки че Chrome е вид опростяване на света за нас, но не ни показва HTTP. Но това наистина е точно това. Chrome е просто пестене клавиши тези дни. И това е, което виждаме сега. Така че всичко е наред и добра. Но това е доста underwhelming страница. Позволете ми да отида и да направя нещо малко по-различно сега. Така че нека да се върнем към текстовия редактор. И вместо здравей, свят, нека да поставим изображение. И твърди, от before-- ме пусна в Localhost директорията ми публично. И нека да вървим напред и да копирате цял куп файлове от днес от моя Dropbox папка в тук. Сега, ако ми напишете ли, погледни на всички тези файлове че съм разпределен от уебсайт курс в аванс от днес една от които е все още hello.html. Така че там е, че един. И припомни тази глупава един от миналата time-- cat.jpg. Така че нека да се опитаме да вградите cat.jpg вътре в моята уеб страница. Отивам да вървим напред и да направим cat.jpg, спаси. Нека се върнем към Chrome. И нека да увеличите шрифта и сега се презареди. Ами сега, когато го сложа? Standby-- аз все още имам старите версия от компютъра си отворен. Така че позволете ми да отида в моя vhost ми Localhost, обществения ми и hello.html. Така че сега ме пусна напред и казват cat.jpg вътрешността на тялото мястото, където искам да бъде Показва и презареди. Разбира се, това не е вярно. Така че аз трябва да се каже на браузъра малко по-съзнателно това, което искам да направя. Просто напишете името е очевидно не е достатъчно. Така се припомни, че е имало и друг етикет, изображение, IMG за кратко. Това е просто, защото хората не харесвам тип пълни думи. И тогава можем да направим източник = "cat.jpg". И сега аз отивам да правя едно нещо различно тук. Въпреки че всички нашите етикети до този момент имат имал тази идея на с начален маркер и краен маркер, че всъщност не правят чувство за изображение, нали? Изображението е или има или няма. И така, хората са дошли с по-проста конвенция. Когато имате маркер, който може едновременно започне и да завърши в една и съща time-- тя може да бъде празен, така че да speak-- просто постави наклонената черта вътре на маркера в самия край. Сега нека се върнем към моя браузър. Хит Reload дяволите, нещо не е наред. Вие вероятно сте виждали от време на време в интернет, дори ако не е било по твоя вина. Вината на уеб сървъра. Какво оди това изглежда да се посочи? Това е счупен. Това е мястото, където изображението принадлежи. Така ли? АУДИТОРИЯ: Но това не е така имат достъп до изображението. DAVID J Malan: Това не прави имат достъп до изображението. Това, или още по-лошо, може би той дори не съществува. Да видим дали не можем да диагностицират това. Спомнете си от миналия път, че ако в Chrome, в уреда, или дори на вашия Mac или PC, отидете в менюто за разработчици и отидете на Инструменти за разработчици вариант, който най-вероятно вие сте не се използва много или някога. И ако отида в мрежа и се презарежда страницата, нека действително изглежда по HTTP искания, които са били направени. Прилича hello.html е Наистина OK, следователно 200. Но cat.jpg е 403. Така че това не е 404. Файла вероятно съществува. 403 означава забранено. Така че това е малко объркващо. Отивам да се върне да ми терминален прозорец. Позволете ми да увеличите до тук. И позволете ми да направя един LS. Има същите тези файлове. Сега нека направим LS-л, които вероятно сте използва преди да погледнете файла размери може би или времеви отпечатъци. И ние виждаме цял куп преобладаващото информация. Но забележете няколко подробности. Ето hello.html в тази ред тук и тук е cat.jpg. И това е само на уреда е удобен за потребителя чрез подчертаване на JPEG в лилаво по този начин. Но какво друго се различава до размера на файла и името на файла? АУДИТОРИЯ: [недоловим]. DAVID J Malan: Да, има още два R е тук. Забележете какво hello.html е става. Така се оказва, че името на тази директория публично е важно. Всичко в тази директория е трябвало да бъде публично. Но това не е достатъчно само за да пускате файлове там. Вие също трябва да се промени начина на файловете, промените разрешенията на файла активно не е настройката по подразбиране, което е, че само мога да чета и да го пиша, аз като собственик. Искам целия свят, всеки да да бъде в състояние да прочете досието ми, така да се каже. Прочетете просто означава да го видите. И наистина, както ще видите в проблем определя седем, това е какво означават тези R е. Означават тези две R нека всеки другаде по света да го прочете, особено сега, тя е в тази директория. Така че най-простият начин да се определи това е да отидете на моя бързо и направи коригират за промяна режим и след това направете едно + R, напълно, всички, всички, както и R за четене, и след това cat.jpg Enter. Сякаш нищо не може да се случи, което обикновено означава нещо добро. Така че LS-л again-- сега нека погледнем cat.jpg. И това разрешение изглежда да са се променили. Като настрана, ако направите грешка и вие, например, що направи your-- Не know-- есе публично достъпен от злополука, можете да направите обратното, CHMOD а-R. Макар че, честно казано, не би трябвало да бъде в публичен указател така или иначе, ако това е грижа. Така че, сега нека се върнем към браузъра си и презареждане. И аз отивам да кликнете малко ловците на духове символ, за да изчистите тази част от екран, така можем да видим нови искания. И наистина, тук е Сърдитко Cat от преди. Но по-важното е, технически, има броя 200, което означава, че имам това OK. Добре, така че всичко е наред и добра. Но ние не правим най-доброто от интернет страници, нито ние ще се опитаме твърде трудно да се направи луксозните сайтове днес. Но нека поне да направим нещо супер запознати преди тракащ разстояние на няколко други маркери. Така че предполагам, аз не просто искам котка тук. Да предположим, че аз всъщност искам това котка да се свърже с нещо. Бих могъл, например направи нещо подобно. а за котва HREF за хипер препратка equals-- и нека да направим нещо като www.google.com близо цитирам близо скоба. И сега търси за котки. Close котва маркер. Така че това е само един вид на принципно нова подробност. Маркерът разбира се, е различен. Това е име на котва HREF или хипер справка. Но по-важното е, че този синтактичен елемент тук. Това е, което ние ще започнем да се обадите не етикет, но атрибут. И атрибут е нещо, което променя поведението на маркер. И този атрибут, HREF, средства промяна на поведението на тази котва така че, когато е кликнал, той отива при този URL тук. И разбира се, че URL е Google. В същото време, какво е това текст Тук щеше да бъде? Е, това ще бъде това, което човек всъщност вижда като подчертаните връзка, толкова просто като това. Така че нека се опитаме това. Нека да го спаси. Аз съм все още в hello.html. Но във версиите онлайн, ще видите действителните имена на файлове ние предварително подготвени. Нека да вървим напред и да се презареди. И сега това е много underwhelming страница все още. Но ако мишката върху there-- и това е малко по-малък, but-- можете да видите в дъното ляв ъгъл на екрана, това е наистина ще google.com. И ако щракнете, че тя ще размахване ми начин на действителното Google. Но забележете тук възможност за експлоатация, както и настрана. И ние ще се върнем към други въпросите на сигурността преди дълго. Защото там е тази дихотомия между това къде да отидете и какво да кажа, бихте могли да направите нещо подобно this-- http://www.google.com. OK, и сега, ако аз се презареди след като запазите тази страница, тя изглежда като аз отивам да отиде в Google. Но няма причина трябва да отидете на Google, нали? Всъщност аз да отида в нещо като badguy.com, презаредите страницата тук. И известие, тя все още изглежда като Google. И само ако съм рязък достатъчно, за да мишката върху тук виждам, че е дори ще отида на друго място. Така че, ако някога сте придобили имейл, особено един от Paypal, или Изглежда от Paypal ви питам, за да влезете в в профила си, този Ето защо никога не трябва да някога кликнете връзки в имейли, честно казано, всички връзки в имейли. Ако знаете, че имате действителната парите в Paypal или банка на Америка или Fidelity или всеки уебсайт, ръчно да го въведете вътре. Тъй като гледам колко лесно е да се подвежда някого в представянето какво прилича на връзка. Но всъщност може отида абсолютно навсякъде. И там е много по-голяма заплахи от това. В действителност, това е малко по- на допирателната сега, но един от най-добрите, които съм виждал който оттогава е затворен, е някой доведе хора to-- така че това може да се каже, кликнете тук, за да влезете в сметка, банкова сметка. И това е банка на Запада. Така че някой е купил това. И това е малко по-лесно да се види то с шрифт моно разположени увеличени при един 30-метров проектор. Но когато става дума за малки шрифта в имейл, че сте получаване, това прилича bankofthewest.com, не bankofthevvest.com, които някой е платил $ 10 купи. И след това да ги доведе до еквивалент на някои лоши уебсайт. И вие ще видите too-- всъщност можем да направим this-- ако отида до истинския сайт, bankofthewest.com, отново, изземване от последния път че ако това е тяхната уеб страница и сте любопитни за това как тя работи, вие със сигурност може да отидете Инструменти за разработчици на Chrome. И вие можете да видите всички HTML добре форматиран там. Но по-важно, можете cam-- нека затворите this-- можете да отидете в екрана Developer View Source. Защо не мога просто да копирате всичко това И тогава аз може да отиде в моя малък прозорец Gedit тук и да направя моя собствена интернет страница. Запази това в hello.html. И най-вероятно това ще се счупи, защото това не е толкова лесно обикновено. Но сега, ако аз презареди моя собствена страница в моята собствена CS50 техника и удари презареждане, ОК, някои неща се счупи. Но аз съм доста близо до с моята собствена банкова сайт, нали? Всичко това HTML-- [Смях] DAVID J Malan: --I не actually-- и знаят, че има някой там, който всъщност ще кликнете на тези връзки също. Затова е ясно, някои неща се счупи. Но това ще доведе ни в дискусия, ненужно точно сега, тъй като това, което CSS, Cascading Style Sheets, са, и как в действителност изтеглите останалите HTML файлове и JPEG файлове GIF файлове, които уебсайта може да използвате. Но всичко това е постижим. Но тя наистина се свежда до тези много прости евристики. Така че сега нека просто обезмаслено чрез няколко други примери на HTML само за да ви даде усещане на какво друго можеш да направиш. Например, това е list.html. Да предположим, че аз исках да направите уеб страница със списък на къщи в каре. I може да се използва тага ул за неподреден списък и след това детето елемент от списъка и след това обхождане over-- или списък, rather-- къщите под въпрос. И ако мога да отворя тази на, нека да направим това. Да вървим да не hello.html, но да list.html. Дявол да го вземе. Как мога да поправя това? Това е един и същ въпрос, както и преди, нали? Така че позволете ми да направя chmod-- oops-- коригират с + R на list.html. И сега, ако се върна в моя браузър и кликнете Reload, то е там. Така че, ако някога сте искали да направите списък с водещи символи, можете да направите това. Ако искате да сте в супер луксозен и направи подреден списък, не неподреден списък, променят тези за ол, презаредете страницата и Сега браузърът ще го номер за вас. Какво друго можем да направим? Е, няколко others-- ако имаш дълги точки на text-- Например, някои Латинска текст като this-- и вие го искате в отделни параграфи, отворен р, в близост р за таг параграф. И да го направи отново и отново. И ако сега се отвори този файл, paragraphs.html, добре, това става досадно. Така че сега, нека просто да се върна в моята бързи, CHMOD на + R R звезда .html-- един хубав малък жокер, така да се каже. Тя трябва да определи всички тези проблеми за мен. Нека да се презареди. Има три параграфа. А сега да вървим напред и да се отворят един към друг. Какво ще кажете за маса? Ще забележите, трапезни вид малко по-сложна. Но това е една и съща idea-- отворен таг, отворен край, отворена, открита, отворена, в близост маркер, отворете маркер. И това се случи да престои маса, чиято граница е очевидно ще бъде с дебелина 1-- каквото че means-- табличен ред, маса данни, което означава клетка. И ако се върнем към браузъра си тук и отидете на table.html, можете да видите нещо като това отвратително. Но ние ще стигнем до точката където можем действително да направим нещата по-хубава от тази. Така че нека да предвидят за сега. Има гроздовете на още маркери. И HTML Чудесно е да вдигнеш защото, честно казано, всичко, което трябва да направите, се разгледа съществуващите уеб страници с които сте запознати. И вие сте като, о, това е начина, те направиха това естетически. Или можете да търсите всички онлайн ресурс за това как работи HTML, и ще видите, че има целия речник на други етикети. Но с прост мисловен модел не говорим, че почти всеки таг отворите трябва да бъде затворен, той наистина е достатъчен, за да научи себе си HTML след разбере тези основни идеи на тагове и атрибути и добре formedness че сме говорили за, затваряне на всичко, което бихме могли да отворите така че да не се обърка браузър. Затова нека сега да вземе това, за да по-интересно ниво като отидете на действителното. И нека да отидем да ми Mac тук, за да google.com. И сега notice-- нека да направим това. Аз съм Гонг да отидете Настройки, Настройки за търсене. Искам да изключите този досаден миг Резултати от нещо, където той веднага започва да реагира, за да си пишете. Нека да направим това по-стари училище, така ние действително да видим какво се случва. Така че аз отивам да спася Настройки на Google тук. И сега notice-- Отивам да търси за нещо като котки. И тя все още прави автоматично пълно тук, но въз основа на нещата хората са написали в миналото. Но забележете какво ще се случи. В URL в момента е това, просто google.com. И технически, това е черта. Google е просто пестене характер и не ни се, че се показват. Те са ни показва HTTPS, само да бъде супер успокояващо, че ние сме по-сигурно или криптирана страница. Така че нека да вървим напред и да търсите за котки. Сега това стана много преобладаващото бързо. Вижте дължината на този URL. Но се оказва, че повечето от тези неща в URL адреса всъщност е доста безполезно. Отивам да започне изтриването неща, които не разбирам. Виждам котки. Разбирам котки. Аз не знам защо котките са там отново. Аз наистина не знам какво тази глупост е. Така че аз съм просто ще се запази подчертаване и изтриване неща че аз не разбирам, дестилиране на адреса и в точно това. Сега нека да въведете отново. Тя изглежда като Google продължава да работи. Така че по някаква причина, те са добавяне на много неща, които да по подразбиране си URL е. Но това не е строго необходимо. Така че това, което е хубаво за това? Е, нека да вървим напред и да отвори инспектор на Chrome. Там е малко по-бърз достъп на мишката за него. Отидете в раздела Network. А сега нека да се презареди тази страница още веднъж. И аз държа Shift. Като настрана, браузъри са склонни да кешира или да запишете информация само заради ефективността си. Но обикновено, държейки Shift и презареждане ще накара всичко да започнем отначало от самото начало. И това е, което искам да направя тук. И забележи всички тези редове, които просто се появяват. Оказва се, че в дадена уеб страница, може да има само един файл involved-- hello.html-- или има може да е 52, като в този случай. Когато посетите google.com, очевидно, моя браузър започва 52 отделни искания HTTP. Защо е това? Е, да видим какво има вътре на тази уеб страница на върха. Там не е само текст, но има реални снимки на котки над надясно. Има цветен лого тук в ляво. Има всички тези икони за микрофон и така нататък. Има много парчета, изграждане блокове, скреч парчета, ако щете, тази уеб страница. И какво браузъра прави при получаване на първия файл, който е този ред тук, тя е по същество итерации над HTML върха надолу, отляво надясно, търсейки неща като графични тагове или други тагове които се споменават други файлове и когато той ги вижда, отива и ги извлича чрез HTTP, жизнеспособна цяло плик метафора, и след това ги показва в подходящо място в уеб страницата. Но забележете тук, ако аз се съсредоточи върху първите котки хвърлят, търсене, забележите, че наистина това е с помощта на HTTP 1.1. И за съжаление, Google Chrome точно сега във версия 39 е вид профанизация нещата и не ни показва действителните заглавията. Но това, което наистина е пратил, е искане не наклонена черта, но / търсене? Q = котки. Сега, защо е важно? Е, аз отивам да се направи извод, от това, че ако Google поддържа запитвания на тази форма, защо не мога да внедря моя собствен търсене двигател за CS50, но само отпред край, просто графичен потребителски интерфейс. И ние ще изнесат задния край, реалното търсене води до Google. И така, как мога да направя това? Е, нека да отидат в Gedit тук. И нека да вървим напред и да се отвори до, да речем, на нов файл. И аз отивам да запазите този временно като търсене-0.html. И след това в крайна сметка, ние ще бързо напред на онова, което предварително подготвени. И аз отивам да бързо привличам вид док HTML отворена скоба HTML близо скоба HTML. Тогава аз ще направя главата близо главата отворена заглавие CS50 Търсене вместо търсене Google. Първа тук Отивам да има тялото, тук близо тялото. И сега имам нужда CS50 Search. И всъщност, нека изграждане на тази постепенно. Аз ще отида напред и да затвори тази и всъщност го сложи в моята публична директория. Така че, дайте ми само един момент. търсене-0.html-- Отивам да временно го наричат ​​search.html. Отивам да го коригирате с + R search.html. И сега аз отивам да го отворите. Добре, така че това беше бързо. Но целта просто е за нас да стигнем до точката да има този текст файл, наречен search.html. Така че не е много да погледнете още. Всъщност, ако отида да ми браузър и отидете search.html, че е всичко. Но знаете ли какво? Аз мога да бъда малко по-сложен. Четох в една книга, че има маркер заглавие нарича h1. И аз ще отида напред и да използвате, които се отварят и затварят h1 h1. Презареждане на страницата. И сега тя е по-голям и по-смели, не всички, че интересно, но поне структурно по-интересно. Но сега нека представим друг маркер. Оказва се, че има форма маркер. И нека да затворите този етикет. И се оказва, че има вход маркер, който има атрибут наречен тип, което е типа данни на областта, ако щете. И ще бъде от тип текст. И нейната стойност ще да CS50 Search. Close маркер. И там ще бъде не по идея на отваряне и затваряне с отделни етикети. Позволете ми да се върна тук и да видим какво се случва, се презареди. Първи интересно. Тя изглежда като че ли е текстово поле. И всъщност, аз не исках да сложите стойност все още. Позволете ми да се върна тук и да се получи в действителност отърви от тази стойност да го прости. Вместо на стойност, това, което исках за да се получи това нещо беше едно име. И аз не знам какво е, така че аз ще се върна към това. Но под това, което искам да се направи тип вход = представи. И тази стойност ще бъде CS50 Search. И ние ще видим защо премества стойността на това. Когато се презареди, аз като че ли сега имаме началото на моето собствено търсене двигател, супер отвратителен, въпреки че, честно казано, това е не е далеч от това, което хвърляне Страница по подразбиране Google прилича. Ако отида тук, сега, аз мога да напишете котки и се надяваме, щракнете върху Търсене. Но аз не съм съвсем направено още, защото не са изпълнени, Очевидно е, че базата данни. Не съм изпълзял на Мрежата за резултати от търсене. Така че аз трябва да се изнесат, че за Google. И така, как мога да направя това? Ами, на първо място съм трябва да се добави и действие приписват на моята форма маркер, който е http://www.google.com/search. И аз знам, че само от това да имат заключи, като погледнете отблизо по тяхно URL на. И сега да предполагам. Какво трябва този текст поле вероятно да се нарече, според това, къде стигнахме от преди? АУДИТОРИЯ: р. DAVID J Malan: р. И ние всъщност не се нуждаете въпрос марка се оказва, но Q е наистина, Q за заявка вероятно от подразбиране, просто защото това е какво Лари и Сергей дойде с преди години. Така че сега нека презаредите тази страница. Той не изглежда по-различно. Но сега гледай какво ще стане. Ако напишете в котки и кликване CS50 Търсене и да отида, забележите, че се набързо разстояние до действителното Google. Сега, Google е, че е малко досадно това, че те са добавяне на допълнителен параметър, ако щете, на URL. Това е всичко, което се случва автоматично на Google страна. Най-важното е, че аз като че ли да се генерира тази заявка тук. И наистина, това е, което се случва. Когато имате HTML че изглежда така, това е нещо като уеб разработчици нотация да се казва, давай напред и да се създаде форма че когато тя е представена, това ще отидете на този URL. И когато на адреса е предоставила стойности за неща като Q, не отиват само за този URL. Всъщност, преминете към въпрос марка и след това р = котки. Добавяне на параметър, HTTP параметър подобно. И само за да бъде супер точни, какво се заключи here-- но аз ще бъда по-explicit-- е че методът Искам да използвам е получи, вместо нещо подобно пост, който в крайна сметка ще видим. Така че по-кратко, просто от разбиране HTML и използване на някои доста прости тагове Сега можем да започнем да се създаде нашата собствена пред крайния потребител интерфейс с търсене двигател зад него. Но това, разбира се, е доста отвратителен. Така че нека всъщност отвори малко по-добър вариант. Това е тази, която получава в предварително, че има някои забележки. Но вие ще видите, че аз почти я пресъздава. Така че това вече е достъпен онлайн. И аз се случи да изпреварващо отидете на HTTPS само за да го прости. А сега нека да отворим следващата итерация на това. Е версия 1 вместо 0. Какво скача при вас като малко различен в този пример? АУДИТОРИЯ: [недоловим]. Да, там е този текст подравняване център. Това е малко странно тук. Но това е наистина ново. И може би предполагам какво ще се случи. Ако отида с моя браузър сега и посещение на търсене-1.html, то е почти едно и също нещо. Но това е една стъпка по-близо до е малко по-красива. Тя все още е грозна, но по-хубава с това, че поне сега всичко е центрирано. Така се оказва, че това, което аз съм с помощта е друг език съвсем нарича CSS, Cascading Style Sheets. И CSS, честно казано, е един вид на, по мое лично мнение, един отвратително проектиран език. Това е много досадно да се помни, всички различни подробности. Но това е, което stylizes на цялата световна мрежа днес. Аз обидил някого. Добре. Така че нека да се върнем тук и да видим как ние всъщност използването на този. И се оказва, че най-малко е всъщност е доста прост език. Тя е само на двойки ключови стойности, свойства и ценности, качества и ценности. Всъщност, тук е един такова имущество и стойност. Просто с помощта на стила атрибут на моя маркер тяло и придават стойност на Думата на дебелото черво и друга дума, или имущество на стойност, I може да повлияе на естетиката на уеб страницата, не непременно още структурата, но естетиката на него. И само чрез Googling наоколо, аз осъзнавам, че CSS, Cascading Style Sheets, поддържа свойство текст подравняване, чиято стойност може да се наляво, надясно, или център, например. Така че сега, когато се презарежда тази страница, това, което се получи е центриран страница но все още е доста грозна. Да вървим напред и да се отвори до версия 2 на Search. И сега забележи съм направил малко повече. Забележете, че тук вътре в главата маркер, не може да има повече от заглавието. В действителност, има етикет стил. И това е мястото, където тя ще става все по- малко разхвърлян виждане CSS понякога. Забележете, че аз като че ли да има нещо че структурно изглежда много по-различно. Но тук е името на тага Искам да стилизира. Тук са нашите стари приятели къдрава скоби и затворена фигурна скоба. И след това тук е, че собственост и нейната стойност. Ако заредите този файл, search2.html, Крайният резултат е идентичен. Но това е стъпка към по-добър дизайн. Чрез факторинг този CSS, аз съм Не го смесват с моя HTML. И наистина, както ще видим, можех повторно използване на тези имоти и ценности. Ако исках да направя букети части на моята уеб страница, центрирано, Не е нужно да въведете стил = текст-приравни център по цялото място. Мога да сложа на едно място Може би искал нагоре към върха. Но дори и това не е най-добрия дизайн. В действителност, едно от нещата, които ще научите като прекарвате повече време с уеб програмиране е, че колкото повече можете modularize неща и фактор нещата като .h файлове нека фактор неща навън, Харесва helpers.c Нека фактор нещата Преди няколко psets. Също така, бихме могли да искаме да постигнем това. Така че забележите версия три от search.html съм Пречистихме главата на страницата и просто сложи в това, маркер връзка, която противно на името, не ви дава хипервръзка. Тя свързва към друг файл чрез един HREF чиято стойност в този случай, е търсачка-3.css Така че аз осъзнавам, отиваме бързо. Но всичко, което правя е вид на движещи се неща наоколо. Позволете ми да отворя-3.css. Ето го, нищо наистина за него. Аз просто копират и го поставили в нова подаде, който много прилича ние фактор неща от в други файлове преди. И result-- напълно underwhelming-- ще бъде точно същото. Но ние се движим toward-- не, това не е така. О, аз знам защо. Така че тя изглежда да е бъг. И това е в някакъв смисъл. Но нека да се отвори ми раздела Network. Позволете ми да се презарежда страницата. Ах, защо е СГО не се прилага? Е, файлът CSS, подобно, има да бъде свят за четене, така да се каже. И това също е в момента забранено. Така че позволете ми да направя CHMOD на + R на звезда точка, CSS-- whoops-- ние сме точка CSS е просто файлови разширения за CSS файлове. Сега нека се върнем към браузъра си и презареждане. ОК, малко по-добре. Сега нека направим едно последно нещо. В търсене-4.html. Имам версия, че аз просто си помислих, е начин охладител, макар и много по- сложно. Нека да погледнем в резултат на първо място. Затворете това да ни даде по-голяма свобода. Променете това да търсите-4, Enter. И сега един куп неща са счупени. Отивам да се върне в моята директория тук. И сега аз съм просто ще направя а коригират на + R на file-- защото знам, че exists-- нарича logo.gif, който е образ. И сега се презареди. И wow-- така че сега съм доста близо, честно казано, харесва версията на Google 1999 г. и честно казано, на 2014 версия на Google, нали? Така че това е сега ще си уебсайт, в крайна сметка, ако търсите за котки. И наистина е така. Но това, което съм направил по различен начин в тази версия 4? Така че ние няма да се спирам твърде много върху него тук. Ще видите това в проблем определя седем в крайна сметка. Но забележете аз направих няколко неща. I въведе Разделения маркер, който е подразделение, подобни по дух към таг параграф. Но разделението е точно като, ето правоъгълна невидим регион на екрана. Нека да му се даде уникален идентификатор на долния, просто така че можем да говорим за то в нашата HTML другаде. Тук е още една Разделение на страницата чиято ID ще бъде съдържание. Това е съдържанието на страницата. И тук е заглавната част на страницата. С други думи, аз съм по същество в HTML съм психически гледане на тази уеб страница като три компонента, глава до тук с тази невидима правоъгълник, съдържанието в средата, а след това футъра долу, дори въпреки че ние не виждаме тези неща. Защото искам в главата ми на страница тук, или във файл .css, Мога да използвам този синтаксис. Header не е маркер. Това е ID, така се оказва , че по този #header, Сега мога да прилага една или повече свойства на заглавието. Мога да направя едно и също съдържание, същото за съдържание тук. Така например, в долния им край, известие всички тези качества съм добавяне. И аз знам, че те съществуват само чрез четене нагоре на документацията за CSS. Размер на шрифта ще бъде smaller-- така че някои относителен размер на шрифта. Теглото ще бъде смел. Margin-- колко пиксела около it-- е 20 пиксела. И това ще бъде центриран. Но точно сега, страницата изглежда по този начин. Ако аз не съм доволен моето копие точно там, Бих могъл да направя нещо като цвят червен. И тогава може да спаси този, презаредите и сега съм стилизиран футъра. Така че това е просто намекваше за силата от това, което можете да направите в страницата да обърне развоя на мача. И дори по-хладна от това, ако искате да мушкам наоколо с действителните сайтове, не можете да постоянно да ги промените. Но ако се отвори Отново инспектор на Chrome и аз не отида на лявата страна тук, което показва HTML на Facebook, но показва отдясно дясната страна на всички свои CSS, можете или и промени нещата в движение. Така че нека да вървим напред и да направи това. Позволете ми да отида напред и контрол кликнете върху тази случайна дума тук, подпишат, и щракнете върху Проверка Element. Chrome много удобно скача на h1 таг, че Facebook използва. И забележи тук Facebook има вид на мързеливо трудно кодирани размер на шрифта като имот тук. Така готино нещо, обаче, е че ако наистина отидете тук и да кажа, о, Facebook, не ми харесва, че 64 пиксела, сега могат да променят Facebook. Разбира се, ние само го променя лично за мен в момента. Но това е просто още един инструмент в нашия комплект инструменти това ще ни позволи да се ощипвам и да разбера, а също и диагностика проблеми в нашите собствени уеб страници. И ние, биха могли да отидем тук, което е едно и също нещо. Ако наистина искате да получите фантазия, аз означава, сега наистина може да мутира страницата и правя луди неща. Така че, защо всичко това е полезно? Е, в крайна сметка, ние сме ще искам да бъда можете да създавате уеб страници, които са водени от собствените ни задни краища, не само от Google и аутсорсинг на задния край има. Ние всъщност искаме стойност, например, на действие нашата търсачката атрибут да отида не на някой друг, но до нещо като search.php, където search.php е на нашия собствен сървър, не на някой друг. И така, за да стигнете до там, ние всъщност Трябва да се въведе нов език. Така че ние вече сме разглеждали един нов език тук, или две наистина, HTML и CSS. Но те наистина са само структурни и естетически езици. Те не сте програмиране езици по себе си. И това е точно толкова формално време, тъй като ние ще се харчат за тях. Защото ние ще започнем сега да преминете към PHP. Така че PHP е действително език за програмиране. Това е скриптов език в смисъл, че тя е трябвало да бъде по-малко тегло от нещо като C. И това е интерпретиран език, което означава, че не е съставен. Така че по-накратко, това, което исках да кажа когато се използва език, като в и ние трябваше да го компилирам? Какво означава да компилирате C изходния код? АУДИТОРИЯ: [недоловим]. DAVID J Malan: Кажи го отново? АУДИТОРИЯ: [недоловим]. DAVID J Malan: Perfect. Това го превръща в двоичен. Това го превръща в нули и единици от действителната английски като изходен код. И тогава можем действително тичам тези нули и единици от тях, преминаващи през CPU чрез двукратно щракване на икона или изпълняване на командата. PHP и Python и Ruby и Perl и JavaScript и букети от друга се тълкуват езици езици, което е да се каже, не ги компилирате. Вместо това, можете да ги хранят като вход за програма, наречена интерпретатор. И това преводач, които някой друг е написал, чете изходния си код горе до долу, от ляво на дясно и само интерпретира тези линии и прави това, което казвате. Така че, ако се натъкнете на линия, която казва, печат, то не е задължително да конвертирате печат към съответните нули и единици. Тя просто има тази преводач като голям, ако условие, че се казва, ако инструкция програмист е печат, а след това направете следното. Така че го интерпретира само по вид на разсъждение чрез това, което той казва да правя. И PHP е един от тези езици. И преди PHP години е проектиран Именно за уеб програмиране. И това беше първоначално много помия разхвърлян език. И наистина, има огромен сумата на лошите PHP код там. Но самият език е зряло в течение на годините, толкова много, така, че сега това е всъщност е прекрасен следващата стъпка педагогически от C, защото това е толкова мелодийките познато всичко току-що сте виждали през последните няколко седмици. В един първоначален разликата ще видим е там не е основна функция вече. Когато започнете да пишете код, това е просто няма да се изпълнява, без значение какво, както ще видим след малко. Междувременно, ето какво променлива изглежда в PHP. Това е малко по-различна, но само почти. В PHP, там не е силна да пишете. Има седмица писане, които просто означава, че има са типове данни като струни и номера и други неща. Но вие не се притеснява уточнява това, което те са повече. PHP го разбере, за вас. Знака на долара е просто решение че хората на PHP направени години преди, така че всяка променлива в PHP просто започва с знака за долар. Това всъщност е вид полезна с това, че тя скача от вас малко повече. Но след това, този е състояние, при PHP. Какво е различното в сравнение с C? Трик question-- нищо, което всъщност е много хубаво. Булеви изрази в PHP-- същото. Булеви изрази със и срещу или, ключове, примки, примки, loops-- OK, това е по-различно. Така се оказва, че има Няколко други функции в PHP. Един от тях е всъщност това, което е чудесно удобно. Ако $ номера е масив, че сте обявен предварително в програмата, имате тази фантазия за всеки конструкт че вместо да се прави всичко това досадно ми е равна на 0, I е по-малко от това, [? I ++?] за всеки числа, като брой, където всеки на тези ценности знака за долар е просто променлива, а вторият можеш да се сетиш като I. Можете да го наречете всичко, което искате. Аз го нарича номер. Това се случва за обхождане масива наречен номера. И на всяка итерация, това е ще се актуализира автоматично за вас номера на знака за долар променлива, така че можете постоянно имат достъп до променливата искате без да се налага да се направи всеки квадратен скоба нотация или индексиране на масив. Освен това, дори да има такива неща масиви, които изглеждат почти еднакви, освен това е много често, тъй като ние ще виж, както в PHP и JavaScript предварително да се инициализира масив използване на квадратни скоби. C използва фигурни скоби. Така че това е малко по-различно, въпреки че ние всъщност не използват този трик много. Но още по-силно, PHP има асоциативни масиви, който е един луксозен начин каже хеш таблици. Всъщност, ако искате да обяви хашиш маса в PHP, за разлика от C-- колко реда код го вземат, за да реалното изпълнение на хеш таблица в C? Или колко реда код е като за изпълнение на хеш таблица в C? Така че това е може би много, нали? Това е няколко десетки, може би 100 или 200. Това е nontrivial. Или тя е на път да бъде, тъй като вие скоро ще видите, nontrivial за прилагане на хеш таблица [Недоловим], а също и да опитате. Но в PHP-- и честно казано, вероятно не трябва да ви кажа това докато Monday-- в PHP, ако искаш маса, направено. Това е хеш table-- така с един ред код. И A много езици го направя. Забавлявайте се с pset пет. Така че много езици направите това. Те ще ви дадат тези абстракции че и други хора, други програмисти, са създадени за вас, така че можете да стои на раменете си и започнете да използвате идеи, които са супер убедителни, като хеш таблици и дървета и се опитва. Но не е задължително да изпълнява сам тези неща. И така, в крайна сметка, това, което ние ще използваме PHP за е потенциално писмено програми на т.нар командния ред. Бихме могли да пресъздаде всяка програма сме написали този семестър до този момент, освен може би Breakout, който използва SPL, който е специфичен за C в момента. Но всеки друг проблем настроен, Със сигурност Марио и Цезар и Vigenere и [? Пляскане?] И по-нататък, ние може да приведе отново в действие в PHP, и вероятно малко по-лесно. Но това, което в крайна сметка ще да използва PHP е уеб програмиране. И ние ще представим следващата седмица мисловен модел, парадигма, наречена MVC модел оглед контролер, които, ако сте направили програмиране преди в Python или Ruby или на друго място, може да знае на този отбор с Rails и Django и други подобни. Но ако сте нов в това също, ще видите че това е действително много естествен удължаване на факторизирането и вида на дизайна код, който ние сме били прави в C. Отиваме сега прилага някои от тези уроци на PHP така че в крайна сметка, ние сме прилагане на нашите собствени уебсайтове. И ако вие сте нещо като хипнотизиран или изумен че ние ще направим Всички така бързо, осъзнават, че почти всеки семестър, почти 90% на студенти CS50, включително тези, които никога не са програмирани преди, в крайна сметка направи окончателните проекти, които се основават на уеб програмиране. И така, вие ще видите, че се връща са високи в идните седмици. Така че ние ще се видим след това в понеделник. SPEAKER 1: И сега, Deep Мисли от Daven Farnham. Хеш таблици. [Смях]